编程逆袭仔 发表于 2013-11-22 15:20:24

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;

       elseDTS=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);

}

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

346420344 发表于 2014-9-15 10:51:26

求离场策略

sunyit 发表于 2014-10-5 00:59:44

https://client.armadamarkets.com/cn/IB888888
舰队外汇平台,ECN帐户,黄金低至1.5点差,欧美低至0.6点差,其它货币对更低,
全天无掉线,做单速度迅速,FCA监管中,出入金银联安全方便


给个很好的黄金外汇赠金平台给你,开固定帐户,不懂的加QQ:2545131307

http://www.66jr.cn/Help/TGRead/75?m=1&bn=162822
注册乐乐金融 即送50美元
乐乐金融携手GPP外汇交易商巨头推出开户即送50美元活动,交易即获返佣,返佣日结

算,返佣可提取,赢利可提取。还可以免费开店,拿返佣金

悄悄豆 发表于 2014-11-1 01:35:55


继续,学习了

mccz7dhpff 发表于 2014-11-3 16:40:01

赚钱,赚积分。顶....

omyzbp 发表于 2014-11-5 01:39:53

多谢分享 看看是什么

dd5hkbxz5q 发表于 2014-11-8 01:36:57

看看怎么样

xuvao 发表于 2014-12-10 20:16:11

路过。。看下先。

lagiejw 发表于 2020-2-15 21:28:37

我是来刷分的,嘿嘿

ozyamhct 发表于 2020-7-7 10:16:27

学习了,不错
页: [1] 2
查看完整版本: MT4的网格交易策略源码