Как выйти из торговлю по интервалу времени в течении дня по достижению профита

 

Есть советник который торгует каждый день в определенный период времени. Хочу реализовать так, чтобы он прекращал торговать как только наберет определенный профит за день и ждал следующего дня для торговли.

к примеру:

void OnTick()
{
 if (Hour()>=9 && Minute()>=0 && Hour()<=10 && Minute()<=0)
 {
  //торгует пока не наберет профит за день.
  // набрал. ждет сл. дня.
 }
}
 

Какой там день? Торговать пытаться будет с 9 до 10 мск. Что-то похожее на закрытие Гонконга. 

Попробуйте сами хотя-бы немного разобраться в теме, а уже после задавать вопросы. 

 
weblatters:

Есть советник который торгует каждый день в определенный период времени. Хочу реализовать так, чтобы он прекращал торговать как только наберет определенный профит за день и ждал следующего дня для торговли.


пишите то-же самое что сказали, только кодом :-)

void OnTick()

{

   CheckForDay();    // вызовем проверку начала нового дня, при необходимости зададим новое расписание и планы

   if (!TradeAllowedByTime()) return;  // торговля запрещена по расписанию, не торгуем

   if (!TradeAllowedByProfit()) return; // достигунт максимум денег или слива, не торгуем

   /// торгуем со страшной силой

   ....

}

дальше реализуете CheckForDay(), TradeAllowedXXX и так далее

 
Всем спасибо. 
Решил по своему. Оставлю. вдруг кому пригодится.
datetime cur_day;
static datetime next_day = iTime(Symbol(), PERIOD_D1, 0);

void OnTick()
  {
   cur_day = iTime(Symbol(), PERIOD_D1, 0);
   if(cur_day >= next_day)
     {
      if (Hour()>=9 && Minute()>=0 && Hour()<=10 && Minute()<=0)
        {
         if(OrdersProfitHistory >= Profit)
           {
            CloseAll();
            next_day = iTime(Symbol(), PERIOD_D1, 0) + 3600*24;           
           }
        }
     }
  }
 
weblatters #:
Всем спасибо. 
Решил по своему. Оставлю. вдруг кому пригодится.

как минуты могут быть меньше нуля?

Minute()<=0

да еще одновременно с этим больше нуля)

Minute()>=0
 
Taras Slobodyanik #:

как минуты могут быть меньше нуля?

да еще одновременно с этим больше нуля)

Ну тут как бы интервал от 9:00 до 10:00

 
weblatters #:

Ну тут как бы интервал от 9:00 до 10:00

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

if(TimeCurrent()>=cur_day+(9*60*60) && TimeCurrent()<=cur_day+(10*60*60))
Причина обращения: