пишу советник. Помогите связать в MetaTrader три тайм-фрейма D1, H4 и H1.

 

Помогите! не могу в MetaTrader связать три тайм-фрейма D1, H4 и H1.

пишу советника, хочу чтоб он при совпадении сигналов на дневном четырех часовом и часовом графике открывал сделки по часовому.

сколько всего перепобовал не выходит. помогите пожалуйста.

 
zbn писал(а) >>

Помогите! не могу в MetaTrader связать три тайм-фрейма D1, H4 и H1.

пишу советника, хочу чтоб он при совпадении сигналов на дневном четырех часовом и часовом графике открывал сделки по часовому.

сколько всего перепобовал не выходит. помогите пожалуйста.

А в чем конкретно проблема? Задача абсолютно "типическая"... Может https://book.mql4.com/ru/?
 
Можете помочь в написании советника?
 
zbn писал(а) >>
Можете помочь в написании советника?

Что значит помощь в вашем понимании? Если написать советник за Вас, то нет. Все остальное запроста.

 

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

//============================================================

double Print_1_BIN(string files,double y[],int c)

{int handle; double B[];ArrayResize(B,c); // скопирует первые int c баров в массив

for(int i=1;i 0) { FileWriteArray(handle, B, 0, c);// запись последних int c элементов

FileClose(handle); }

return(c); }

//===========================================================

а индикатор копирует данные из файла в свой массив.

//+------------------------------------------------------------------+

int start() //int start() -индикатора

{int c=GlobalVariableGet("DELTA_Bars");

int handle; handle=FileOpen("Indicator_y.dat", FILE_BIN|FILE_READ);

if(handle>0) { FileReadArray(handle, y, Bars-c, c); FileClose(handle); }

return(0); }

//+------------------------------------------------------------------+

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

Для экономии места стандартные участки кода я опустил, кто пишет на MQL тот поймёт а остальным эта клинопись никчему.

 
Urain писал(а) >>

Это можно реализовать через вывод значений индикатов в файл, а советник забирает значения из файла.

Можно конечно по разному, только почему просто не брать и не смотреть значения индикаторов прям "налету". например через iCustom указав разные ТФ, зачем в данном случае прослойка ввиде файла? И медленее и новичку неподнять....

 
Figar0 >>:

Можно конечно по разному, только почему просто не брать и не смотреть значения индикаторов прям "налету". например через iCustom указав разные ТФ, зачем в данном случае прослойка ввиде файла? И медленее и новичку неподнять....

В Demo и  Reale да,а в тестере не пойдёт.

 
Urain писал(а) >>

В Demo и Reale да,а в тестере не пойдёт.

Почему?
 
Figar0 >>:
Почему?

Потому что советник в тестере видит только:
глобальные переменные,

файлы из tester/files,

и файл .fst который для него формирует тестер(не все .fst-файлы а только тот скоторым работает).


Тестер это такое ограниченое виртуальное пространство внутри МТ, и все сигналы наружу
как то открытие позиций или запросы .hst файлов перехватываются.

 
Urain писал(а) >>

Потому что советник в тестере видит только:
глобальные переменные,

файлы из tester/files,

и файл .fst который для него формирует тестер(не все .fst-файлы а только тот скоторым работает).


Тестер это такое ограниченое виртуальное пространство внутри МТ, и все сигналы наружу
как то открытие позиций или запросы .hst файлов перехватываются.

"А мужики-то не знают...") Перестаньте.

Во первых, fxt, а не fst файлы, во-вторых советник видит некий объем истории по всем доступным инструментам (на уровне O-H-L-C-V), как-то исхитряется использовать индикаторы явно не лежащие в папке tester/files...

Конечно тестер создает некую виртуальную среду, но она не так ограничена как Вам кажется. Есть ограничение по моделированию тиков других инструментов, а потому индикаторы на инструментах отличных от тестируемого на нулевом баре будут показывать некий "бред", недоступно окружение MarketInfo других инструментов, ограничена глубина видимой истории... Наверно и еще чего сразу не вспомнил, а может и не знаю, но все не так печально как Вам кажется. А уж с конструкциями типа:

if (iRSI(NULL,0,14,PRICE_CLOSE,0)>70 && iRSI(NULL,240,14,PRICE_CLOSE,0)>70 && iRSI(NULL,1440,14,PRICE_CLOSE,0)>70) OrderSend(...);

тестер справляется вполне корректно. А ведь речь в топике идет примерно об этом...

Причина обращения: