// 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();