1

如何在不使用 DLL 的情况下从 MQL4/5 代码中全局禁用 MetaTrader 4/5 中的自动交易?

4

2 回答 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 回答