定时平仓的代码实现
想定时自动平仓,写了个用服务器时间判断的代码,到点就全平。
// 定时平仓:持仓X小时后自动平仓
datetime openTime;
double holdingHours = 2.0; // 持仓2小时后平仓
void OnTick() {
for(int i = OrdersTotal() - 1; i >= 0; i--) {
ulong ticket = OrderGetTicket(i);
if(OrderSelect(ticket)) {
openTime = OrderGetInteger(ORDER_OPEN_TIME);
double hoursHeld = (TimeCurrent() - openTime) / 3600.0;
// 持仓超过指定时间,自动平仓
if(hoursHeld >= holdingHours) {
double volume = OrderGetDouble(ORDER_VOLUME);
int type = OrderGetInteger(ORDER_TYPE);
if(type == OP_BUY) {
OrderClose(ticket, volume, Bid, 3, clrYellow);
} else {
OrderClose(ticket, volume, Ask, 3, clrYellow);
}
Print("订单 #", ticket, " 已持仓", DoubleToString(hoursHeld, 1), " 小时,自动平仓");
}
}
}
}全部回复(1)
发表回复
请先登录后再回复。
