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

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

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

全部平仓疑问

[复制链接]
发表于 2012-2-15 08:45:17 | 显示全部楼层 |阅读模式
我按老师视频中的做法,做了一个一模一样的平仓代码。不知道什么原因。可以print出所有买单订单号,但是就是无法平仓。代码如下:
int start()
  {
     for(int i=0;i<OrdersTotal();i++)
     
       {     
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
            {
               if(OrderType()==OP_BUY)
                 {
                    
                    OrderClose(OrderTicket(),OrderLots(),Ask,300,Red);
                    Print("记录买单"+OrderTicket());  
               }
            
               if(OrderType()==OP_SELL)
               {
               
                    OrderClose(OrderTicket(),OrderLots(),Bid,300,Red);
               }
               
               if((OrderType()==OP_BUYLIMIT)||(OrderType()==OP_BUYSTOP)||(OrderType()==OP_SELLLIMIT)||(OrderType()==OP_SELLSTOP))
               {
                     OrderDelete(OrderTicket(),White);
               
               }
               
            }
         
        }   
         
   return(0);
  }
回复

使用道具 举报

发表于 2012-2-15 10:21:34 | 显示全部楼层
平多单用Bid价格,平空单用Ask价格
if(OrderType()==OP_BUY)
                 {
                    
                    OrderClose(OrderTicket(),OrderLots(),Bid,300,Red);
                    Print("记录买单"+OrderTicket());  
               }
            
               if(OrderType()==OP_SELL)
               {
               
                    OrderClose(OrderTicket(),OrderLots(),Ask,300,Red);
               }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-15 14:32:42 | 显示全部楼层
谢谢老师指点。 我换过来了。 可是还是无法平仓。 我用的平台是 Alpair UK。不知道什么原因。一大早就一直在折腾这个代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-16 07:47:44 | 显示全部楼层
回复 admin 的帖子

谢谢,我找到原因了,是MT4的设置问题。现在代码可以正常运行。但是还有一个小问题就是,每次只能平掉一个单(代码跟您提供的一样)。不能全部平掉。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-16 22:32:57 | 显示全部楼层
本帖最后由 cxg211 于 2012-2-16 22:34 编辑
admin 发表于 2012-2-15 10:21
平多单用Bid价格,平空单用Ask价格
if(OrderType()==OP_BUY)
                 {


赵老师,我找到不能平掉所有单的原因了。除了平台服务器的原因之外不能平掉所有单之外。 代码本身的循环有问题, for(int i=0;i<OrdersTotal();i++) 中,OrdersTotal()本身是变量,当有四张单子时,一次最多只能平掉两张。因为i=2了,OrdersTotal()=2了,不能再循环了。类推,这样肯定是永远都平不完的。
回复 支持 反对

使用道具 举报

发表于 2012-2-17 15:56:19 | 显示全部楼层
恩 cxg211朋友想必自己的基础不错,这个问题 都能被你发现。
这个问题我早发现了。想要全部平仓,用我下面的脚本吧
一次性平所有仓脚本(保证全平).rar (2.01 KB, 下载次数: 248)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-17 21:06:08 | 显示全部楼层
本帖最后由 cxg211 于 2012-2-17 21:06 编辑

还是老师厉害啊。直接先赋值。 哈哈。高实在是高 ,受教了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-11-18 03:39 , Processed in 0.078125 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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