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

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

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

老师的buy自定义函数可不可以实现平仓后直到0号K线收盘之前不在开仓?

[复制链接]
发表于 2012-1-30 13:14:28 | 显示全部楼层 |阅读模式
老师的buy和sell自定义函数开单很好用,控制的也很好,可我在测试时发现有一个小问题,就是比如在1小时图时波动比较大的时候有时平仓以后又开仓了,因为0号K线没走完,可波动比较大,止盈或者止损后前面的开仓判断还都符合要求,这样会继续再开一单的。老师的函数能否实现平仓后直到0号K线收盘之前不在开仓?
回复

使用道具 举报

发表于 2012-1-30 20:37:34 | 显示全部楼层
这个问题 问的很好,是一个常遇到的问题。
下面我给你一段代码,这是最完善的开单方式,既不会开单重复,也不会开单漏掉直到开单成功才不执行,而且可以做到一根K线绝对只开一单,就算平了也不会再开:
  1. #property copyright "Copyright ?2011, MetaQuotes Software Corp."
  2. #property link      "http://www.metaquotes.net"
  3. extern double lots=0.1;//修改下单手数的参数
  4. datetime buytime=0;
  5. int init()
  6.   {
  7.    return(0);
  8.   }
  9. int deinit()
  10.   {
  11.    return(0);
  12.   }
  13. int start()
  14.   {
  15.     if(buytime!=Time[0])
  16.       {
  17.         if(buy(lots,0,0,Symbol()+"buy",1)>0)//开buy
  18.           {
  19.              buytime=Time[0];
  20.           }
  21.       }
  22.    return(0);
  23.   }
  24. int buy(double Lots,double sun,double ying,string comment,int magic)
  25.   {
  26.           int kaiguan=0;
  27.             for(int i=0;i<OrdersTotal();i++)
  28.                {
  29.                    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  30.                      {
  31.                        if((OrderComment()==comment)&&(OrderMagicNumber()==magic))   
  32.                          {
  33.                            kaiguan=1;                     
  34.                          }
  35.                       }
  36.                }
  37.             if(kaiguan==0)
  38.               {
  39.                    int ticket=OrderSend(Symbol( ) ,OP_BUY,Lots,Ask,300,0,0,comment,magic,0,White);
  40.                    if(ticket>0)
  41.                    {
  42.                     if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
  43.                       {
  44.                        if((sun!=0)&&(ying!=0))
  45.                         {
  46.                           OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
  47.                         }
  48.                        if((sun==0)&&(ying!=0))
  49.                         {
  50.                           OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,Red);
  51.                         }
  52.                        if((sun!=0)&&(ying==0))
  53.                         {
  54.                           OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),0,0,Red);
  55.                         }
  56.                       }
  57.                    }
  58.               return(ticket);
  59.               }
  60.              else
  61.               {
  62.                return(0);
  63.               }
  64.   }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-1-30 22:27:25 | 显示全部楼层
回复 admin 的帖子

谢谢老师,老师很耐心也很敬业!回答问题非常及时!非常感谢老师的回答,在这里真正的学到了很多东西!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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