Режимы работы тестера и типы ордеров

 

Всем доброго тренда. :) Есть пара вопросов.

1. Можно ли вызовом какой-нить функции на MQL4 отделить ситуацию когда код моего эксперта прогоняется в тестере и С визуализацией от ситуаций:

  • код прогоняется в тестере, но БЕЗ визуализации
  • код работает НЕ в тестере(т.е. совершает сделки)

2. Есть такой тип отложенных ордеров - OCO(one cancel other). Думаю все о них знают - исполнение одного ордера отменяет другой. Как такие ордера сподручней в советнике выставлять? Может какой готовый способ есть? Или нужен "самопальный" алгоритм?

Заранее спасибо за ответы!

 

1. IsTesting() & IsVisualMode().
2. Нет таких ордеров в МТ.

 

OK, с этим ясно, спасибо! Продолжу, если некто не возражает, :) спрашивать в этой теме, дабы новые не плодить.

Требуется следующее: в ф-ии int init() индикатора B выполнить проверку - был ли прикреплен к чарту куда бросают B другой индикатор - A. Если A не обнаружен, то:

  • вывести Алерт вида "сначала прикрепите A, потом B" <-- этот пункт, ессесно, я знаю как осуществить
  • "самооткрепиться" от графика, т.к. считаем что без A пялиться на B - лишь время терять. А следовательно выполнять start() для B нет никакого смысла

Как такое забабахать?

 
SamMan:

OK, с этим ясно, спасибо! Продолжу, если некто не возражает, :) спрашивать в этой теме, дабы новые не плодить.

Требуется следующее: в ф-ии int init() индикатора B выполнить проверку - был ли прикреплен к чарту куда бросают B другой индикатор - A. Если A не обнаружен, то:

  • вывести Алерт вида "сначала прикрепите A, потом B" <-- этот пункт, ессесно, я знаю как осуществить
  • "самооткрепиться" от графика, т.к. считаем что без A пялиться на B - лишь время терять. А следовательно выполнять start() для B нет никакого смысла

Как такое забабахать?


вы хотите следующее

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

то запускать а если нет необходимости то не запускать ? верно ?

если так то iCustom изучайте,

не обязательно ПРОГРАММНО кидать его на график и снимать, достаточно не вызывать iCustom

 
SamMan:

...."самооткрепиться" от графика, т.к. считаем что без A пялиться на B - лишь время терять. А следовательно выполнять start() для B нет никакого смысла

Как такое забабахать?

Посмотрите здесь. Возможно это то, что ищите.

 

то запускать а если нет необходимости то не запускать ? верно ?

Нет, не верно. Условие задачи: если A именно не прикреплен к чарту котировок B не делает ничего. И, соотв., должен быть(желательно) откреплен ото всего к чему его мог бы трейдер приаттачить.

Посмотрите здесь. Возможно это то, что ищите

Именно!! Спасибо за линк!
 

Так, это еще не все... :) Продолжаем разговор.

Вопрос такой: написали мы, допустим, индикатор и запускаем его в тестере стратегий(с визуализатором, конечно). Так тут на меня недавно откровение сошло: оказывается массивы типа High[0]/Low[0] берут значения с моделированых тиков, а функции iHigh()/iLow() - с on-line потока данных(т.е. с актуальных на текущий момент времени)!! Так ли это? Если да - то, ИМХО, это просто бред. Причем сивой кобылы. Для кода работающего в тестере есть(должны быть!) только одни котировки - те, что тестером нагенерены. Почему вообще разрешено обращаться к будущим, с т.з. момента тестирования, ценам?? Ну бред же! Это прямой путь для написания "псевдо-граалей" заглядывающих в будущее...

 
SamMan:

Так, это еще не все... :) Продолжаем разговор.

Вопрос такой: написали мы, допустим, индикатор и запускаем его в тестере стратегий(с визуализатором, конечно). Так тут на меня недавно откровение сошло: оказывается массивы типа High[0]/Low[0] берут значения с моделированых тиков, а функции iHigh()/iLow() - с on-line потока данных(т.е. с актуальных на текущий момент времени)!! Так ли это? Если да - то, ИМХО, это просто бред. Причем сивой кобылы. Для кода работающего в тестере есть(должны быть!) только одни котировки - те, что тестером нагенерены. Почему вообще разрешено обращаться к будущим, с т.з. момента тестирования, ценам?? Ну бред же! Это прямой путь для написания "псевдо-граалей" заглядывающих в будущее...

Как вы не поймете-то, что любой инструмент можно как во вред, так и во благо направить?

Вопрос о написании "граалей"  лежит на совести каждого пишущего, имхо.... о том что это перекрыть, не навредив самому себе :), невозможно, вот здесь написано: 'Новая версия клиентского терминала MetaTrader 4 build 210'

И, лично для вас, SamMan,  повторю свой пост из прошлой открытой вами темы:

не знаю на каком таймфрейме вы этот индикатор запускаете, но если это не D1, то вы постоянно будете получать (если исправите ошибки) одно и то же значение с нулевого бара D1.... объясняю: моделирование происходит только на том ТФ, где работает эксперт, все остальные таймфреймы - голая статическая история. Более того. Если вы пытаетесь с младшего ТФ получить значение 0-го бара старшего (даже правильно вычисленного), вы просто-напросто заглядываете в будущее.... оно вам надо? :)

видимо, вы просто невнимательно это прочитали.
 
SamMan:

OK, с этим ясно, спасибо! Продолжу, если некто не возражает, :) спрашивать в этой теме, дабы новые не плодить.

Требуется следующее: в ф-ии int init() индикатора B выполнить проверку - был ли прикреплен к чарту куда бросают B другой индикатор - A. Если A не обнаружен, то:

  • вывести Алерт вида "сначала прикрепите A, потом B" <-- этот пункт, ессесно, я знаю как осуществить
  • "самооткрепиться" от графика, т.к. считаем что без A пялиться на B - лишь время терять. А следовательно выполнять start() для B нет никакого смысла

Как такое забабахать?

А соединить два индикатора в один не пробовали?

 

И, лично для вас, SamMan, повторю свой пост из прошлой открытой вами темы

Ну для начала ссылка приведенная Вами хоть и ведет на тему безусловно интересную, но открытую отнюдь не мной. И суть этой темы близка, но не идентична момей проблеме. В той теме претензия: "а вот если в тестере лезем на другой ТФ то вот...". А у меня есть единственный чарт(визуализаторский), обращаемся только к нему, только в одном ТФ и все же видим будущие данные! Вот нафига так?

Т.е. сухой остаток моих экспериментов: если вы пишите идикатор/эксперт который предполагаете гнать в тестере - не пользуйтесь ничем перечисленным в разделе Доступ к таймсериям в доках к языку.

Вот такая, понимаешь, загогулина. :(

А соединить два индикатора в один не пробовали?
Не очень удобно будет - пишут их 2 человека и график B в целом самодостаточен и вообще никак не должен быть связан-зависим от A.
 
SamMan:

И, лично для вас, SamMan, повторю свой пост из прошлой открытой вами темы

Ну для начала ссылка приведенная Вами хоть и ведет на тему безусловно интересную, но открытую отнюдь не мной. И суть этой темы близка, но не идентична момей проблеме. В той теме претензия: "а вот если в тестере лезем на другой ТФ то вот...". А у меня есть единственный чарт(визуализаторский), обращаемся только к нему, только в одном ТФ и все же видим будущие данные! Вот нафига так?

Т.е. сухой остаток моих экспериментов: если вы пишите идикатор/эксперт который предполагаете гнать в тестере - не пользуйтесь ничем перечисленным в разделе Доступ к таймсериям в доках к языку.

Вот такая, понимаешь, загогулина. :(

код, плз, иначе разговор "в пользу бедных" называется

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