- Помогите с отложенными ордерами
- Помогите решить пожалуйста проблему !!!
- Расчёт тела свечей в пунктах
мне кажется нужно реализовать функцию, проверяющую - был ли выставлен замок на эту позицию.
В данном случае мне виднеется простой алгоритм с использованием времени:
за пределы старта:
int timelast;
а то что Вы реализовали
int w=0;
дык он жн всегда равен 0 :-) его надо было тогда хотя бы за пределы старта выносить.
старт:
int f; for (f=0;f<OrdersTotal();f++) { if (!OrderSelect(f,SELECT_BY_POS,MODE_TRADES)) break; if (OrderMagicNumber()!=1 || OrderSymbol()!=Symbol()) continue; if ((OrderType()==OP_BUY) && (Bid< (OrderOpenPrice() - 250*Point)) && OrderOpenTime()>timelast && OrderComment()!="zamok") { timelast=OrderOpenTime(); OrderSend(Symbol(),OP_SELL,1,Bid,3,Ask+100*Point,Ask-200*Point,"zamok",16384,0,Red); } }
введите флаг / признак выставления лока, т.е. выставили flag_lok = true и перед выставление нового ордера проверяйте выставлялся ли лок или нет
сбрасывать это флаг, думаю целесообразно когда закрыты все ордера, ну или как вариант - два флага flag_lok_buy = true или flag_lok_sell = true
https://www.mql5.com/ru/code/9465 я реализовал такую функцию так...
"новой" позиции присваивается МАГИК равный ТИКЕТУ "первого" ордера....
правда я ставил "новый" ордер на откат и пересчитывал стопы для усреднения....
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования