MT4. Вопрос по написанию советника: не срабатывает условие завязанное на рыночной цене - страница 4

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почитайте справку к функции OrderSend() в самом конце примечание.
....
Нельзя использовать расчетную либо ненормализованную цену. .... В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).
Цены должны быть нормализованы. Для тестера может и так сойдет, но для реала нет.
Учтем.
Благодарю за подробности
Почитайте справку к функции OrderSend() в самом конце примечание.
....
Нельзя использовать расчетную либо ненормализованную цену. .... В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).
Цены должны быть нормализованы. Для тестера может и так сойдет, но для реала нет.
Что на демо/реале, что в тестере.
Иначе и в тестере будут ошибки.Еще раз присмотрелся ... к графику тестера.
Почему-то сигнальной свечей выступает именно та свеча, по которой впервые прошла сделка.
Например, по свече 1 открылась БАЙ-позиция.
затем на свече 2 открылась еще одна БАЙ.
на свече открывается еще одна БАЙ.
ЛОИ у этих свечей растут.
НО, закрыты эти все 3 позиции почему-то будут при пробитии БИДом именно ЛОЯ 1-ой свечи. А должно закрываться все БАИ по уровню ЛОЯ последней свечи (т.е. в нашем примере 3-ей сделки).
А так же, если по текущей свече была открыта сделка, то если в рамках этой же свечи БИД выбил вниз ЛОЙ предыдущей свечи, то сделка не закрывается. Что тоже не есть хорошо.
Интересно, что если я из кода убираю :
if(iTime(_Symbol,NULL,1) == prevtime) return(0);
prevtime=iTime(_Symbol,NULL,1);
, тогда все работает и закрывается как надо. НО возникает иная проблема: сделки открываются буквально на каждом тике ))))))
Еще раз присмотрелся ... к графику тестера.
Почему-то сигнальной свечей выступает именно та свеча, по которой впервые прошла сделка.
Например, по свече 1 открылась БАЙ-позиция.
затем на свече 2 открылась еще одна БАЙ.
на свече открывается еще одна БАЙ.
ЛОИ у этих свечей растут.
НО, закрыты эти все 3 позиции почему-то будут при пробитии БИДом именно ЛОЯ 1-ой свечи. А должно закрываться все БАИ по уровню ЛОЯ последней свечи (т.е. в нашем примере 3-ей сделки).
А так же, если по текущей свече была открыта сделка, то если в рамках этой же свечи БИД выбил вниз ЛОЙ предыдущей свечи, то сделка не закрывается. Что тоже не есть хорошо.
Интересно, что если я из кода убираю :
if(iTime(_Symbol,NULL,1) == prevtime) return(0);
prevtime=iTime(_Symbol,NULL,1);
, тогда все работает и закрывается как надо. НО возникает иная проблема: сделки открываются буквально на каждом тике ))))))
prevtime=iTime(_Symbol,NULL,1);
Оставьте только для открытия новых позиций, а условия закрытия проверяйте на каждом тике, а не только когда появляется новая свеча.
Вот пример.
Код самый простой, если надо учитывать ордера по магику и символу то надо усложнять.
Вы if(iTime(_Symbol,NULL,1) == prevtime) return(0);
prevtime=iTime(_Symbol,NULL,1);
Оставьте только для открытия новых позиций, а условия закрытия проверяйте на каждом тике, а не только когда появляется новая свеча.
Вот пример.
Код самый простой, если надо учитывать ордера по магику и символу то надо усложнять.
Супер, теперь на тестере по крайней мере все работает как надо.
Благодарен!
Сейчас идею протестирую хотя бы на одном инструменте (поочередно), а потом буду усложнять всякими магиками )))
Как это понимать? ))))
Как это понимать? ))))
Зеленая эквити (не зафиксированная прибыль/убыток), Синяя баланс счета.
Да, но почему она фиксится только в конце емое ....
Сырой еще код получается
Да, но почему она фиксится только в конце емое ....
Сырой еще код получается
В конце теста все позиции принудительно закрываются, вам случайно попался удачный период тестирования на котором открылась огромная куча позиций и чудом в конце закрылась в плюс.
Период в 2,5 года не может быть случайным ;)
Идею понял, что нужно код доработать.