任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 749

 
Vinin:

这个配方很容易根据要求进行调整。你只需要考虑到最小的手数

这看起来有点不同

lot=Min_Lot+lotstep*MathRound((AccountBalance()-X)*0.001/lotstep);

其中X--开启最小地段的余额。

但我们仍然需要检查最低的地段。

为什么我们需要所有这些复杂的东西,必须单独计算的X?此外,我们需要额外的检查...

直接诚实地检查公式中所有数值的有效性和可接受性,然后直接诚实地计算,这不是更容易吗?

顺便说一下,MathRound() 四舍五入到最接近的整数,也就是说,它很容易错误地高估,这可能会造成额外的后果。

 

可怜的小家伙。

 
simpleton:
不是你。
 
你好。有什么建议吗? 我想在下完挂单 后,从第一条的低点和高点分别计算买入和卖出的StopLoss。但我没有得到任何结果,只有130个错误,仅此而已。提前感谢。
if(ticket>0)
           {
            SL = NormalizeDouble(Low[1] - StopLoss*Point, Digits);
            {
               if(OrderModify(ticket, OrderOpenPrice(), SL, 0, 0))
...
//+-------------------------------------------------------------------------+
if(ticket>0)
           {
SL = NormalizeDouble(High[1] + StopLoss*Point, Digits);
            {
               if(OrderModify(ticket, OrderOpenPrice(), SL, 0, 0))
...                     																							
 
你在使错误的事情正常化。
 
Petiyashaket:
如果你能像我之前的代码那样,用一行代码和注释来解释,我会非常感激。

"我有疑问",我不禁觉得,这都是市场环境的缓存机制问题。

为了使终端不必在每个场合都 "跑到服务器",如OrdersTotal()、OrderSymbol()等,市场环境被复制到某个缓存中,而且每个脚本似乎都不同,但脚本只处理这个缓存。在主脚本函数的整个运行过程中,即使在成功执行了像OrderSend()这样改变服务器上市场环境的函数后,缓存也不会自动更新,这就是为什么在脚本中出现的订单 "不可见",也就是说,它给人一种不存在的假象。它根本无法在for循环中被检测到,这就是为什么OrderModify()没有被调用。这是一个在模糊的怀疑和不可理解的感觉基础上产生的假设。

所述的缓存可以使用RefreshRates() 调用强制更新,例如,在调用OrderSend()后立即更新。检查假说是否正确。

如果,除其他外,RefreshRates()返回真,那么这就是对假设的额外间接确认。

 
Petiyashaket:
如果你能像我以前的代码那样,用一行代码和注释向我解释,我将非常感激。
如果你不明白,请在这里 阅读。还有这里。然后使变量在每次打勾时不失去意义,并以适当的方式组织循环。
 
simpleton:

"我有疑问",我不禁觉得,这都是市场环境的缓存机制问题。

为了使终端不必在每个场合都 "跑到服务器",如OrdersTotal()、OrderSymbol()等,市场环境被复制到某个缓存中,而且每个脚本似乎都不同,但脚本只处理这个缓存。在主脚本功能的整个运行过程中,即使在成功执行了像OrderSend()这样改变服务器上市场环境的功能后,缓存也不会自动更新,因此,出现在脚本中的订单是 "不可见的",也就是说,它给人一种不存在的假象。它根本无法在for循环中被检测到,这就是为什么OrderModify()没有被调用。这是基于模糊的疑虑和没有说服力的感觉而产生的假说。

所述的缓存可以使用RefreshRates() 调用强制更新,例如,在OrderSend()调用之后立即更新。检查假说是否正确。

如果,除其他外,RefreshRates()返回真,这就是对假设的额外间接确认。

你吸毒吗?
 
noob1:
你好。如果我知道的话,请告诉我,我想在挂单后,从第一根柱子的低点和高点分别计算买入和卖出的StopLoss。但我什么也没得到,只有130个错误,没有其他。预先感谢你。

检查OrderOpenPrice()是否离SL太近,以及止损是否 "在价格的右边"。你可以在这里 读到它。

止损和止盈价格不能离市场太近。以点为单位的最小止损距离可以通过MarketInfo() 函数和MODE_STOPLEVEL参数获得。如果出现错误或不正常的停止,将产生错误130(ERR_INVALID_STOPS)。

在这种情况下,也就是说,对于一个挂单,"市场 "是其 "挂单价格"。

 
tara:
你正在将错误的事情正常化。
来自文件。