用mt4写一段代码:变量所有多单,若某个订单开仓时间超过180秒,则按现价强行平仓
时间: 2023-05-31 16:03:39 浏览: 301
MT4一键平仓所有盈利单脚本.ex4
以下是使用MQL4编写的代码,用于平掉超过180秒的多单订单:
```c++
void OnTick()
{
for (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
{
int orderOpenTime = OrderOpenTime();
int currentTime = TimeCurrent();
int timeDiff = currentTime - orderOpenTime;
if (timeDiff > 180)
{
double currentPrice = MarketInfo(Symbol(), MODE_BID);
double orderLots = OrderLots();
bool closeOrder = OrderClose(OrderTicket(), orderLots, currentPrice, 0, clrRed);
if (closeOrder)
{
Print("Buy order closed successfully");
}
else
{
Print("Failed to close buy order");
}
}
}
}
}
```
此代码使用OnTick()函数来扫描所有的多单订单。对于每个多单订单,它会获取订单的开仓时间,并计算与当前时间的时间差。如果时间差超过180秒,则会获取当前价格,并使用OrderClose()函数强制平仓订单。如果平仓成功,则会在控制台上打印成功消息,否则打印失败消息。
阅读全文