[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 751

 
ToLik_SRGV:

这个错误是显而易见的;它在每一个tick上开仓,因为历史上的亏损订单没有去任何地方,所以它在每一个tick上找到它,并将控制变量的值填充为相同的值,然后开仓交易的块就会触发。


如何使它不再寻找,或者说不再寻找已经解决的东西?

 
FoxUA:

我怎样才能使它不再寻找它,或者说不寻找已经工作过的东西?

拿出这块。

for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
     {
 OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol()) 
{ if (OrderType() == OP_BUY )  {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1; 
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL)  {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; 
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
            }
            
            
         }
      }

并用这个来代替它。

   for(int cnt=OrdersHistoryTotal();cnt>0;cnt--){
      static int num_ticket;
      if(!OrderSelect(cnt-1, SELECT_BY_POS, MODE_HISTORY))break;
      if(OrderMagicNumber()== mag && OrderSymbol()==Symbol()){      
      if(num_ticket != OrderTicket())num_ticket = OrderTicket(); else break;
         if(OrderType() == OP_BUY){
            b=1;
            if(OrderClosePrice()==OrderTakeProfit())bt=1;
            if(OrderClosePrice()==OrderStopLoss())bs=1;
            bl=OrderLots()*100;
            num_ticket = OrderTicket();
            break;
         }
         if(OrderType() == OP_SELL){
            s=1;
            if(OrderClosePrice()==OrderTakeProfit())st=1; 
            if(OrderClosePrice()==OrderStopLoss())ss=1;
            sl=OrderLots()*100;
            num_ticket = OrderTicket();
            break;
         }
      }
   }

它的不同之处在于,除其他外,它分别记住了最后一笔亏损交易的票号,并对其进行检查,不允许用同一信号开仓。

 
ToLik_SRGV:

扔掉这个装置。


非常感谢你的测试,它似乎是有效的。

 
Abzasc:

我想,类似这样的事情。

SZY 代码插入按钮 "SRC "使用起来很别扭,不容易阅读。


非常感谢!我为UseHourTrade2写了int而不是boole ))
 

下午好,朋友们。

我想就这个问题与你协商。

我目前正在研究一个指标,该指标将第一个货币对的读数(ZigZag)转移到第二个货币对上形成的窗口。

但是,我遇到了一个问题。

例如,如果有一个很大的报价 "差距":一个货币对的报价是1.4237,另一个是0.8345,那么这些指标就会 "分散 "在屏幕上,这在视觉上不是很方便 ...

在考虑到第一种货币对的报价的情况下,你如何从第二种货币对进行指标 "坐标 "转换(如何使价格 "相对")?

事先非常感谢您的意见、建议。

 
Morzh09:

下午好,朋友们。

我想就这个问题与你协商。

我目前正在研究一个指标,该指标将第一个货币对的读数(ZigZag)转移到第二个货币对上形成的窗口。

但是,我遇到了一个问题。

例如,如果有一个很大的报价 "差距":一个货币对的报价是1.4237,另一个是0.8345,那么这些指标就会 "分散 "在屏幕上,这在视觉上不是很方便 ...

在考虑到第一种货币对的报价的情况下,你如何从第二种货币对进行指标 "坐标 "转换(如何使价格 "相对")?

事先非常感谢您的意见、建议。

看看这个链接。缩放本身是以一种原始的方式在那里完成的。

https://www.mql5.com/ru/code/7933

 

你好!

你能告诉我如何简化这个问题吗?

如果(余额>600)

{

Lot_mod = 0.1。

}

如果(余额>700)

{

Lot_mod = 0.11。

}

如果(余额>800)

{

Lot_mod = 0.12。

}

如果(余额>900)

{

Lot_mod = 0.13。

}

以此类推....因为在这种形式下,它太铺张了。

谢谢你!

 
Lim1:

你好!

你能告诉我如何简化这个问题吗?

以此类推....在这种形式下,它太铺张了。

谢谢你!





y=a*x+b形式的方程将有助于
 
Lim1:

你好!

你能告诉我如何简化这个问题吗?





确定地段的计算公式,仅此而已,否则你将不得不担心
 

林1,像这样试一下。

int BalanceExcessIn100s = MathFloor( ( Balance - 600 ) / 100.01 );
Lot_mod = BalanceExcessIn100s * 0.01 + 0.1;
原因: