MT4中分形源码

//+------------------------------------------------------------------+

//|                                                     Fractals.mq4 |

//|                      Copyright ?2005, MetaQuotes Software Corp. |

//|                                        http://www.metaquotes.net |

//+------------------------------------------------------------------+

property copyright "Copyright ?2005, MetaQuotes Software Corp."

property link      "http://www.metaquotes.net"

property indicator_chart_window

property indicator_buffers 2

property indicator_color1 Red

property indicator_color2 Blue

//---- input parameters

//---- buffers

double ExtUpFractalsBuffer[];

double ExtDownFractalsBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()//初始化函数

  {

//---- indicator buffers mapping  

    SetIndexBuffer(0,ExtUpFractalsBuffer);

    SetIndexBuffer(1,ExtDownFractalsBuffer);   

//---- drawing settings

    SetIndexStyle(0,DRAW_ARROW);

    SetIndexArrow(0,119);

    SetIndexStyle(1,DRAW_ARROW);

    SetIndexArrow(1,119);

//----

    SetIndexEmptyValue(0,0.0);

    SetIndexEmptyValue(1,0.0);

//---- name for DataWindow

    SetIndexLabel(0,"Fractal Up");

    SetIndexLabel(1,"Fractal Down");

//---- initialization done   

   return(0);

  }

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()//init的析构函数

  {

//---- TODO: add your code here

   

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int start()//主函数

  {

   int    i,nCountedBars;

   bool   bFound;

   double dCurrent;

   nCountedBars=IndicatorCounted();//计算的是指标加载到图上后已经计算过的K线个数

//----

   

   if(nCountedBars2)

     {

      nCountedBars--;

      i=Bars-nCountedBars-1;

     }

//----Up and Down Fractals

   while(i>=2)

     {

      //----Fractals up

      bFound=false;

      dCurrent=High;

      if(dCurrent>High[i+1] && dCurrent>High[i+2] && dCurrent>High[i-1] && dCurrent>High[i-2])

        {

         bFound=true;

         ExtUpFractalsBuffer=dCurrent;

        }

      //----6 bars Fractal

      if(!bFound && (Bars-i-1)>=3)

        {

         if(dCurrent==High[i+1] && dCurrent>High[i+2] && dCurrent>High[i+3] &&

            dCurrent>High[i-1] && dCurrent>High[i-2])

           {

            bFound=true;

            ExtUpFractalsBuffer=dCurrent;

           }

        }         

      //----7 bars Fractal

      if(!bFound && (Bars-i-1)>=4)

        {   

         if(dCurrent>=High[i+1] && dCurrent==High[i+2] && dCurrent>High[i+3] && dCurrent>High[i+4] &&

            dCurrent>High[i-1] && dCurrent>High[i-2])

           {

            bFound=true;

            ExtUpFractalsBuffer=dCurrent;

           }

        }  

      //----8 bars Fractal                          

      if(!bFound && (Bars-i-1)>=5)

        {   

         if(dCurrent>=High[i+1] && dCurrent==High[i+2] && dCurrent==High[i+3] && dCurrent>High[i+4] && dCurrent>High[i+5] &&

            dCurrent>High[i-1] && dCurrent>High[i-2])

           {

            bFound=true;

            ExtUpFractalsBuffer=dCurrent;

           }

        }

      //----9 bars Fractal                                       

      if(!bFound && (Bars-i-1)>=6)

        {   

         if(dCurrent>=High[i+1] && dCurrent==High[i+2] && dCurrent>=High[i+3] && dCurrent==High[i+4] && dCurrent>High[i+5] &&

            dCurrent>High[i+6] && dCurrent>High[i-1] && dCurrent>High[i-2])

           {

            bFound=true;

            ExtUpFractalsBuffer=dCurrent;

           }

        }                                    

      //----Fractals down

      bFound=false;

      dCurrent=Low;

      if(dCurrent=dCurrent;

        }

      //----6 bars Fractal

      if(!bFound && (Bars-i-1)>=3)

        {

         if(dCurrent==Low[i+1] && dCurrent=dCurrent;

           }                     

        }         

      //----7 bars Fractal

      if(!bFound && (Bars-i-1)>=4)

        {   

         if(dCurrent=dCurrent;

           }                     

        }  

      //----8 bars Fractal                          

      if(!bFound && (Bars-i-1)>=5)

        {   

         if(dCurrent=dCurrent;

           }                     

        }

      //----9 bars Fractal                                       

      if(!bFound && (Bars-i-1)>=6)

        {   

         if(dCurrent=dCurrent;

           }                     

        }                                    

      i--;

     }

//----

   return(0);

  }

//+------------------------------------------------------------------+

宽客网,量化投资,宽客俱乐部
交易技术, 交易策略, 源码, MT4



                                                    风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部