[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 130

 

你好。你能帮我解决这个问题吗?代码应该在全局TakeProfit 层面显示一行。我找不到这个错误。

预先感谢你。

void Drawline_Per_B (int Drawline_Per, double Balans, double Free, double Global_TakeProfit)  {
    Balans=AccountBalance();//Баланс счёта
    Free=AccountEquity();//Текущее количество денег в статье "Средства"
    double q;
    double SchBuyLs=SchBuyLs_b(); сумма лот для баев
    double SchSellLs=SchSellLs_b(); сумма лот для сейлов  
    double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     );
    double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  );
    double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE );
    double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота в валюте депозита
    q =  NormalizeDouble(Bid + (Balans-Free+Balans/100*Global_TakeProfit)/ad.NominalPoint*(SchBuyLs-SchSellLs)*Point,Digits);
    Drawline_Per("%_LINE");
    ObjectSet( "%_LINE", OBJPROP_PRICE1, q);
  }
 
我不知道你在那里算什么,但点数是一个整数。让它成为一个int类型,你就不需要规范化了。
q =  (Balans-Free+Balans/100*Global_TakeProfit)/PP*(SchBuyLs-SchSellLs);  //число пунктов до наступления условия  Global_TakeProfit
 

谢谢你的建议。

找到了故障,一切正常。

 

请帮助解决分形的问题

maxF =NormalizeDouble(iFractals(NULL, 0, MODE_UPPER,1),5);
minF = NormalizeDouble (iFractals(NULL, 0, MODE_LOWER,1),5);

为什么我没有看到
maxF > Bid 或 minF > Bid 在执行?

如果<,它将被执行。

没有NormalizeDouble,也是如此。关于分形,有什么是我不了解的吗?

 
lia:

请帮助解决分形的问题。

maxF = NormalizeDouble (iFractals(NULL, 0, MODE_UPPER,1),5)。
minF = NormalizeDouble (iFractals(NULL, 0, MODE_LOWER,1),5)。

为什么我不能看到执行的
maxF > Bid还是minF > Bid?

如果<,将被执行。

没有NormalizeDouble,也是一样的。我不明白分形的东西?


请看 一页和下一页--同样地显示你的条件。
 

您能为MT4中的EA提供一个函数,返回最后一笔平仓订单的利润,或者最后一笔订单是盈利还是亏损?

PS 我在Kim那里没有发现这样的功能。

 
Sancho77:

你能建议一个函数来返回最后一个关闭的订单的利润,或者最后一个订单是盈利还是亏损关闭的?

PS Kim没有找到这样的功能。

伊戈尔-金有这样的功能。但他的功能对于多功能性来说有点过头了。我可以在这里为你快速制作这样一个功能。
问题:利润在哪里?用积分还是用存款货币
 
artmedia70:
伊戈尔-金有这样的特点。然而,他的功能对于通用性来说有点过分。我可以在这里为你快速制作这样一个功能。
问题:利润在哪里?用积分还是用存款货币?
如果你能告诉我,我将非常感激!利润是以点数还是以货币计算并不重要,重要的事实是:一笔交易是在盈利或亏损中完成的。在我看来,无论是货币还是点数,都没有什么区别。
 
Sancho77:
如果你能写出来,我将不胜感激!利润是以点数还是以货币计算并不重要,重要的是交易是以盈利还是亏损结束的事实。在我看来,在货币和点数上没有区别。
//+----------------------------------------------------------------------------+
bool LossLastPose(string sy, int op, int mn) {
   datetime t;
   int      i, j;
   for (i=0; i<OrdersHistoryTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderType()!=op)          continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderCloseTime()>t) {
            t=OrderCloseTime();
            j=i;
            }
         }
      }
   if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) 
      if (OrderProfit()<0) return(true);
   return(false);
}
//+----------------------------------------------------------------------------+

我们这样称呼它。

检查当前符号的最后关闭的买入位置。如果处于亏损状态,该函数将返回真,如果处于盈利状态,则返回假。

if (LossLastPose(Symbol(), OP_BUY, Magic)) {код, если последняя позиция закрылась с убытком}
else {Код, если последняя позиция закрылась с прибылью}

Magic变量是EA的法宝,它被写入EA的全局变量 中。

 
artmedia70:

我们这样称呼它。

检查当前符号的最后关闭的买入位置。如果处于亏损状态,该函数将返回真,如果处于盈利状态,则返回假。

魔法变量是EA的魔法,写在EA的全局变量中。



非常感谢您!
原因: