Ответить
05.12.2011, 07:14
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
Господа,

Очень нужна помощь. Имеется индикатор, очень простой и всем, наверное, известный: Trend Magic. Основан на двух стандартных индикаторах: CCI(50) и ATR(5). Рисует очень красивые линии на графике. У меня, как чайника в программировании, имеется вопрос: как из значений CCI и ATR получается значение, которое отображается на графике цены и по которому рисуется эта самая линия? Можете вывести формулу?
bufferUp[shift] = Low[shift] - iATR(NULL, 0, ATR, shift);
bufferDn[shift] = High[shift] + iATR(NULL, 0, ATR, shift);

F вообще все формулы в самом индикаторе, он настолько маленький что даже ты сможет разобраться
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 07:28
Аватар для Walt6730
Walt6730 Walt6730 вне форума Активный участник
Регистрация: 19.05.2009 / Сообщений: 36
Поблагодарили 2 раз(а) / Репутация: 2
bufferUp[shift] = Low[shift] - iATR(NULL, 0, ATR, shift);
bufferDn[shift] = High[shift] + iATR(NULL, 0, ATR, shift);

F вообще все формулы в самом индикаторе, он настолько маленький что даже ты сможет разобраться
Спасибо за оперативный ответ и за столь высокую оценку моих более чем скромных интеллектуальных способностей Хотел бы еще раз уточнить: по первой формуле индикатор выдает абсолютное значение цены (это важно!) текущей свечи на аптренде, а по нижней - на даунтренде? Под значением цены я понимаю, например, 1.3243 для пары евродоллар. И потом рисует линию от значения к значению? Другими словами (чтобы убедиться, что я понял все правильно), каждая из этих формул выдает то значение, которое отображается в Data Window? По ходу дела еще вопрос: а как получить значение на предыдущей свече?

Последний раз редактировалось Walt6730; 05.12.2011 в 07:31.
05.12.2011, 07:33
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
Спасибо за оперативный ответ и за столь высокую оценку моих более чем скромных интеллектуальных способностей Хотел бы еще раз уточнить: по первой формуле индикатор выдает абсолютное значение цены (это важно!) текущей свечи на аптренде, а по нижней - на даунтренде? Под значением цены я понимаю, например, 1.3243 для пары евродоллар. И потом рисует линию от значения к значению? Другими словами (чтобы убедиться, что я понял все правильно), каждая из этих формул выдает то значение, которое отображается в Data Window? По ходу дела еще вопрос: а как получить значение на предыдущей свече?
Ничего личного, сам себя таким назвал. ;-)
Нет он просо записывает в 2 буфера значения Свечи ХАй+ АТР, от этого и получается линия верхняя, ну и соответственно нижняя
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 07:39
Аватар для Walt6730
Walt6730 Walt6730 вне форума Активный участник
Регистрация: 19.05.2009 / Сообщений: 36
Поблагодарили 2 раз(а) / Репутация: 2
Ничего личного, сам себя таким назвал. ;-)
Нет он просо записывает в 2 буфера значения Свечи ХАй+ АТР, от этого и получается линия верхняя, ну и соответственно нижняя
Звыняй за тугоумие. Задам вопрос так, чтобы мне было понятно: как получается значение в Data Window?
05.12.2011, 07:45
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
Я про него и говорю, в индикаторе два буфера :
bufferUp и bufferDn
0 и 1 соответственно
в Дата окне соответственно 1 bufferUp и 2 bufferDn
Высчитываются значения CCI ATR
а потом по формуле:
if (thisCCI >= 0)
{
bufferUp[shift] = Low[shift] - iATR(NULL, 0, ATR, shift);
if (bufferUp[shift] < bufferUp[shift + 1])
bufferUp[shift] = bufferUp[shift + 1];
}
else
{
if (thisCCI <= 0)
{
bufferDn[shift] = High[shift] + iATR(NULL, 0, ATR, shift);
if (bufferDn[shift] > bufferDn[shift + 1])
bufferDn[shift] = bufferDn[shift + 1];
}
}
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 07:58
Аватар для Walt6730
Walt6730 Walt6730 вне форума Активный участник
Регистрация: 19.05.2009 / Сообщений: 36
Поблагодарили 2 раз(а) / Репутация: 2
Ну, сейчас немного стало проясняться, хотя и с напрягом... Теперь несколько вопросов по переменным: Low и High - это, как я понимаю, значения цены? А что такое i перед ATR и shift?
05.12.2011, 08:02
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
Кхм...
Тебе лучше начать изучать основы языка программирования а не сразу же задавать вопросы по индикатору.
Это мой тебе совет.
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 08:07
Аватар для Walt6730
Walt6730 Walt6730 вне форума Активный участник
Регистрация: 19.05.2009 / Сообщений: 36
Поблагодарили 2 раз(а) / Репутация: 2
Спасибо за совет... Только я с математикой не очень дружу...
05.12.2011, 08:13
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
математика и программирование, просто ты задаешь вопросы так сказать 1 класса программирования а это не есть хорошо. Поэтому прежде чем задавать вопросы про индикаторы надо прочитать хотя бы азбуку.

