Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Статьи помогут закрепить твои знания. Заходи и читай!
Fry_Антон
306
Fry_Антон 2015.10.07 13:23 

Внутри OnInit() подгружаю индюк на чарт с другим ТФ вот так:

   //добавляем на график
   if(!MQLInfoInteger(MQL_TESTER))
   {
      //выбор графика, подходящего по символу и таймфрейму
      long chart_id=ChartFirst();
      for(int i=0;i<CHARTS_MAX;i++)
      { 
         if(chart_id<0) {chart_id=ChartOpen(Symbol(),period_); break;}                // если достигли конца списка, попробуем открыть новый график
         if(ChartSymbol(chart_id)==Symbol() && ChartPeriod(chart_id)==period_) break; // если нашли искомый график
         chart_id=ChartNext(chart_id);                                                // следующий id
      }
      // добавляем индикатор на график
      if(!ChartIndicatorAdd(chart_id,0,hTrend))
      {
         Print(__FUNCTION__+":не удалось добавить на график индикатор тренда. Ошибка№",GetLastError());
         return(false);
      }
      hWnd=(int)ChartGetInteger(chart_id,CHART_WINDOW_HANDLE);
   }

Внутри OnDeinit() надо удалить этот индюк.

Интуитивно хочется сделать так:

   if(!MQLInfoInteger(MQL_TESTER))
   {
      ChartIndicatorDelete(hWnd,0,"Trend");
      IndicatorRelease(hTrend);
   }

Понятно, что в MQL5 так просто не бывает =)

А как правильно получить актуальный chart_id именно для того окна, на которое я отображал индюк?

И как его правильно удалить?

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий