【发布时间】:2016-06-04 17:21:06
【问题描述】:
如何在不使用 DLL 的情况下从 MQL4/5 代码中在 MetaTrader 4/5 中全局禁用自动交易?
【问题讨论】:
标签: algorithmic-trading mql4 metatrader4 mql5 metatrader5
如何在不使用 DLL 的情况下从 MQL4/5 代码中在 MetaTrader 4/5 中全局禁用自动交易?
【问题讨论】:
标签: algorithmic-trading mql4 metatrader4 mql5 metatrader5
MQL4/5 Expert Adviser 可能会在当地禁止自己以这种方式进行交易:if ( IsTradeAllowed() )
{ Comment( __FILE__, " [EA] Trading is allowed, will disable self." );
...
}
else
{ Comment( __FILE__, " [EA] Trading is not allowed, will disable self." );
...
}
// ---------------------------------------// GRACEFULLY RELEASE ALL RESOURCES BEFORE FIN'd
// ********
// FINALLY: EXPERT-ADVISOR SIG_TERM -> self ( MT4 )
ExpertRemove(); /* MT4 The Expert Advisor
is not stopped immediately
as you call ExpertRemove();
just a flag to stop the EA operation is set.
That is:
- any next event won't be processed,
- OnDeinit() will be called
and
- the Expert Advisor will be unloaded and removed from the chart.
*/
【讨论】:
如果您的想法是您在不同的货币对上有多个 EA,并且您想同时禁用它们,您可以进行特定交易,我将其称为信息交易,而不是用于交易。
选择与当前价格相差甚远的价格。 在本例中,我们可以使用 9,999.000 作为价格并进行交易。 循环交易并寻找价格 = 9999。 如果你发现它使用它来禁用交易。
如果您希望它重新开始,您可以使用按钮或手动删除该交易,即 9999。 现在该块不存在了。
您可能使用的所有 EA 都可以看到这一点。 此外,异地计算机也可以看到它。
这被用作将交易控制权交给交易者团队的一种方式。 新主人会发送让所有人都失望的交易。 删除该交易,但其他 EA 处于休眠状态,直到有人重新打开它们或发送“唤醒”交易。
您可以将评论、TP 和 SL 值中的值作为价格发送。 有很多方法可以使用这种方法。 尽管您必须拥有自己的代码并进行更改,但要使其正常工作。如果你购买了一个 EA 并且想在没有源代码的情况下打开和关闭它,那么这种方法将不起作用。
【讨论】: