- Грустная история
- FOREX - Тенденции, прогнозы и следствия 2015
- EURUSD - Тенденции, прогнозы и следствия (Часть № 2)
Привет форумчане! Помогите разобраться: написал вот такую функциюно почему-то она работает только в тестере! Пробовал на демо аккаунте - не работает! Где собака зарыта?
А словами можно описать, что требуется и в чем проявляется нерабостоспособность онлайн?
По коду выходит так, что в первом цикле находится ордер по текущему символу с заданным магиком и наибольшим временем закрытия. То есть последний закрытый ордер. Если такой ордер найден, то открывается противоположный ордер с объемом, умноженным на Multiplier.
И точно советник работает на счете один и не открываются ордера вручную? Ведь вот это условие "некрасивое":
if((OrderProfit()+OrderCommission()+OrderSwap())<0&&OrdersTotal()==0)
Где собака зарыта?
1. история в терминале сколько дней? (правой мышей в терминале в окне истории ордеров)
2. нет нормализации лота
3. нет нормализации цен при открытии ордера
4. нет обработки ситуации "нет ордера в истории"
ЗЫ: я обычно такие задачи разбиваю на несколько этапов:
- пишу функцию поиска последнего ордера, которая вернет объем и тип последнего ордера (можно в качестве флага убытка вернуть отрицательную величину, если был прибыльный ордер - то вернуть положительный обьем ордера)
- выставляю ордер в соответсвии с логикой ТС

- www.metatrader5.com
А словами можно описать, что требуется и в чем проявляется нерабостоспособность онлайн?
По коду выходит так, что в первом цикле находится ордер по текущему символу с заданным магиком и наибольшим временем закрытия. То есть последний закрытый ордер. Если такой ордер найден, то открывается противоположный ордер с объемом, умноженным на Multiplier.
Все верно, так и есть. Но не могу понять почему на демо не работает....
Все верно, так и есть. Но не могу понять почему на демо не работает....
Вот это
OrdersHistoryTotal()
требует сначала ручками выбрать период отражения закрытых ордеров
1. история в терминале сколько дней? (правой мышей в терминале в окне истории ордеров)
2. нет нормализации лота
3. нет нормализации цен при открытии ордера
4. нет обработки ситуации "нет ордера в истории"
ЗЫ: я обычно такие задачи разбиваю на несколько этапов:
- пишу функцию поиска последнего ордера, которая вернет объем последнего ордера (можно в качестве флага убытка вернуть отрицательную величину, если был прибыльный ордер - то вернуть положительный обьем ордера)
- выставляю ордер в соответсвии с логикой ТС
но ведь разбирать на этапы не обязательно... По поводу нормализации - спасибо за подсказку, я обязательно поправлю, но все же проблема не в этом. Я тупо не могу понять почему в тестере работает а на демо - нет!
Все верно, так и есть. Но не могу понять почему на демо не работает....
Впишите в начале OnTick() такую строчку: Comment("Orders total: ",OrdersTotal()). Если там не ноль, и на текущем символе нет открытых позиций и выставленных ордеров - значит есть на другом символе ордер или позиция. Соответственно, и открываться новые позиции не будут. Ну или уберите из условий открытия позиций такую грубую проверку на количество ордеров на счёте - сделайте проверку на количество открытых позиций по символу.
Впрочем, Игорь вам уже указывал на эту вашу не очень корректную проверку. Но вы промолчали на этот счёт.
но ведь разбирать на этапы не обязательно... По поводу нормализации - спасибо за подсказку, я обязательно поправлю, но все же проблема не в этом. Я тупо не могу понять почему в тестере работает а на демо - нет!
1. в истории в терминале установите глубже период
2. где обработка условия, что нет в истории терминала ордера?
3. а что делать если есть в истории ордер, а он с профитом?
и Вам уже указали, что условие
&&OrdersTotal()==0не совсем корректное - а что будет если в терминале открыт ордер даже руками?
Вот это
требует сначала ручками выбрать период отражения закрытых ордеров
тоесть вы хотите сказать что просто нужно сделать вот так:
да
потом пойдем дальше, если не заработает
OrdersTotal()==0Должен был сам заметить, но наверное заработался....

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования