// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("MACD 2SIGNAL");
//------------------------------------------------------------------+
// Блок 1                                                           |
//------------------------------------------------------------------+
  MaxEval=Param("Optimize MaxEval",50000,100,300000,100);            //Устанавливаем максимальное количество проходов на один оптимизируемый параметр
  OptimizerSetEngine("trib");                                        //Устанавливаем тип генетического алгоритма
  OptimizerSetOption("MaxEval",MaxEval);                             //и способ реализации
//-------------------------------------------------------------------                                                      
  iPositionSize=Param("Position Size %",100,10,300,10);   //Размер капитала участвующий в одной сделке                                                                      
  FastMA=Optimize("Fast MA",Param("Fast MA",12,3,30,1),3,15,1);    //Быстрая МА                                                                              
  SlowMA=Optimize("Slow MA",Param("Slow MA",26,3,30,1),3,30,1);    //Медленная МА                            
  SigMAop=Optimize("Signal MA (open)", 
          Param("Signal MA (open)",9,3,30,1),15,25,1);              //Сигнальная МА для открытия позиции                                            
  SigMAcl=Optimize("Signal MA (close)",
          Param("Signal MA (close)",9,3,30,1),3,15,1);             //Сигнальная МА для закрытия позиции                   
//-------------------------------------------------------------------
  ShowMACD=ParamToggle("Show MACD?","No|Yes",0);                     //Отображение индикатора
  colorMACD=ParamColor("Color MACD",colorRed);                       //Цвет линий
  colorSOp=ParamColor("Color Signal MA (open)",colorGreen); 
  colorSCl=ParamColor("Color Signal MA (close)",colorBlue);  
//------------------------------------------------------------------+
// Блок 2                                                           |
//------------------------------------------------------------------+
  iMACD=MACD(FastMA,SlowMA);                                         //Рассчитываем MACD
  SignalOp=Signal(FastMA,SlowMA,SigMAop);                            //Рассчитываем сигнальную линию MACD для ОТКРЫТИЯ позиции
  SignalCl=Signal(FastMA,SlowMA,SigMAcl);                            //Рассчитываем сигнальную линию MACD для ЗАКРЫТИЯ позиции
//------------------------------------------------------------------+
// Блок 3                                                           |
//------------------------------------------------------------------+
  Buy=Cross(iMACD,SignalOp);                                         //ПОКУПАЕМ
  Cover=Cross(iMACD,SignalOp);                                       //ЗАКРЫВАЕМ предыдущую позицию на продажу (переворачиваемся)
  Sell =Cross(SignalCl,iMACD);                                       //ПРОДАЕМ
  Short=Cross(SignalCl,iMACD);                                       //ЗАКРЫВАЕМ предыдущую позицию на покупку (переворачиваемся)  
//------------------------------------------------------------------+
// Блок 4                                                           |
//------------------------------------------------------------------+
                      
  SetPositionSize(iPositionSize,spsPercentOfEquity);                 //Устанавливем определенный размер позиции от имеющихся средств
//------------------------------------------------------------------+
// Блок 5                                                           |
//------------------------------------------------------------------+
  if(ShowMACD==1)                                                    //В случае необходимости выводи линии на график
    {
     Plot(iMACD,"MACD",colorMACD,styleLine);
     Plot(SignalOp,"SignalOp",colorSOp,styleDashed);
     Plot(SignalCl,"SignalCl",colorSCl,styleDashed);
    }
_SECTION_END();