MQL5 start() 函数详解:条件判断与交易逻辑
start() 函数通过一系列条件判断语句来执行不同的交易操作。以下是代码逻辑的详细解析:
-
if (Digits == 5 & Digits == 3) Gi_196 = 10;此条件语句检查变量 Digits 是否同时等于 5 和 3。由于一个变量无法同时拥有两个不同的值,因此该条件永远为假,不会影响后续代码的执行。
-
G_stoplevel_212 = MarketInfo(Symbol(), MODE_STOPLEVEL);该语句使用 MarketInfo() 函数获取当前交易品种的止损水平,并将值赋给变量 G_stoplevel_212。
-
if (CheckOrders(OP_BUY) + CheckOrders(OP_SELL) > 0) Gi_224 = TRUE;该语句使用 CheckOrders() 函数检查当前是否存在买入或卖出订单,并判断其总数是否大于 0。如果是,则将变量 Gi_224 设置为 TRUE。
-
if (是否连续开单 == TRUE && CountHistorySLOrders() > 0) Gi_224 = TRUE;该语句检查是否启用连续开单功能 ('是否连续开单' 为 TRUE),以及历史止损订单数量是否大于 0。如果是,则将变量 Gi_224 设置为 TRUE。
-
if (是否连续开单 == FALSE && CountHistorySLOrders() == 0 && Gi_224 == TRUE) return (0);该语句检查是否禁用连续开单功能 ('是否连续开单' 为 FALSE),以及历史止损订单数量是否为 0,同时 Gi_224 变量是否为 TRUE。如果是,则返回 0,可能中止函数的进一步执行。
-
if (TimeLocal() >= OpenTime && Volume[0] >= OpenVolume && Gi_224 == FALSE && CheckOrders(OP_BUY) + CheckOrders(OP_SELL) == 0) {该语句检查以下条件是否满足:
- 当前本地时间是否大于或等于变量 OpenTime。
- 当前交易量是否大于或等于变量 OpenVolume。
- 变量 Gi_224 是否为 FALSE。
- 当前是否存在买入或卖出订单。
如果所有条件都满足,则执行以下操作:
-
if (首单开仓方向 == TRUE) OpenOrder(0);如果 '首单开仓方向' 为 TRUE,则使用 OpenOrder() 函数以参数 0 开仓。
-
if (首单开仓方向 == FALSE) OpenOrder(1);如果 '首单开仓方向' 为 FALSE,则使用 OpenOrder() 函数以参数 1 开仓。
注意:由于缺乏具体上下文,部分变量名称和函数调用含义尚不明确。
原文地址: https://www.cveoy.top/t/topic/o35k 著作权归作者所有。请勿转载和采集!