📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    一个平仓策略的设想请版主能否用EA做出来

    2013-05-08 · 9335 阅读
    尊敬的编程高手老师:
    在本论坛看见很多高手,烦请老师帮制作EA。
    策略如下:(例子)
    条件1:把持仓中的BUY单按照盈利大于等于10美金并且小于等于20美金之间的单子选出来;
    条件2:把持仓中的SELL单按照亏损小于等于-10美金并且亏损大于0美金之间的单子选出来;
    条件3:然后把符合条件1的单子相加计算总利润减去符合条件2的单子相加计算总亏损,最终得出的利润差值大于等于0美金,就把条件1和条件2的单子一起平仓。
    意思是只有同时符合(条件1、条件2、条件3),才能按照利润差是大于等于0才执行一起平仓,不能单独去平仓条件1,或者条件2,。
    比如这里设置利润差值是+10美元则把这些条件1和条件2的多空单子一起平仓。
    --------------------------------------------
    变量参数赋值开关按钮设置:
    ①本EA设置做个总开关,需要的时候开启。//设定TRUE就是开启这个EA,设定FALSE就是停止EA
    ②条件1:BUY单可以选择设置TRUE或者FALSE
    SELL单可以选择设置TRUE或者FALSE
    盈利大于等于10美金    //可以自由设置金额参数比如40美金
    并且小于等于20美金  //  可以自由设置金额参数比如50美金
    ③条件2:BUY单可以选择设置TRUE或者FALSESELL单可以选择设置TRUE或者FALSE
    亏损小于等于-10美金   //  可以自由设置金额参数 比如-50美金
    并且亏损大于0美金  //可以自由设置金额参数 比如-10美金
    ④利润差可以设置参数  比如12.34美金。但必须是大于等于0的正数,不能是负数。

    策略结束。请高手老师百忙中帮忙写个EA。
    此致敬礼感谢。
    与大家共同学习,支持论坛,支持与大家共享EA精神的好人。
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 29 个

    乱枪打鸟 LV9

    发表于 2013-5-8 23:22:30 | 显示全部楼层

    也许这就是要收费了

    外汇尼玛 LV2

    发表于 2013-5-9 10:20:00 | 显示全部楼层

    事先准备好你的策略,QQ705601985发过来。

    路路通 LV3

    发表于 2013-5-9 13:56:30 | 显示全部楼层

    也许这就是要收费了

    骨灰实战 LV1

    发表于 2013-5-9 18:11:42 | 显示全部楼层

    等候高手来回复

    杨晨亮 LV4

    发表于 2013-6-12 14:04:36 | 显示全部楼层

        计算当前持仓单的总盈亏比 .
    本函数计算原理如下:循环查询所有持仓单,过滤掉非本K下商品的订单。累加所有盈利单的盈利总数和所有亏损单的亏损总数。返回 两者的比值源代码如下:
    double GetYKB()
    {
    double PWin=0,PLose=0;
    for(int i=0;i<OrdersTotal();i++)
       {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
         {
          if(OrderProfit()>0)
          {
          
           PWin+=MathAbs(OrderOpenPrice()-(Ask+Bid)/2);        
          }else
          {
          
           PLose+=MathAbs(OrderOpenPrice()-(Ask+Bid)/2);  
          }
         }
       }
      
    if(PLose==0)return(10000);
    return(PWin/PLose);
    }
          平掉所有持仓单
    本函数原理:先循环读取所有持仓单,并过滤掉非本K线商品的持仓单,循环的同时,用数组记录所有过滤后的持仓单的Ticket号码及多空类型。然后循环一次选择每一个Ticket对应的持仓单,并更具多空类型进行平仓。源代码如下:
    bool ClosePosition()//Close all holding positions
    {
    bool Flag=true;
    int tick[200],tp[200];  
    int j=0;
      for(int i=0;i<OrdersTotal();i++)
       {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         if(OrderSymbol()==Symbol() &&  OrderMagicNumber()==Magic)
         {
          j=j+1;
          tick[j]=OrderTicket();      
          tp[j]=OrderType();
         }
       }
    if (j!=0)
    {      
       for(i=1;i<=j;i++)
       {
        OrderSelect(tick[i], SELECT_BY_TICKET);
        switch(tp[i])
        {
         case OP_BUY:
          if(OrderClose(tick[i],OrderLots(),Bid,滑点偏移点数,CLR_NONE)==false) Flag=false;      
          break;
         case OP_SELL:
          if(OrderClose(tick[i],OrderLots(),Ask,滑点偏移点数,CLR_NONE)==false) Flag=false;      
          break;     
        }
       }
    }
    return(Flag);
    }

    紫衣 LV3

    发表于 2014-11-15 12:46:33 | 显示全部楼层

    研究研究

    还要坚持多久 LV7

    发表于 2015-1-2 19:30:27 | 显示全部楼层


    呵呵

    依路有我 LV3

    发表于 2015-1-4 01:38:38 | 显示全部楼层

    亏损中……………………

    曋曋 LV3

    发表于 2015-1-4 09:25:03 | 显示全部楼层

    找版主
    123下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服