А здесьиспользуйте флаги, либо другие прибамбасы, чтобы советник ставил только один ордер. Код советника немного усложнится, но будет работать так как вы хотите.
Я отслеживал движение цены и на тесте и на реале, цена фиксируется как и все другие, но он игнорирует постановку ордера!!!
тут дело не в "=="
Есть такая функция слежения comment я выставил все значения цены и ордеров и т.д., он видет цену но ордер не ставит упрямо, я на картинке показал там есть место где он ее пересекает несколько раз и появление нужной цены фиксировалось чуть ли не 10 раз. ситуация такая же как и там где он поставил. НО УВЫ!!!
Владимир, вы задаете простой вопрос, у которого около 100 вариантов ответов, почему... постарайтесь сами определить ошибки, с помощью функции Print(). Вот несколько: ордера BUY, SELL открываются по разным ценам, по Ask и Bid. Сложнее выставлять ордера по точной цене, значительно легче через n-пунктов от предыдущего... да будут расхождения между сериями, возможно не 10 пунктов, но для вас принципиально, когда вы меняете в обменике баксы на рубли по 29.57 или по 29.58 ...
То что на графике вы видите пересечение баром какой либо котировки - совершенно не означает, что эта котировка БЫЛА. котировки идут не подряд.
вполне возможен такой вариант
1.3426
1.3436
Котировки 1.3430 - просто не было и все тут. И если условие стоит на абсолютное равенство - то ордер не выставится по данной цене, т.к. такой цены не было в потоке.
(Собственно об этом вам выше уже писали, но вы почему то упорно не хотите этого понять).
ЗЫ: кроме того, изобретение и создание стратегий основанных на мгновенном исполнении именно по какой то конкретной цене вплоть до одного пункта - лишено какого либо смысла,и является бесполезной тратой времени и сил. Это будет работать только в тестере. Даже на демо будет давать сбои, а на реале вообще работать не будет.
Mer495 писал(а)>>
Так ведь код написан правильно ПОЧЕМУ НЕ ХОЧЕТ работать нормально???
Кстати, такая же фигня была!
Сравнивал разницу между старой ценой и с новой с каким-то конкретным значением по "==", вообще не хотел ордера выставлять.
Alert() и Print() говорят мол, что значения равны, все нормально.
Как программисту было вообще не понятно, что за ерунда.
Поставил ">=", работает как часы.
Ну, типа, плюс - минус трамвайная остановка. В моей стратегии пару пунктов роли не играет :)
Кстати, такая же фигня была!
Сравнивал разницу между старой ценой и с новой с каким-то конкретным значением по "==", вообще не хотел ордера выставлять.
Alert() и Print() говорят мол, что значения равны, все нормально.
Как программисту было вообще не понятно, что за ерунда.
Поставил ">=", работает как часы.
Ну, типа, плюс - минус трамвайная остановка. В моей стратегии пару пунктов роли не играет :)
Не работает потому, что при проверке равенства (==) цена должна быть равна с условием, причем с точность пункта (или десятой пункта (для пятизнака)). В реальности же, попасть точно в нужную цену очень сложно. К примеру: if(Bid == 1.36317){Alert("Попал! :)");}. А теперь нужно ждать когда цена будет именно 1.36317 и не больше не меньше.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Выше просто пояснил почему:
А здесьиспользуйте флаги, либо другие прибамбасы, чтобы советник ставил только один ордер. Код советника немного усложнится, но будет работать так как вы хотите.
Я отслеживал движение цены и на тесте и на реале, цена фиксируется как и все другие, но он игнорирует постановку ордера!!!тут дело не в "=="
Так ведь код написан правильно ПОЧЕМУ НЕ ХОЧЕТ работать нормально???
Еще раз - цена часто проскакивает
допустим 1,3430 то ставим
Bid = 1,3426
Bid = 1,3428
Bid = 1,3429
Bid = 1,3431
Bid = 1,3432
Ждем условие Price==Bid. И почему "он иногда как-то точно одну ставку игнорирует", и "ПОЧЕМУ НЕ ХОЧЕТ работать нормально???" :)))
Владимир, вы задаете простой вопрос, у которого около 100 вариантов ответов, почему... постарайтесь сами определить ошибки, с помощью функции Print().
Вот несколько: ордера BUY, SELL открываются по разным ценам, по Ask и Bid.
Сложнее выставлять ордера по точной цене, значительно легче через n-пунктов от предыдущего... да будут расхождения между сериями, возможно не 10 пунктов, но для вас принципиально, когда вы меняете в обменике баксы на рубли по 29.57 или по 29.58 ...
вполне возможен такой вариант
1.3426
1.3436
Котировки 1.3430 - просто не было и все тут. И если условие стоит на абсолютное равенство - то ордер не выставится по данной цене, т.к. такой цены не было в потоке.
(Собственно об этом вам выше уже писали, но вы почему то упорно не хотите этого понять).
ЗЫ: кроме того, изобретение и создание стратегий основанных на мгновенном исполнении именно по какой то конкретной цене вплоть до одного пункта - лишено какого либо смысла,и является бесполезной тратой времени и сил. Это будет работать только в тестере. Даже на демо будет давать сбои, а на реале вообще работать не будет.
Так ведь код написан правильно ПОЧЕМУ НЕ ХОЧЕТ работать нормально???
Кстати, такая же фигня была!Сравнивал разницу между старой ценой и с новой с каким-то конкретным значением по "==", вообще не хотел ордера выставлять.
Alert() и Print() говорят мол, что значения равны, все нормально.
Как программисту было вообще не понятно, что за ерунда.
Поставил ">=", работает как часы.
Ну, типа, плюс - минус трамвайная остановка. В моей стратегии пару пунктов роли не играет :)
Кстати, такая же фигня была!Сравнивал разницу между старой ценой и с новой с каким-то конкретным значением по "==", вообще не хотел ордера выставлять.
Alert() и Print() говорят мол, что значения равны, все нормально.
Как программисту было вообще не понятно, что за ерунда.
Поставил ">=", работает как часы.
Ну, типа, плюс - минус трамвайная остановка. В моей стратегии пару пунктов роли не играет :)
Не работает потому, что при проверке равенства (==) цена должна быть равна с условием, причем с точность пункта (или десятой пункта (для пятизнака)). В реальности же, попасть точно в нужную цену очень сложно. К примеру: if(Bid == 1.36317){Alert("Попал! :)");}. А теперь нужно ждать когда цена будет именно 1.36317 и не больше не меньше.