//+------------------------------------------------------------------+ //| Create indicators. | //+------------------------------------------------------------------+ bool xxx:InitIndicators(CIndicators *indicators) { //--- check pointer if(indicators==NULL) return(false); //--- add object to collection // int total_indicatod= ChartIndicatorsTotal(ChartID(),0); // if(total_indicatod>0) ChartIndicatorDelete(ChartID(),0,ChartIndicatorName(ChartID(),0,0)); if(money_Policy!=2){ if(!indicators.Add(GetPointer(m_ci_sar1))) { printf(__FUNCTION__+": error adding object"); return(false); } } //--- initialize object MqlParam parameters3[4]; parameters3[0].type=TYPE_STRING; parameters3[0].string_value="tailing\\parabolic_MTF_.ex5"; //colorMACD.ex5"; //"Examples\\MACD.ex5"; //parameters3[0].string_value="SAR\\SAR_HTF.ex5"; parameters3[1].type=TYPE_INT; parameters3[1].integer_value= Risk_OpPeriod_Big;//TimeFrame=PERIOD_H6;ENUM_TIMEFRAMES //iSAR indicator chart period parameters3[2].type=TYPE_DOUBLE; parameters3[2].double_value = m_step;// 0.02; // iSAR step parameters3[3].type=TYPE_DOUBLE; parameters3[3].double_value = icsar_max;//=0.2; // iSAR maximum if(money_Policy!=2){ if(!m_ci_sar1.Create(m_symbol.Name(),0,IND_CUSTOM,4,parameters3))//,if(!m_ci_sar.Create(m_symbol.Name(),m_period_op ,m_step,m_maximum)) //m_period { printf(__FUNCTION__+": error initializing SAR object"); return(false); } ci_handle1 = m_ci_sar1.Handle(); if(!m_ci_sar1.NumBuffers(4)) return false; // ci_handle1=iCustom(m_symbol.Name(),0,"tailing\\parabolic_MTF_",m_period_op,m_step,icsar_max); } if(money_Policy!=1){ if(!indicators.Add(GetPointer(m_ci_sar2))) { printf(__FUNCTION__+": error adding object"); return(false); } parameters3[1].integer_value = Risk_OpPeriod_Small ; parameters3[2].double_value = step_small ; if(!m_ci_sar2.Create(m_symbol.Name(),0,IND_CUSTOM,4,parameters3))//,if(!m_ci_sar.Create(m_symbol.Name(),m_period_op ,m_step,m_maximum)) //m_period { printf(__FUNCTION__+": error initializing SAR object"); return(false); } //============================================================ ci_handle2 = m_ci_sar2.Handle();// iCustom(NULL,0,"tailing\\ColorMACD_MTF",my_period,m_period_fast,m_period_slow,m_period_signal); //CustomKK", 21, 0, MODE_EMA, PRICE_CLOSE ); } //ChartIndicatorRemove //--- bind indicator buffers //--- Values serves as a display buffer // SetIndexBuffer(0,_state,INDICATOR_DATA); //--- ValuesPainting serves as the buffer for storing colors //SetIndexBuffer(1,ValuesPainting,INDICATOR_COLOR_INDEX); if(money_Policy!=2){ if(ci_handle1){ if(!ChartIndicatorAdd(0,0 ,ci_handle1)){//sub_window PrintFormat("Init_Tailing Failed to add SAR(1) on chart. Error code %d",GetLastError()); ResetLastError(); } } } if(money_Policy!=1){ if(ci_handle2){ //============預設初始化 清除舊的 SAR 指標====================== int total_indicatod= ChartIndicatorsTotal(ChartID(),0); if(total_indicatod>1) ChartIndicatorDelete(ChartID(),0,ChartIndicatorName(ChartID(),0,1)); //=================================================================== if(!ChartIndicatorAdd(0,0 ,ci_handle2)){ PrintFormat("Init_Tailing Failed to add SAR(2) on chart. Error code %d",GetLastError()); ResetLastError(); } total_indicatod= ChartIndicatorsTotal(ChartID(),0); }} }