请高手指教:EA如何实现第一个单子和最后一个单子同时平仓

| 发表于 2022-8-2 15:52:15 | 显示全部楼层 |复制链接
如题:
举个例子:比如马丁亏损加仓模式,
初始第一单0.1手,然后0.2, 0.4, 0.8,现在加仓到了1.6手,
当1.6手的单子和0.1手的单子总盈利大于50美金时,同时把这两个单子平仓。其他单子不平仓。
就是把持仓中最早建仓的和最晚建仓的单子同时平仓。
这个需要如何实现,我是EA编程刚入门不久,请高手指教。
如果方便尽量详细点,谢谢了

举报

评论 使用道具

精彩评论11

gh16888
DDD
| 发表于 2022-8-2 20:12:33 | 显示全部楼层
写个程序
举报

点赞 评论 使用道具

xinsanban186
DDD
 楼主 | 发表于 2022-8-2 21:53:06 | 显示全部楼层

已经解决了,谢谢
举报

点赞 评论 使用道具

amwwfndn
DDD
| 发表于 2022-8-3 13:45:44 | 显示全部楼层
我也想要有后面对冲前面的EA
举报

点赞 评论 使用道具

xinsanban186
DDD
 楼主 | 发表于 2022-8-3 18:55:08 | 显示全部楼层
amwwfndn 发表于 2022-8-3 13:45
我也想要有后面对冲前面的EA

可以发给你一份
举报

点赞 评论 使用道具

huxu8777
DDD
| 发表于 2022-8-3 23:48:56 | 显示全部楼层
写个程序
举报

点赞 评论 使用道具

amwwfndn
DDD
| 发表于 2022-8-4 09:09:09 | 显示全部楼层

感谢,我加你了,通过下
举报

点赞 评论 使用道具

JOKEEBOSS
C
| 发表于 2022-8-4 09:59:47 | 显示全部楼层
好像很厲害的樣子
举报

点赞 评论 使用道具

wangdehang1
DDD
| 发表于 2022-8-5 17:43:04 | 显示全部楼层
//先查询第一单和最后一单的时间
for(i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)
           {
            if(OrderOpenTime()>lastBuyTime)
               lastBuyTime=OrderOpenTime();//最后一单时间
            if(oneBuyTime>0)
              {
               if(OrderOpenTime()<oneBuyTime)
                  oneBuyTime=OrderOpenTime();
              }
            else
              {
               oneBuyTime=OrderOpenTime();
              }
           }
         if(OrderType()==OP_SELL)
           {
            if(OrderOpenTime()>lastSellTime)
               lastSellTime=OrderOpenTime();//最后一单时间
            if(oneSellTime>0)
              {
               if(OrderOpenTime()<oneSellTime)
                  oneSellTime=OrderOpenTime();
              }
            else
              {
               oneSellTime=OrderOpenTime();
              }
           }
        }
     }
//再查询两单的盈利金额
for(i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(oneBuyTime==OrderOpenTime())
           {
            oneBuyPrice=OrderOpenPrice();//第一单
            oneBuyProfit=OrderProfit() + OrderCommission() + OrderSwap();
           }
         if(oneSellTime==OrderOpenTime())
           {
            oneSellPrice=OrderOpenPrice();//第一单
            oneSellProfit=OrderProfit() + OrderCommission() + OrderSwap();
           }
         if(lastBuyTime==OrderOpenTime())
           {
            lastBuyPrice=OrderOpenPrice();//最后一单
            lastBuyProfit=OrderProfit() + OrderCommission() + OrderSwap();
           }
         if(lastSellTime==OrderOpenTime())
           {
            lastSellPrice=OrderOpenPrice();//最后一单
            lastSellProfit=OrderProfit() + OrderCommission() + OrderSwap();
           }
        }
     }
//盈利金额>50
if(oneBuyProfit<0 &&lastBuyProfit-oneBuyProfit>50)
{
for(i=0; i<OrdersTotal(); i++)
           {
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
               break;
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
              {
               if(oneSellTime==OrderOpenTime())
                 {
                  OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),30);
                 }

               if(lastSellTime==OrderOpenTime())
                 {
                  OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),30);
                 }

              }
           }
}
举报

点赞 评论 使用道具

67899876
DD
| 发表于 2022-8-5 19:13:49 | 显示全部楼层
好像很好像的樣子
举报

点赞 评论 使用道具

zqyj1234
DD
| 发表于 2022-8-5 19:37:14 | 显示全部楼层
好像的樣子好像的樣子好像的樣子
举报

点赞 评论 使用道具

a601515115
DDD
| 发表于 7 小时前 | 显示全部楼层
好像很好像的樣子
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册