Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 16

Andrew Petras
5141
Andrew Petras  
Karlson:

Допилите напильником только пожалуйста ))) Я уж думал не по зубам мне ,но кое что нарисовалось.Опять же не претендую на правильность.Это не мой хлеб )))

Если что не понятно,то уточните. Я не знаю как считается зигзаг,что пересчитыается,поэтому метки имеют возможность пропадать,а также появляются лишние.На пиках,но там зигзага нет уже.

Спасибо :) попробую разобраться

Да я тоже не знаю :) схема простая: хэндл зигзагколор, из него копирую 2 бафера, в которых лежат уже готовые значения экстремумов, хаи и лоу; отдельно массив со временем открытия баров. С этими массивами и работаю. (в одноцыетном зигзаге один буфер, там хаи и лоу лежат по очереди).

Тут есть оказывается зигзаг который пару фибовееров строит.

Пошел копать :) 

 

Alexander Puzanov
42008
Alexander Puzanov  
Подскажите плз: стратегия определяет точку входа, TP и SL. Следующий сигнал может появиться до закрытия предыдущего ордера. Если робот откроет новый в MT5, получится фигня - SL и TP незавершенного трейда будут затерты, а суммарный лот не будет соответствовать новым SL и TP ни одного из двух трейдов.

Наверное, вместо SL/TP надо ставить отложенники - не поделится ли кто ссылкой на код готового решения? Или есть др варианты?
BALDEYU_OT_MT5
228
BALDEYU_OT_MT5  

Здравтвуйте, не могу на форуме найти инфу помогите пожалуйста. Необходимо сделать функцию, которая возвращала значение индикатора.

Например в mql4 можно было сделать так:

 double Fast_MA(int Sdvig)
 {
 return(iMA(NULL, TF, FastMA, 0, MODE_SMA, PRICE_CLOSE, Sdvig));
 }
  

и потом в обработке сигналов использовать просто

if ( Fast_MA(1) > Fast_MA(2)  и т.д.)

 

а как правильно так сделать в  mql5, поделитесь пожалуйста если не тяжело. Спасибо.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
Nikolay Demko
13832
Nikolay Demko  
BALDEYU_OT_MT5:

Здравтвуйте, не могу на форуме найти инфу помогите пожалуйста. Необходимо сделать функцию, которая возвращала значение индикатора.

Например в mql4 можно было сделать так:

 double Fast_MA(int Sdvig)
 {
 return(iMA(NULL, TF, FastMA, 0, MODE_SMA, PRICE_CLOSE, Sdvig));
 }
  

и потом в обработке сигналов использовать просто

if ( Fast_MA(1) > Fast_MA(2)  и т.д.)

 

а как правильно так сделать в  mql5, поделитесь пожалуйста если не тяжело. Спасибо.

Для этого вам с начало нужно вызвать индикатор через iMA либо другую функ тех индикаторов. Функции возвращают хендлы котрые нужно запомнить.

Делается это обычно у OnInit, поскольку даже после удаления индикатора он некоторое время остаётся в запущеных процессах (5-15 мин).

А потом с помощью CopyBuffer(handle,...) получать необходимые значения индикатора.

Технические индикаторы

Доступ к таймсериям и индикаторам

ЗЫ Примеры в документации немного нагружены чтоб показать все возможные пути. По простому это выглядит так:

// тут получаем хендл индюка, объявления переменных я опустил чтоб не нагромождать
handle=iMA(symbol,period,ma_period,ma_shift,ma_method,applied_price);
// тут получаем нужные данные
CopyBuffer(handle,0,1,to_copy,MABuffer);
// данные индикатора из буффера 0, будут скопированы в MABuffer[], от первого значения, в количестве to_copy

Почтитайте документацию, у функций есть перегрузки.

BALDEYU_OT_MT5
228
BALDEYU_OT_MT5  
Urain:

Для этого вам с начало нужно вызвать индикатор через iMA либо другую функ тех индикаторов. Функции возвращают хендлы котрые нужно запомнить.

Делается это обычно у OnInit, поскольку даже после удаления индикатора он некоторое время остаётся в запущеных процессах (5-15 мин).

А потом с помощью CopyBuffer(handle,...) получать необходимые значения индикатора.

Технические индикаторы

Доступ к таймсериям и индикаторам

ЗЫ Примеры в документации немного нагружены чтоб показать все возможные пути. По простому это выглядит так:

Почтитайте документацию, у функций есть перегрузки.

Что значит "у функций есть перегрузки"? Похоже проще делать так как написано в документации, ничего можно привыкнуть.
Nikolay Demko
13832
Nikolay Demko  
BALDEYU_OT_MT5:
Что значит "у функций есть перегрузки"? Похоже проще делать так как написано в документации, ничего можно привыкнуть.

Это значит что под одним именем присутствует несколько функций с разными параметрами и соответственно (хотя и похожими) но разными действиями.

Применительно к CopyBuffer это:

вызовы отличаются лишь способом задания поиска данных по индексам или по дате.

Обращение по начальной позиции и количеству требуемых элементов

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

Обращение по начальной дате и количеству требуемых элементов

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   datetime  start_time,           // с какой даты
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

Обращение по начальной и конечной датам требуемого интервала времени

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   datetime  start_time,           // с какой даты
   datetime  stop_time,            // по какую дату
   double    buffer[]              // массив, куда будут скопированы данные
   );


Alexey Oreshkin
6078
Alexey Oreshkin  

Коллеги, подскажите, кто знает. Я хочу сделать график спреда между двумя валютными парами. Я его сделал в виде индикатора в отдельном окне, а как мне создать новое пустое окно графика, где не будет валютных котировок а будет только мой спред ? это вообще возможно ?

Спасибо за внимание. 

RedFish
242
RedFish  

Здравствуйте.

Пожалуйста подскажите, как правильно сделать? У меня простой эксперт. Состоит из двух файлов исполняемого и включаемого в котором прописан класс. Компилируется и работает. Я хочу собрать все в один исполняемый файл. Как правильно скопировать и разместить включаемый файл в основной? До функции OnInit() или после OnTick()? Я понимаю, что сделать и проверить не проблема так или так, но не хочу в последствии поймать баг от которого голова лопнет "и что у меня тут не так". Интересует, как правильно по стандартам языка, что бы не искать потом ошибке в архитектуре файла. Просто не знаю, как верно.

Заранее благодарю. 

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
Nikolay Demko
13832
Nikolay Demko  
RedFish:

Здравствуйте.

Пожалуйста подскажите, как правильно сделать? У меня простой эксперт. Состоит из двух файлов исполняемого и включаемого в котором прописан класс. Компилируется и работает. Я хочу собрать все в один исполняемый файл. Как правильно скопировать и разместить включаемый файл в основной? До функции OnInit() или после OnTick()? Я понимаю, что сделать и проверить не проблема так или так, но не хочу в последствии поймать баг от которого голова лопнет "и что у меня тут не так". Интересует, как правильно по стандартам языка, что бы не искать потом ошибке в архитектуре файла. Просто не знаю, как верно.

Заранее благодарю. 

Копипастишь инклюдник и вставляешь на место директивы в mq5 файл.
RedFish
242
RedFish  
Urain:
Копипастишь инклюдник и вставляешь на место директивы в mq5 файл.
Понял. Благодарю.