智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)
为论坛做贡献有奖学金,奖学金可直接换真钱 扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得
查看: 2260|回复: 1

关于查找订单,然后开单的问题,死活不开单 求高人指点!!!

[复制链接]
发表于 2014-12-3 11:20:34 | 显示全部楼层 |阅读模式

#property copyright " "
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
extern double 手数=0.1;
extern int 止损=200;
extern int 止盈=300;
extern int 滑点=10;
extern int magic=900409;
string 注释="";

int OnInit()
  {

   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {

   
  }

void OnTick()
   {
      zhaodan("多单");
   }
void zhaodan(string zhushi)
   {
      bool zhaodan=false;
      string zhushi1=zhushi;
      for(int i=0;i<OrdersTotal();i++)
         {
            if(OrderSelect(i,SELECT_BY_POS))
               {
                  if(OrderComment()==zhushi1 && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
                     {
                        zhaodan=true;
                        break;
                     }
               }
         }
      if(zhaodan=false)
         {
            if(zhushi1=="多单")
               {
                  buy(手数,止损,止盈);
               }
            if(zhushi1=="空单")   
               {
                  sell(手数,止损,止盈);
               }
         }   
   }
int buy(double lots,int sun,int ying)//多单自动买入,手数,止损,止盈.
   {
      注释="多单";
      int ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,滑点,0,0,注释,magic,0,clrAliceBlue);
      Sleep(500);
      if(ticket>0)
         {
         if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
            {
               if((sun!=0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun==0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun!=0)&&(ying==0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),0,0,Red);
                  }
            }
         }
      return(ticket);
   }
   
int sell(double lots,int sun,int ying)//空单自动买入,手数,止损,止盈.
   {
      注释="空单";
      int ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,滑点,0,0,注释,magic,0,clrAliceBlue);
      Sleep(500);
      if(ticket>0)
         {
         if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
            {
               if((sun!=0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()-ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun==0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()-ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun!=0)&&(ying==0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sun*MarketInfo(Symbol(),MODE_POINT),0,0,Red);
                  }
            }
         }
      return(ticket);
   }

框架EA.mq4

6.22 KB, 下载次数: 160

回复

使用道具 举报

发表于 2014-12-8 20:33:01 | 显示全部楼层
本帖最后由 MQL4MQL5 于 2014-12-8 20:34 编辑

#property copyright " "
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
extern double 手数=0.1;
extern int 止损=200;
extern int 止盈=300;
extern int 滑点=10;
extern int magic=900409;
string 注释="";

int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
  }

void OnTick()
   {
      zhaodan("多单");
   }
   
void zhaodan(string zhushi)
   {
      bool zhaodan=false;
     // string zhushi1=zhushi; //可直接用参数而不需要转化,
      for(int i=0;i<OrdersTotal();i++)
         {
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {
                  if(OrderComment()==zhushi && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
                     {
                        zhaodan=true;
                        break;
                     }
               }
         }
      if(zhaodan==false) /此处应该用比较运算符==而不是赋值运算符=
         {
            if(zhushi=="多单")
               {
                  buy(手数,止损,止盈);
               }
            if(zhushi=="空单")   
               {
                  sell(手数,止损,止盈);
               }
         }   
   }
int buy(double lots,int sun,int ying)//多单自动买入,手数,止损,止盈.
   {
      注释="多单";
      int ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,滑点,0,0,注释,magic,0,clrAliceBlue);
     // Sleep(500);
      if(ticket>0)
         {
         if(OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES))
            {
               if((sun!=0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun==0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun!=0)&&(ying==0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),0,0,Red);
                  }
            }
         }
      return(ticket);
   }
   
int sell(double lots,int sun,int ying)//空单自动买入,手数,止损,止盈.
   {
      注释="空单";
      int ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,滑点,0,0,注释,magic,0,clrAliceBlue);
     // Sleep(500);
      if(ticket>0)
         {
         if(OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES))
            {
               if((sun!=0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()-ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun==0)&&(ying!=0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()-ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
                  }
               if((sun!=0)&&(ying==0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sun*MarketInfo(Symbol(),MODE_POINT),0,0,Red);
                  }
            }
         }
      return(ticket);
   }

------------------------------------------------
你再试试,这样就可以正常开单了,我测试开了一张多单,符合你的要求。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap|智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号,苏州智德金网络科技股份有限公司版权所有 )

GMT+8, 2019-10-14 16:35 , Processed in 0.037972 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表