помогите разобраться. пытаюсь сделать в советнике закрытие сделок в пятницу за пол часа до закрытия сессии.
пробовал по учебнику, то ничего у меня не получилось
может у кого уже готовый код есть.
код закрытия у меня есть. мне нужен сам сигнализирующий закрытие сессии за 30 минут.
Может так.
externdatetime DateTime = D'2014.03.21 11:30'; // Дата и время закрытияif (TimeCurrent()>=DateTime)
{
}
ситуация в том, что дата мне не нужна. нужно, что бы при наступлении каждой пятницы, за 30 минут и в течении 30 минут до завершения сессии сигнализировать, а дальше сигнал я встрою в код закрытия ордеров. и нужно, что бы код учитывал сам, когда закрывается сессия, так как часовые пояса разные и бывают переходы с летнего и на зимнее время.
//---закрыть все позиции в пятницу в 19-40 по серверному времени if(DayOfWeek()==5 && Hour()==19 && Minute()>40){
//Дать сигнал на закрытие всех позиций
}
помогите разобраться. пытаюсь сделать в советнике закрытие сделок в пятницу за пол часа до закрытия сессии.
пробовал по учебнику, то ничего у меня не получилось
может у кого уже готовый код есть.
код закрытия у меня есть. мне нужен сам сигнализирующий закрытие сессии за 30 минут.
Вот так может более универсально к любому брокеру. Жаль пока функции нет разницы котировок брокера с UTC
voidOnStart()
{
//---int hrd=-3; // разница времени в часах котировок брокера с Гринвичемdatetime tc=TimeCurrent();
if(f_ts(tc,hrd)>0) Print("CloseAll()");
}
//+------------------------------------------------------------------+int f_ts(datetime ti, int hrd)
{
if(TimeDayOfWeek(ti)!=5) return(-1); // если не пятница выходимdatetime t0d,te;
int dtd=1440*60, res=-1;
t0d=ti/dtd*dtd; // начало торгового дня
te=t0d+dtd-30*60+hrd*3600; // 30 мин до конца сессииif (ti>te) res=1;
else res=0;
return(res);
Функции выдают исходя из текущего времени, а то что я написал выше будет работать поскольку TimeCurrent() и TimeDayOfWeek() работает корректно . Только надо еще дописать функцию перехода на летнее и зимнее время брокеров, т.е. параметр hrd. Переход как правило по американскому DST времени (первое воскресенье ноября второе воскресенье марта), но некоторые брокеры не осуществляют переход, так что ориентируйтесь на своего
Надо определить время закрытия сессии datenime SessionClose = ... Если-же закрытие не сессии, а торгов, то SessionClose = StrToTime("23:30");
время закрытия сессии datenime SessionClose = ... и торгов ... работать в тестере не будет как вы его не определяйте :) Проверьте с начала марта и до сего дня
GSB: время закрытия сессии datenime SessionClose = ... и торгов ... работать в тестере не будет как вы его не определяйте :) Проверьте с начала марта и до сего дня
А при чём тут тестер??? Хотя и в тестере работало до последних обновлений. Теперь спорить не буду, не проверял и не скоро заставят включить тестер.
А при чём тут тестер??? Хотя и в тестере работало до последних обновлений. Теперь спорить не буду, не проверял и не скоро заставят включить тестер.
С принципами возражений нет, но человек хочет советник прогнать на тестере, поэтому ваши варианты ему не подходят.
belck Воспользуйтесь моим вариантом, он будет работать и в реале и в тестере, но пока не сделали функцию для автоматического учета перехода на зимнее-летнее время, определите время перехода на этот год типа
belck:
приветствую!
помогите разобраться. пытаюсь сделать в советнике закрытие сделок в пятницу за пол часа до закрытия сессии.
пробовал по учебнику, то ничего у меня не получилось
может у кого уже готовый код есть.
код закрытия у меня есть. мне нужен сам сигнализирующий закрытие сессии за 30 минут.
Может так.
приветствую!
помогите разобраться. пытаюсь сделать в советнике закрытие сделок в пятницу за пол часа до закрытия сессии.
пробовал по учебнику, то ничего у меня не получилось
может у кого уже готовый код есть.
код закрытия у меня есть. мне нужен сам сигнализирующий закрытие сессии за 30 минут.
Вот так может более универсально к любому брокеру. Жаль пока функции нет разницы котировок брокера с UTC
У меня работает вот это, сбоев не было.
пробовал так делать, тестировал через тестер, то функция не работала.
Ну это в тестере и не должно работать.
Функции выдают исходя из текущего времени, а то что я написал выше будет работать поскольку TimeCurrent() и TimeDayOfWeek() работает корректно . Только надо еще дописать функцию перехода на летнее и зимнее время брокеров, т.е. параметр hrd. Переход как правило по американскому DST времени (первое воскресенье ноября второе воскресенье марта), но некоторые брокеры не осуществляют переход, так что ориентируйтесь на своего
приветствую!
помогите разобраться. пытаюсь сделать в советнике закрытие сделок в пятницу за пол часа до закрытия сессии.
пробовал по учебнику, то ничего у меня не получилось
может у кого уже готовый код есть.
код закрытия у меня есть. мне нужен сам сигнализирующий закрытие сессии за 30 минут.
Может так.
Совсем не так.
Надо определить время закрытия сессии datenime SessionClose = ... Если-же закрытие не сессии, а торгов, то SessionClose = StrToTime("23:30");
Определить день недели TimeDayOfWeek()
Если пятница, то проверяем время TimeCurrent() >= SessionClose
Совсем не так.
Надо определить время закрытия сессии datenime SessionClose = ... Если-же закрытие не сессии, а торгов, то SessionClose = StrToTime("23:30");
Определить день недели TimeDayOfWeek()
Если пятница, то проверяем время TimeCurrent() >= SessionClose
более подробнее кодом описать можете?
Совсем не так.
Надо определить время закрытия сессии datenime SessionClose = ... Если-же закрытие не сессии, а торгов, то SessionClose = StrToTime("23:30");
более подробнее кодом описать можете?
Могу. Но это противоречит моим принципам.
время закрытия сессии datenime SessionClose = ... и торгов ... работать в тестере не будет как вы его не определяйте :) Проверьте с начала марта и до сего дня
Могу. Но это противоречит моим принципам.
А при чём тут тестер??? Хотя и в тестере работало до последних обновлений. Теперь спорить не буду, не проверял и не скоро заставят включить тестер.С принципами возражений нет, но человек хочет советник прогнать на тестере, поэтому ваши варианты ему не подходят.
belck Воспользуйтесь моим вариантом, он будет работать и в реале и в тестере, но пока не сделали функцию для автоматического учета перехода на зимнее-летнее время, определите время перехода на этот год типа
С марта 2013 и до ноября 2014 будет работать и тестироваться корректно. Сдвиг поставьте соответственный своему брокеру