как исправить код, чтобы следующий ордер открывался позже предыдущего на одну минуту - страница 2

 
DhP:

Вставьте перед операцией открытия ордера:

static datetime LastOpenTime;

if(TimeCurrent()- LastOpenTime<60)return(0);

а следом за {OrderSend(.....); LastOpenTime=TimeCurrent();}


 if(TimeCurrent()- LastOpenTime<60)return(0);

если (время сервера() - время сервера<60)???????? я здесь не понял
 
неужели никто не знает?
 
charony:
если (время сервера() - время сервера<60)???????? я здесь не понял

LastOpenTime - это время открытия последнего ордера
 
вы на код посмотрите
 
charony:

вы на код посмотрите

Смотрю:

а следом за {OrderSend(.....); LastOpenTime=TimeCurrent();} При открытии ордера запоминается время открытия.

 

вставьте это static datetime LastOpenTime;

if(TimeCurrent()- LastOpenTime<60)return(0);

а следом за {OrderSend(.....); LastOpenTime=TimeCurrent();}

в код,может у вас получится?

я вставлял не работает

 
нужно вставить это

for(int i=OrdersTotal() −1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(TimeCurrent() - OrderOpenTime()>60)

OpenOrder();

вставляю не работает
 

повторю вопрос,как изменить код?

чтобы при одном открытом ордере, второй мог открыться только по истечении 60сек. и сигнала на открытие

если открытых ордеров нет, то должен открываться сразу при приходе сигнала на открытие

 
khorosh Смотрю:

а следом за {OrderSend(.....); LastOpenTime=TimeCurrent();} При открытии ордера запоминается время открытия.


LastOpenTime = последнему OrderOpenTime, но никак не TimeCurrent

плохо смотрите

 
charony:
нужно вставить это

for(int i=OrdersTotal() −1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(TimeCurrent() - OrderOpenTime()>60)

OpenOrder();

вставляю не работает
Выложите код полностью, тогда можно подумать.
Причина обращения: