int SaveTM; int start(){ bool Work=false; //---- int TM = iTime(Symbol(),5,0); if(SaveTM!=TM){SaveTM=TM;Work=true;} ................................ ................................. ................................... if(Work){ //Работаем на первом тике каждого нового бара ......................... } //---- return(0); }так подойдет?
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); }
это уже напоминает анегдот -
мальчик- дяденька скажите который час?
дяденька - мальчик яж тебе только что говорил!
мальчик - мне просто нравится как у вас усы шевелятся когда вы говорите!
---------------------------------------------------
желательно что бы вы сначала определились с желаниями,
тогда понятно будет какой нужен код :-))
Подскажите пожалуйста по возможности!!!
Мне надо чтобы ордера открывались только в первую минуту после открытия бара.
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, чтобы голова не болела.....
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите пожалуйста по возможности!!!
Мне надо чтобы ордера открывались только в первую минуту после открытия бара.
iTime(Symbol(),5,0) -- время открытия бара.
TimeCurrent() -- настоящее время.
Я сделала так:
if(TimeCurrent() - iTime(Symbol(),5,0) < 60)
{
..............
}
И это не работает. Кто знает по какой причине, подскажите пожалуйста!