gpt4 book ai didi

struct - 如何在MQL5的内置结构中添加新项目?

转载 作者:行者123 更新时间:2023-12-02 10:46:22 26 4
gpt4 key购买 nike

我有以下示例MQL5代码(以演示问题):

// PositionSelectByTicket is missing in older MQL5 builds.
#ifndef PositionSelectByTicket
#define PositionSelectByTicket(ticket) OrderSelect(ticket)
#endif

void CheckOrder(const MqlTradeRequest &Request) {

if (Request.action == TRADE_ACTION_SLTP) {
ulong pos = PositionSelectByTicket(Request.position); // error 130: 'position' - struct member undefined
}

}

void OnStart() { }

并且在最新版本的Metaeditor 5(内部版本1495)上可以正常编译,但是在内部版本1162(使用较旧的 mql编译器)中,我遇到以下错误:
$ wine mql /s /mql5 MQL_Test.mq5
MQL4/MQL5 Compiler build 1162 (02 Jul 2015)
MQL_Test.mq5 : information: Checking 'MQL_Test.mq5'
MQL_Test.mq5(9,17) : error 130: 'position' - struct member undefined
MQL_Test.mq5(9,17) : warning 60: possible use of uninitialized variable ''
: information: Result 1 error(s), 1 warning(s)
Time: 11 ms

我想提高代码的向后兼容性,并且已经为上述 PositionSelectByTicket添加了定义,以避免未定义的函数。

虽然我该如何解决以上错误才能在两个编译器上都能使用?

documentation page of MqlTradeRequest struct中,存在 position结构项,因此很可能已将其添加到最新版本中。

那么,有什么方法可以将缺少的变量项添加到现有的内置结构中,以便较早的编译器可以通过语法检查吗?

最佳答案

您是否知道 PositionBySelect() 是自Build 1325(新的对冲模式)以来可用的新功能?

new MetaTrader 5 Terminal release notes

12: Added PositionSelectByTicket function — select an open position for further work by a specified ticket.

bool  PositionSelectByTicket(ulong ticket );    // position ticket

关于struct - 如何在MQL5的内置结构中添加新项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41618856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com