Вопрос в отношении времени

 

Подскажите пожалуйста по возможности!!!

Мне надо чтобы ордера открывались только в первую минуту после открытия бара.

iTime(Symbol(),5,0) -- время открытия бара.

TimeCurrent() -- настоящее время.

Я сделала так:

if(TimeCurrent() - iTime(Symbol(),5,0) < 60)

{

..............

}

И это не работает.   Кто знает по какой причине, подскажите пожалуйста!

 
int SaveTM;
int start(){
    bool Work=false;
//----
    int TM = iTime(Symbol(),5,0);
    if(SaveTM!=TM){SaveTM=TM;Work=true;}
    ................................
    .................................
    ...................................
    if(Work){
       //Работаем на первом тике каждого нового бара
       .........................
    }
//----
   return(0);
  }
так подойдет?
 
xeon >>:
так подойдет?

Спасибо за ответ!

Но во-первых:

чему равен SaveTM?

во-вторых :

мне надо чтобы ордер открывался не только когда происходит совпадение SaveTM && TM, но в течении первой минуты после открытия бара.

 

SaveTM = это сохраненное время начала прошлого бара

extern int SetMin = 1; //Количество минут работы в начале каждого бара

int SaveTM,smin,_Min;
bool Work=false;
int start(){
    
//----
    int TM = iTime(Symbol(),5,0);
    int min = Minute();
    if(SaveTM!=TM){SaveTM=TM;Work=true;_Min=0;} //Если Наступил новый бар - Разрешим работу и обнулим счетчик минут
       ................................
       .................................
       ...................................
    if(Work){                                   //Если = true - работа разрешена иначе запрещена
       ...........................
       .........................
    }
    if(min!=smin){_Min++;}                      //Если наступила новая минута увеличим счетчик минут на 1
    if(_Min>=SetMin){Work=false;}              //Если текущее количество минут с момента старта больше или равно установленному запретим работу
//----
   return(0);
  }
 
Это работает, но если к примеру мне надо будет 45 секунд или 2-ая минута боро?
 

это уже напоминает анегдот -

мальчик- дяденька скажите который час?

дяденька - мальчик яж тебе только что говорил!

мальчик - мне просто нравится как у вас усы шевелятся когда вы говорите!

---------------------------------------------------

желательно что бы вы сначала определились с желаниями,

тогда понятно будет какой нужен код :-))

 
xeon >>:

.. мне просто нравится как у вас усы шевелятся когда вы говорите!

Не конкретно к топикстартеру, а вообще по форуму - в точку!
 
liza писал(а) >>

Подскажите пожалуйста по возможности!!!

Мне надо чтобы ордера открывались только в первую минуту после открытия бара.

iTime(Symbol(),5,0) -- время открытия бара.

TimeCurrent() -- настоящее время.

Я сделала так:

if(TimeCurrent() - iTime(Symbol(),5,0) < 60)

{

..............

}

И это не работает. Кто знает по какой причине, подскажите пожалуйста!

Как тестируете? Если в тестере, то должен быть режим по всем тикам. Должно работать. Работа только на первом тике бара это никуда негодный метод только для баловства в тестере.

 
double t1=TimeCurrent();
double t2=iTime(Symbol(),5,0);
  if(t1-t2< 60){}

если нужно сравнивать datetime, чтобы голова не болела.....

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