如何在不使用 DLL 的情况下从 MQL4/5 代码中全局禁用 MetaTrader 4/5 中的自动交易?
问问题
2456 次
2 回答
0
是的,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.
*/
于 2016-06-04T17:39:37.400 回答
0
如果您的想法是您在不同的货币对上有多个 EA,并且您想同时禁用它们,您可以进行特定交易,我将其称为信息交易,而不是用于交易。
选择与当前价格相差甚远的价格。在本例中,我们可以使用 9,999.000 作为价格并进行交易。循环交易并寻找价格 = 9999。如果你找到它,使用它来禁用交易。
如果您希望它重新开始,您可以有一个按钮或手动删除 9999 的交易。现在该块不存在。
您可能会去的所有 EA 都可以看到这一点。此外,异地计算机也可以看到它。
这被用作将交易控制权交给交易者团队的一种方式。新主人会发送让所有人都失望的交易。删除该交易,但其他 EA 处于休眠状态,直到有人重新打开它们或发送“唤醒”交易。
您可以将评论、TP 和 SL 值中的值作为价格发送。有很多方法可以使用这种方法。尽管您必须拥有自己的代码并进行更改,但要使其正常工作。如果您购买了一个 EA 并想在没有源代码的情况下打开和关闭它,那么这种方法将不起作用。
于 2021-12-16T06:36:31.520 回答