• <em id="n4cqa"><acronym id="n4cqa"></acronym></em>

    <tbody id="n4cqa"></tbody>

    <tbody id="n4cqa"></tbody>

      <progress id="n4cqa"><track id="n4cqa"><video id="n4cqa"></video></track></progress>
      您現在的位置:程序化交易>> 外匯現貨>> MT4>> MT4公式>>正文內容

      MT4的網格交易策略源碼[MT4公式]

      •  以下是我在網上看到的一個網格交易法的源碼,希望更多的人貼一些網格交易法的源碼,大家一起學習提高。




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

        //|                                                      Grid1.1.mq4 |

        //|                                          Copy* 順勢加碼 2006 |

        //|                                                |

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

        #property copy* "Copy* 順勢加碼 2006"

        #property link      "bonnyshi@gmail.com"

        #include <stdlib.mqh>



        extern double GridStep=50;        //格幅

        extern double GridLength=100;   //格長

        double PivotPr, Multiple, i, Lots=0.1, STOPLEVEL, TP, ST;

        string Text="Grid";

        int Magic, j, BuyCount, SellCount, DTS, Ticket;

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

        int init()    //初始化部分將定義參數賦值: 每次在start里面都可能被賦值一次,消耗時間

           

            if (DTS==4)  DTS=2;

               else  DTS=0;

            Magic =105;

            GridStep =GridStep*Point;

            GridLength =GridLength*Point;

            STOPLEVEL =MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

            return(0);

           



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

        int start()

        {

            Multiple =NormalizeDouble((Bid-NormalizeDouble(Bid,DTS))/GridStep, 0); // 評rint 檢查這地方出值為0  

            PivotPr =NormalizeDouble(Bid,DTS) +GridStep*Multiple;

            // 下網格布網

            for(i=PivotPr; i>=PivotPr-GridLength; i=i-GridStep)

               {

                BuyCount=0; SellCount=0;

                for(j=0; j<OrdersTotal(); j++)

                   {

                    if(OrderSelect(j,SELECT_BY_POS)==false) return(0);

          

                    if(OrderMagicNumber()==Magic && NormalizeDouble(OrderOpenPr(),DTS)==NormalizeDouble(i,DTS) )

                      {

                       if(OrderType()==OP_BUY || OrderType()==OP_BUYLIMIT )    BuyCount++;

                       if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP )     SellCount++;

                      }

                   }

                if(BuyCount==0)

                   {

                    TP =i+GridStep; ST=0;

                    if(Ask-i>=STOPLEVEL)

                      {

                      Ticket =OrderSend(Symbol(),OP_BUYLIMIT,Lots,i,0,ST,TP,"Grid - BuyLimit",Magic,0,0);

                      if (Ticket>0) Alert(Symbol()," ",Ticket,"Grid -   BuyLimit=",i," 開倉成功");

                        else Alert( Symbol(),"Grid - BuyLimit=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                      Sleep(10000);

                      }

                   if(Ask==i)

                      {

                       Ticket=OrderSend(Symbol(),OP_BUY,Lots,i,0,ST,TP,"Grid - Buy",Magic,0,0);

                       if (Ticket>0) Alert(Symbol()," ",Ticket,"Grid -   Buy=",i," 開倉成功");

                       else Alert( Symbol(),"Grid - Buy=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                       Sleep(10000);

                     }

                  }

               if(SellCount==0)

                  {

                   TP=i-GridStep;ST=0;

                   if(Bid-i>=STOPLEVEL)

                     {

                      Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,i,0,ST,TP,"Grid - SellStop",Magic,0,0);

                      if (Ticket>0) Alert(Symbol()," ",Ticket,"Grid -   SellStop=",i," 開倉成功");

                      else Alert( Symbol(),"Grid - SellStop=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                      Sleep(10000);

                     }

                   if(Bid==i)

                     {

                      Ticket=OrderSend(Symbol(),OP_SELL,Lots,i,0,ST,TP,"Grid - Sell",Magic,0,0);

                      if (Ticket>0) Alert(Symbol()," ",Ticket,"Grid -   BuyLimit=",i," 開倉成功");

                      else Alert( Symbol(),"Grid - BuyLimit=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                      Sleep(10000);

                     }

                  }

              }   

          

           // 上網格布網

           for(i=PivotPr+GridStep;i<=PivotPr+GridLength;i=i+GridStep)

              {

          

               BuyCount=0;SellCount=0;

               for(j=0;j<OrdersTotal();j++)

                  {

                   if(OrderSelect(j,SELECT_BY_POS)==false) return(0);

                   if(OrderMagicNumber()==Magic && NormalizeDouble(OrderOpenPrice(),DTS)==NormalizeDouble(i,DTS) )

                     {

                      if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP)    BuyCount++;   

                      if(OrderType()==OP_SELL || OrderType()==OP_SELLLIMIT)  SellCount++;

                     }

                  }

               if(BuyCount==0)

                  {

                   TP=i+GridStep;ST=0;

                   if(i-Ask>=STOPLEVEL)

                     {Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,i,0,ST,TP,"Grid +  BuyStop",Magic,0,0);

                      if (Ticket>0) Alert(Symbol()," ",Ticket,"Grid +    BuyStop=",i," 開倉成功");

                      else Alert( Symbol(),"Grid +  BuyStop=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                      Sleep(10000);

                     }

                   if(i==Ask)

                     {

                     Ticket=OrderSend(Symbol(),OP_BUY,Lots,i,0,ST,TP,"Grid +  Buy",Magic,0,0);

                     if(Ticket>0) Alert(Symbol(),"  ",Ticket,"Grid +   Buy=",i," 開倉成功");

                     else Alert( Symbol(),"Grid +  Buy=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                     Sleep(10000);

                    }

                 }

             if(SellCount==0)

                 {

                  TP=i-GridStep;ST=0;

                  if(i-Bid>=STOPLEVEL)

                    {

                    Ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,i,0,ST,TP,"Grid +  SellLimit",Magic,0,0);

                    if (Ticket>0) Alert(Symbol()," ",Ticket,"Grid +    SellLimit=",i," 開倉成功");

                    else Alert( Symbol(),"Grid +  SellLimit=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                    Sleep(10000);

                    }  

                  if(i==Bid)

                    {

                    Ticket=OrderSend(Symbol(),OP_SELL,Lots,i,0,ST,TP,"Grid + Sell",Magic,0,0);

                    if(Ticket>0) Alert(Symbol(),"  ",Ticket,"Grid +    Sell=",i," 開倉成功");

                    else Alert( Symbol(),"Grid +  Sell=",i," 開倉失敗:",ErrorDescription(GetLastError()));

                    Sleep(10000);

                    }

                 }

            }

           

        //----

           return(0);

        }

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

       

      有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

      可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言?。?!進行 有償 編寫!不貴!點擊查看價格!

       


      【字體: 】【打印文章】【查看評論

      相關文章

        沒有相關內容
        国产高潮流白浆免费观看
    1. <em id="n4cqa"><acronym id="n4cqa"></acronym></em>

      <tbody id="n4cqa"></tbody>

      <tbody id="n4cqa"></tbody>

        <progress id="n4cqa"><track id="n4cqa"><video id="n4cqa"></video></track></progress>