Помогите разобраться в чем проблема.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Serge
333
Serge  
Написал индикатор с возможностью работы на разных периодах(указывается во входных параметрах индикатора). Если в индикаторе указать текущий период, то все работает, но если период графика отличается от периода индикатора, то при появлении нового бара на графике все, что рисуется через буфера исчезает (fail.jpg)до нажатия ПКМ-Обновить. Помогите исправить.
Файлы:
ok.JPG 164 kb
fail.JPG 150 kb
Serge
333
Serge  

Возможно ли переписать приведенный выше индикатор с использованием классов и возможностью без перекомпиляции менять набор инструментов. Больше всего не понятно как переписать код с возможностью динамического изменения набора инструментов:

  for(int i=to_copy-1; i>=0; i--)
     {

      double EURUSD=ma(hwd_EURUSDs, hwd_EURUSDf, i);
      double GBPUSD=ma(hwd_GBPUSDs, hwd_GBPUSDf, i);
      double AUDUSD=ma(hwd_AUDUSDs, hwd_AUDUSDf, i);
      //double NZDUSD=ma("NZDUSD", Slow, MA_Method, Price, i)/ma("NZDUSD", Fast, MA_Method, Price, i);

      double USDCAD=ma(hwd_USDCADf, hwd_USDCADs, i);
      double USDCHF=ma(hwd_USDCHFf, hwd_USDCHFs, i);
      double USDJPY=ma(hwd_USDJPYf, hwd_USDJPYs, i);

      //double sum = EURUSD + GBPUSD + AUDUSD + NZDUSD + USDCHF + USDCAD + USDJPY;
      double sum=EURUSD+GBPUSD+AUDUSD+USDCHF+USDCAD+USDJPY;

      // рассчет валют
      arrUSD[i] = sum-6.0;
      arrEUR[i] = (sum-EURUSD+1.0)/EURUSD-6.0;
      arrGBP[i] = (sum-GBPUSD+1.0)/GBPUSD-6.0;
      arrAUD[i] = (sum-AUDUSD+1.0)/AUDUSD-6.0;
      //arrNZD[i] = (sum-NZDUSD+1.0)/NZDUSD-7.0;
      arrCAD[i] = (sum-USDCAD+1.0)/USDCAD-6.0;
      arrCHF[i] = (sum-USDCHF+1.0)/USDCHF-6.0;
      arrJPY[i] = (sum-USDJPY+1.0)/USDJPY-6.0;

     }//end block for(int i=0; i<limit; i++)  

 Помогите хотя бы советом, но лучше кодом или примером.

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