【问题标题】:How to disable autotrading globally from MQL4/5 program (EA) without DLLs?如何在没有 DLL 的情况下从 MQL4/5 程序 (EA) 全局禁用自动交易?
【发布时间】:2016-06-04 17:21:06
【问题描述】:

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

【问题讨论】:

    标签: algorithmic-trading mql4 metatrader4 mql5 metatrader5


    【解决方案1】:

    是的,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。
    • 当然,正如标题中所指出的那样。没有向嵌入式 MQL4/5 代码执行引擎公开的 [MetaTrader 终端] 界面,这将允许对 [MetaTrader 终端] 设置进行代码驱动的更改。这种从属关系有很多原因。这样的 Kamikadze 代码最终会比有益的更危险。
    【解决方案2】:

    如果您的想法是您在不同的货币对上有多个 EA,并且您想同时禁用它们,您可以进行特定交易,我将其称为信息交易,而不是用于交易。

    选择与当前价格相差甚远的价格。 在本例中,我们可以使用 9,999.000 作为价格并进行交易。 循环交易并寻找价格 = 9999。 如果你发现它使用它来禁用交易。

    如果您希望它重新开始,您可以使用按钮或手动删除该交易,即 9999。 现在该块不存在了。

    您可能使用的所有 EA 都可以看到这一点。 此外,异地计算机也可以看到它。

    这被用作将交易控制权交给交易者团队的一种方式。 新主人会发送让所有人都失望的交易。 删除该交易,但其他 EA 处于休眠状态,直到有人重新打开它们或发送“唤醒”交易。

    您可以将评论、TP 和 SL 值中的值作为价格发送。 有很多方法可以使用这种方法。 尽管您必须拥有自己的代码并进行更改,但要使其正常工作。如果你购买了一个 EA 并且想在没有源代码的情况下打开和关闭它,那么这种方法将不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-28
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      相关资源
      最近更新 更多