Простая тема - цель такая, каждая цена в 10пп ставим ордер!!! Как??? - страница 2

 
zxc >>:
Выше просто пояснил почему:

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


Я отслеживал движение цены и на тесте и на реале, цена фиксируется как и все другие, но он игнорирует постановку ордера!!!
тут дело не в "=="
 
Mer495 >>:
Так ведь код написан правильно ПОЧЕМУ НЕ ХОЧЕТ работать нормально??? 


Еще раз - цена часто проскакивает


допустим 1,3430 то ставим

Price = 1,3430
 
Bid = 1,3426
Bid = 1,3428
Bid = 1,3429
Bid = 1,3431
Bid = 1,3432
 
Ждем условие Price==Bid. И почему "он иногда как-то точно одну ставку игнорирует", и "ПОЧЕМУ НЕ ХОЧЕТ работать нормально???" :)))
 
Может в условиях скрипта??? в функциях!!!
 
Есть такая  функция слежения comment я выставил все значения цены и ордеров и т.д., он видет цену но ордер не ставит упрямо, я на картинке показал там есть место где он ее пересекает несколько раз и появление нужной цены фиксировалось чуть  ли не 10 раз. ситуация такая же как и там где он поставил. НО УВЫ!!!
 
И Bid тоже фиксирует но неставит.
 
Такое ощушение что по определенной цене к примеру 1,3430 нельзя ставить ордера, а в других можно.
 

 Владимир, вы задаете простой вопрос, у которого около 100 вариантов ответов, почему... постарайтесь сами определить ошибки, с помощью функции Print().
Вот несколько: ордера BUY, SELL открываются по разным ценам, по Ask и Bid.
Сложнее выставлять ордера по точной цене, значительно легче через n-пунктов от предыдущего... да будут расхождения между сериями, возможно не 10 пунктов, но для вас принципиально, когда вы меняете в обменике баксы на рубли по 29.57 или по 29.58 ...

 
То что на графике вы видите пересечение баром какой либо котировки - совершенно не означает, что эта котировка БЫЛА. котировки идут не подряд.
вполне возможен такой вариант
1.3426
1.3436

Котировки 1.3430 - просто не было и все тут. И если условие стоит на абсолютное равенство - то ордер не выставится по данной цене, т.к. такой цены не было в потоке.

(Собственно об этом вам выше уже писали, но вы почему то упорно не хотите этого понять).

ЗЫ: кроме того, изобретение и создание стратегий основанных на мгновенном исполнении именно по какой то конкретной цене вплоть до одного пункта - лишено какого либо смысла,и является бесполезной тратой времени и сил. Это будет работать только в тестере. Даже на демо будет давать сбои, а на реале вообще работать не будет.
 
Mer495 писал(а) >>
Так ведь код написан правильно ПОЧЕМУ НЕ ХОЧЕТ работать нормально???


Кстати, такая же фигня была!
Сравнивал разницу между старой ценой и с новой с каким-то конкретным значением по "==", вообще не хотел ордера выставлять.
Alert() и Print() говорят мол, что значения равны, все нормально.
Как программисту было вообще не понятно, что за ерунда.
Поставил ">=", работает как часы.
Ну, типа, плюс - минус трамвайная остановка. В моей стратегии пару пунктов роли не играет :)
 
Smoney >>:


Кстати, такая же фигня была!
Сравнивал разницу между старой ценой и с новой с каким-то конкретным значением по "==", вообще не хотел ордера выставлять.
Alert() и Print() говорят мол, что значения равны, все нормально.
Как программисту было вообще не понятно, что за ерунда.
Поставил ">=", работает как часы.
Ну, типа, плюс - минус трамвайная остановка. В моей стратегии пару пунктов роли не играет :)

Не работает потому, что при проверке равенства (==) цена должна быть равна с условием, причем с точность пункта (или десятой пункта (для пятизнака)). В реальности же, попасть точно в нужную цену очень сложно. К примеру: if(Bid == 1.36317){Alert("Попал! :)");}. А теперь нужно ждать когда цена будет именно 1.36317 и не больше не меньше.

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