что толку если я тебе скажу что i перед названием индикатора Это функция вызова индикатора а shift Это переменная перебора
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 08:14
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
но все равно спасибо за спасибо
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 08:15
Аватар для Walt6730
Walt6730 Walt6730 вне форума Активный участник
Регистрация: 19.05.2009 / Сообщений: 36
Поблагодарили 2 раз(а) / Репутация: 2
Ну, насчет вызова индикатора - это я понял!
05.12.2011, 13:17
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
shift это в данном случае сдвиг бара относительно текущего
Советники на заказ! admin@expforex.com
Говорим Спасибо
05.12.2011, 18:15
Аватар для Влад Рус
Влад Рус Влад Рус вне форума Прохожий
Регистрация: 14.03.2011 / Сообщений: 2
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Lender, здравствуйте! Рад был получить от Вас ценную помощь. Спасибо. Просто не ожидал такого скорого ответа. По первой задачке очень интересный вариант. Буду пробовать. По второй задачке не очень понял переменную EMPTY. Порывшись в справочнике по МТ4 нашёл там, что EMPTY означает значение по умолчанию или пустое состояние параметра, как-то так. А нулём тогда нельзя заменить, если всё равно пусто? И ещё - что Вы имеете в виду под " за использование двумерных массивов как в примере нужно по руках бить..." ? Где там что не так? Спасибо.
06.12.2011, 20:58
Аватар для Lender
Lender Lender вне форума Активный участник
Регистрация: 19.07.2011 / Сообщений: 56
Поблагодарили 74 раз(а) / Репутация: 75
Помогите, как в советнике реализовать скачивание текстового файла по адресу в интернете?
юзаем библиотеку wininet.dll
пример использования можно найти в индикаторе по ссылке
http://codebase.mql4.com/ru/7352
06.12.2011, 21:16
Аватар для Lender
Lender Lender вне форума Активный участник
Регистрация: 19.07.2011 / Сообщений: 56
Поблагодарили 74 раз(а) / Репутация: 75
Сообщение от: Влад Рус
Lender, здравствуйте! Рад был получить от Вас ценную помощь. Спасибо. Просто не ожидал такого скорого ответа. По первой задачке очень интересный вариант. Буду пробовать. По второй задачке не очень понял переменную EMPTY. Порывшись в справочнике по МТ4 нашёл там, что EMPTY означает значение по умолчанию или пустое состояние параметра, как-то так. А нулём тогда нельзя заменить, если всё равно пусто?
в данном случае EMPTY(-1) означает пустое состояние параметра, значение NULL(0) для переменной ticket здесь не подойдет так как может существовать ордер с нулевым тикетом а с минусовым не существуют

EMPTY это константа -1

Сообщение от: Влад Рус
И ещё - что Вы имеете в виду под " за использование двумерных массивов как в примере нужно по руках бить..." ? Где там что не так? Спасибо.
если использовать двумерные массивы как в том примере то код будет становиться непонятным, корявым, нечитабельным и т.д.
26.12.2011, 16:28
Аватар для lexun
lexun lexun вне форума Активный участник
Регистрация: 12.12.2010 / Сообщений: 106
Поблагодарили 69 раз(а) / Репутация: 70
Здравствуйте, подскажите пожалуйста как на mql узнать цену другого инструмента несколько баров назад. У текущего понятно close, open, high, low. У другого можно текущие через маркетинфо посмотреть бид, аск. А вот чтобы несколько баров назад??? помогите=)
26.12.2011, 16:42
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,104 раз(а) / Репутация: 2162
Здравствуйте, подскажите пожалуйста как на mql узнать цену другого инструмента несколько баров назад. У текущего понятно close, open, high, low. У другого можно текущие через маркетинфо посмотреть бид, аск. А вот чтобы несколько баров назад??? помогите=)
несколько баров назад можно посмотреть либо цену закрытия бара, цену открытия бара, хай лоу бара

iOpen
iClose
/...........
Советники на заказ! admin@expforex.com
Говорим Спасибо

Последний раз редактировалось expforex; 26.12.2011 в 16:49.
lexun 
30.12.2011, 16:31
Аватар для ivan1234
ivan1234 ivan1234 вне форума Новичок форума
Регистрация: 23.07.2010 / Сообщений: 32
Поблагодарили 10 раз(а) / Репутация: 11

Фундаментальный анализ помогите пожалуйста

как привязать "clossprofit" c "lot"
пример:
clossprofit=10
lot =0.01
clossprofit=clossprofit+ lot=20,
то есть если lot растет, растет clossprofit.
31.12.2011, 18:57
Аватар для Lender
Lender Lender вне форума Активный участник
Регистрация: 19.07.2011 / Сообщений: 56
Поблагодарили 74 раз(а) / Репутация: 75
ничего не понятно, с виду 10+0.01 = 10.01, а у тебя аж 20...

может тебе нужно clossprofit = clossprofit*lot ?
тогда clossprofit будет увеличиваться пропорционально лоту
02.01.2012, 00:16
Аватар для lexun
lexun lexun вне форума Активный участник
Регистрация: 12.12.2010 / Сообщений: 106
Поблагодарили 69 раз(а) / Репутация: 70
Здравствуйте. Хотел бы узнать.
double massiv1[];
...
int start()
{
massiv1[1]=2;
Alert(massiv1[1]);
...

Выводит 0.
Вообщем проблема в том что не могу вывести значения массивов.
Даже если будет:
int massiv1[];
string a;
...
int start()
{
massiv1[1]=2;
a=massiv[1];
Alert(a);
...
один хрен вылезет 0. Почему и как лечить ся?
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 01:52. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO