как исправить код, чтобы следующий ордер открывался позже предыдущего на одну минуту - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
это тоже самое,что у меня, но не работает
поэтому и спрашиваю здесь
OrderOpenTime().
в этом случае да т.е в момент открытия ордера и если присвоить, но через десять сек TimeCurrent будет больше чем LastOpenTime на 10 сек
TimeCurrent=OrderOpenTime = LastOpenTime
for(int i=OrdersTotal() −1;i>=0;i--)if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(TimeCurrent() - OrderOpenTime()>0)
LastOpenTime = OrderOpenTime();
18:00:00 открываем ордер
OrderOpenTime()=
18:00:00TimeCurrent()=
18:00:00LastOpenTime=
TimeCurrent()=
18:00:00 еслиLastOpenTime=
TimeCurrent()
18:00:01
OrderOpenTime()=
18:00:00TimeCurrent()=
18:00:01LastOpenTime=
TimeCurrent()=
18:00:01 еслиLastOpenTime=
TimeCurrent()
TimeCurrent()-
LastOpenTime = 0 всегда если
LastOpenTime=
TimeCurrent()
так надеюсь понятно?
Ошибка здесь:
18:00:01
LastOpenTime=
TimeCurrent()=
18:00:01
Как я уже писал выше LastOpenTime не будет меняться пока не сработают условия для открытия следующего ордера и его открытия.
А в условии как раз проверяется прошло ли 60 секунд с момента открытия предыдущего ордера. А раз 60 сек не прошло значит переменной
LastOpenTime значение TimeCurrent()=18:00:01 присвоено не будет!