首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQL4如何检查利润中是否有最后一个空头头寸

MQL4如何检查利润中是否有最后一个空头头寸
EN

Stack Overflow用户
提问于 2020-05-25 03:44:51
回答 1查看 871关注 0票数 0

我想创建一个“专家顾问”,它可以将金字塔和滚雪球结合在一起,

(在第一个已经达到收支平衡的位置之后,另一个获胜的位置正在打开)

我坚持使用检查之前的多头\空头头寸是否已经盈利的功能

看起来我当前的函数总是返回1,

代码语言:javascript
复制
      extern double ProfitForOpenAnother = 30;

      double IsLastLongProfitable(string sy="", int op=OP_BUY) {
      int LastLongProfitable = 0;
      datetime o;
      double   l=-1;
      int      i, k=OrdersTotal();

      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
          if (OrderSymbol()==sy || sy=="") {
            if (OrderType()==OP_BUY) {
              if (op<0 || OrderType()==op) {
                if (OrderMagicNumber()==Magic) {
                  if (o<OrderOpenTime()) {
                    o=OrderOpenTime();
                    l=OrderProfit();
                    if(l>ProfitForOpenAnother)
                    {
                      LastLongProfitable=1;
                    }
                  }
                }
              }
            }
          }
        }
      }
      return(LastLongProfitable);
    } ``` 
EN

回答 1

Stack Overflow用户

发布于 2020-06-01 02:20:42

代码语言:javascript
复制
double profit_buy=0,profit_sell=0;
for(int i=OrdersTotal()-1; i>=0; i--)
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
     {
      datetime time_order=OrderOpenTime();
      double profit_order=OrderProfit()-OrderCommission()+OrderSwap();
      if(OrderType()==OP_BUY && time_buy<time_order)
        {
         time_buy=time_order;
         profit_buy=profit_order;
        }
      if(OrderType()==OP_SELL && time_sell<time_order)
        {
         time_sell=time_order;
         profit_sell=profit_order;
        }
     }
  }```
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61991531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档