[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 125

 
hoz:



因此,我有一张针对这种情况的支票。

如果停止 - 新停止(以b.u为单位)不等于零...然后我们修改...如果没有,我们就不修改。这就是为什么我不清楚这种情况如何发生。毕竟,我明白我需要检查过去和新的停止 的平等,我已经做了。

下面我们来看看我在无误地拖网找白的时候,是如何从上面和下面检查的。

          if(OrderStopLoss() > OrderOpenPrice())
          {
            if(NormalizeDouble(Bid-OrderStopLoss()-plus*tral,Digits) > prev)
            if(Bid > NormalizeDouble(OrderStopLoss()+plus*tral+prev,Digits))
            {
              SL = NormalizeDouble(OrderStopLoss()+plus*part*tral,Digits);
              ModifyOrder(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,Blue);return(0);
          } }

我可以给出ModifyOrder()函数,适合于所有订单和位置的修改。

 
Vinin:

编辑这段代码,使它看起来不像是被黑了。
我不明白。
如何编辑? 你的意思是什么?
 
borilunad:
我建议不要按条数修改,而是按这么多的点来修改。如果有必要,这就是资源的作用。而当对已经存在的修改进行价格重复时,就会弹出 "没有错误 "的错误。因此,你必须按照我一开始给你的建议,一步一步地走下去。


B.U.当然是按点画的。我的意思是在每一个刻度或在酒吧开盘时调用B.U.函数,例如...但那就太傻了。每条的价格可以跳得很高。那么,这个电话将与tickwise的电话类似,对吗?我只是在想,也许应该添加一些条件,这样它就不会在每次打勾时被调用。我想我们应该比较一下目前的STOP和即将设定的STOP,算是...

一般来说。这是一件多么奇怪的事情。

我添加了一个条件来启动,结果就这样成功了。

if (priceBU != OrderStopLoss())
   {
       MovingStopLossToBU();
   }

现在没有错误了。

我不明白的是,MovingStopLossToBU() 函数本身只有在止损点不等于止损时才会改变。

if (ND(OrderStopLoss() - priceBU * pt) != 0.0)
    if (!OrderModify(OrderTicket(), OrderOpenPrice(), priceBU, OrderTakeProfit(), 0, CLR_NONE ))
    {
       Print ("Ошибка модификации ордера ", OrderType(), " - ", GetLastError());
    }
那么你是如何理解的呢?
 
晚上好,请您告诉我如何将平均MA(10)以上的蜡烛涂成绿色,以下的涂成红色?
 
hoz:


B.U.当然是按点画的。我的意思是在每一个刻度或在酒吧开盘时调用B.U.函数,例如...但那就太傻了。每条的价格可以跳得很高。那么,这个电话将与tickwise的电话类似,对吗?我只是在想,也许应该添加一些条件,这样它就不会在每次打勾时被调用。我想我们应该比较一下目前的STOP和即将设定的STOP,算是...

一般来说。这是一件多么奇怪的事情。

我添加了一个条件来启动,结果就这样成功了。

现在没有错误了。

我不明白的是,MovingStopLossToBU() 函数本身只有在止损点不等于止损时才会改变。

那么你是如何理解的呢?

在你的例子中,当止损为零时,这意味着 刚刚开了一个 没有止损的头寸。 而我给你的情况是,你已经处于盈亏平衡状态。

但请看上面,我给你的拖网是没有盈亏平衡的!而我可以给你的功能。

 
agat8430:
我不明白。
如何编辑它? 如何理解它?
那么如果你不明白,你就来错地方了。研究你不明白的地方,你会问。如果你不明白什么,你就不需要它。
 
borilunad:
见上文,我给了你我的无误的拖网!而我可以给你的功能。


我写的时候没有看到你的回复。我现在就去看看。

但总的来说,我很乐意看到你的修改功能,也许我自己会学到一些新东西。

 
borilunad:

在你的例子中,当止损为零时,意味着你刚刚开了一个没有止损的头寸。而我给你的情况是,它已经处于收支平衡状态。

见上文,我给了你我的拖网,没有收支平衡!而我可以给你的功能。


不,不能不停顿。我只贴了其中的一段。这是我的盈亏平衡函数。

//+-------------------------------------------------------------------------------------+
//| Перевод в б.у. рыночных ордеров                                                     |
//+-------------------------------------------------------------------------------------+
void MovingStopLossToBU()
{
    double priceBU;
    int type = OrderType();
    for (int i=OrdersTotal() - 1; i>=0; i--)
    {
        if (!OrderSelect(i,SELECT_BY_POS)) continue;
        if (i_magic != -1) if (OrderMagicNumber() != i_magic) continue;
        if (OrderSymbol() != Symbol()) continue;
        if (OrderType() > 1) continue;
        
        RefreshRates();
        
        if (type == 0)
        {
           double price = Ask;
           int li_cmd = 1;
        }
        else
        {
           price = Bid;
           li_cmd = -1;
        }

           if (li_cmd * (price - OrderOpenPrice()) >= i_triggerForBU * pt)
           {
             priceBU = ND(OrderOpenPrice() + li_cmd * (i_preservedProfit * pt));
             if (ND(OrderStopLoss() - priceBU * pt) != 0.0)
             {

                 if (!OrderModify(OrderTicket(), OrderOpenPrice(), priceBU, OrderTakeProfit(), 0, CLR_NONE ))
                 {
                     Print ("Ошибка модификации ордера ", OrderType(), " - ", GetLastError());
                 }
               
                     Comment ("Ордер успешно переведён в безубыток");
                     Print ("Ордер успешно переведён в безубыток");
             }
           }
    }
}

在行中可以清楚地看到,如果计算出的止损点与已经存在的止损点相等,就不会有任何修改!对吗?那么,支票最初是?但错误1不断出现,直到我在修改函数之前的开始中输入另一个条件。

if (priceBU != OrderStopLoss())
   {
       MovingStopLossToBU();
   }
这就是为什么....这就是我想弄清楚的问题。我想我已经彻底描述了一切。
 
hoz:
那么如果你不明白,你就来错地方了。研究你不明白的地方,你会问。如果你不明白什么,你就不需要它。


如果你什么都不懂,你就不需要它。 好吧,如果你什么都懂,就告诉我如何编辑代码,让它看起来不被黑掉。这是我第一次上论坛,就得到了这么好的答复。

"天才的人有天才的答案"。

 
agat8430:


好吧,那就告诉我如何编辑代码,如果你们都明白的话,就不会像黑客一样。 我来到了初学者的分支。我第一次来到论坛上,就得到了一个不错的答案。

"天才的人有天才的答案"。

先给新来的人。

一个论坛导航器和对常见问题的回答。强烈推荐阅读!( 1 2 3 4 5 6 ) 51 18.02.2011 常见问题