Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1112

 

Добрый день! Нужна помощь! При работе эксперта ордер зарывается по стопу, и сразу же на новом тике идет открытие на том же баре в том же направлении нового ордере и, как следствие, снова срабатывает стоп и так может продолжаться несколько раз. Цель следующая, чтобы после закрытия по стопу новый ордер открывался только после следующего пересечения короткой МА с длинной МА. Если возможно предложить сразу код в mql4. За ранее благодарю!

 
Sokolmih:

Добрый день! Нужна помощь! При работе эксперта ордер зарывается по стопу, и сразу же на новом тике идет открытие на том же баре в том же направлении нового ордере и, как следствие, снова срабатывает стоп и так может продолжаться несколько раз. Цель следующая, чтобы после закрытия по стопу новый ордер открывался только после следующего пересечения короткой МА с длинной МА. Если возможно предложить сразу код в mql4. За ранее благодарю! 

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

Код с нуля писать не буду, это к фрилансерам.

 
RickD:
Ну да. Больше 100 чартов нельзя открыть в Метатрейдере.

А как организовать своевременную подкачку истории по всем символам и таймфреймам в индикаторе?
Вызов ArrayCopySeries будет делать это?

На старте индикатора вызов ArrayCopySeries не подкачивает историю по новым инструментам.
Может не идет подкачка, потому-что рынок в выходные закрыт?

Для выходных нужен скрипт.

Я работаю по будням. Поэтому пользуюсь индикатором. Даю ему список инструментов, и он запрашивает котировки то тому таймфрейму, на чарте которого он висит. С обработкой ошибок не заморачиваюсь. Через десяток минут все устаканивается.

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

 
evillive:

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

Код с нуля писать не буду, это к фрилансерам.

Спасибо

Весь код не прошу конечно, но просьба направить/подсказать. Вот как определить следующее пересечение, можете помочь?

 
Sokolmih:

Спасибо

Весь код не прошу конечно, но просьба направить/подсказать. Вот как определить следующее пересечение, можете помочь?

Да точно так же, как и предыдущие, советник же есть у вас, поищите в коде. 
 
evillive:
Да точно так же, как и предыдущие, советник же есть у вас, поищите в коде. 
Я наверное не корректно задал вопрос, смотрите, я в истории определил, что последний ордер закрылся по стоп и теперь, по вашему совету, я должен запомнить значение короткой и длинной, далее при следующих тиках я должен сравнивать их текущими значениями и в случае, если одна другой становится  меньше или больше, то тогда открываю ордер. Я правильно понял. 
 
Sokolmih:
Я наверное не корректно задал вопрос, смотрите, я в истории определил, что последний ордер закрылся по стоп и теперь, по вашему совету, я должен запомнить значение короткой и длинной, далее при следующих тиках я должен сравнивать их текущими значениями и в случае, если одна другой становится  меньше или больше, то тогда открываю ордер. Я правильно понял. 

Запомнить можно время открытия бара, на котором зафиксировано пересечение двух МА. Советник запомнил время пересечения, открыл ордер. Далее следует мониторинг наличия рыночного ордера, насколько я понимаю, в рынке только один ордер.

После того, как ордер закрылся, советник сравнивает время закрытия ордера и время пересечения. Если OrderCloseTime>CrossTime - запрет торговли и мониторинг нового пересечения. Если в этот период найдено новое пересечение - запомнить его время. При этом автоматически становится OrderCloseTime<CrossTime  и открывается новый ордер.

 
evillive:

Запомнить можно время открытия бара, на котором зафиксировано пересечение двух МА. Советник запомнил время пересечения, открыл ордер. Далее следует мониторинг наличия рыночного ордера, насколько я понимаю, в рынке только один ордер.

После того, как ордер закрылся, советник сравнивает время закрытия ордера и время пересечения. Если OrderCloseTime>CrossTime - запрет торговли и мониторинг нового пересечения. Если в этот период найдено новое пересечение - запомнить его время. При этом автоматически становится OrderCloseTime<CrossTime  и открывается новый ордер.

Условия понял, сейчас разбираюсь как определить время открытия бара, на котором зафиксировано пересечение двух МА, примеры нашел, посмотрю, что получится. Спасибо за совет.
[Удален]  
Mislaid:

Для выходных нужен скрипт.

Я работаю по будням. Поэтому пользуюсь индикатором. Даю ему список инструментов, и он запрашивает котировки то тому таймфрейму, на чарте которого он висит. С обработкой ошибок не заморачиваюсь. Через десяток минут все устаканивается.

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

Невозможно держать открытым более 100 чартов. А нужно 100 пар по 9 таймфреймов = 900 чартов.

Рынок запустился. Но ни вызов CopyTime, ни ArrayCopySeries не подкачивает автоматом историю по инструментам из MarketWatch...
Чарты по инструментам ни разу не открывались.
Должно же быть какое-нибудь решение.

Вот например символ AUDCAD. По нему не было открытых чартов. Если вручную открыть чарт AUDCAD H1 и понаживать кнопки - истоия подкачивается. На других таймфреймах так же - только в ручном режиме, в автоматическом не желает.
[Удален]  
В опчем - я написал скрипт, который открывает по пару десятков чартов блоками, эмулирует нажатие клавиши Home, затем закрывает чарты.
Так оно хоть и с костылем, но работает и подкачка истории для новых символов происходит.