© 本贴为 Aminbhr 原创/首发,严禁抄袭!
function name
- //+------------------------------------------------------------------+
- <font _mstmutation="1" _msttexthash="566925125" _msthash="403">//| Function to close open trades based on duration |
- //| input: maxOpenHours - maximum duration for open trades in hours |
- //+------------------------------------------------------------------+
- void CloseTradesIfOpenLongerThan(int maxOpenHours) {
- double maxOpenTime = maxOpenHours * 3600; // Convert hours to seconds
- int totalOrders = OrdersTotal(); // Get the total number of open trades
-
- for (int i = totalOrders - 1; i >= 0; i--) {
- if (OrderSelect(i, SELECT_BY_POS)) { // Select the trade by position
- // Check if the trade is open
- if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
- // Calculate the duration the trade has been open
- datetime openTime = OrderOpenTime(); // Get the open time of the trade
- double elapsedTime = TimeCurrent() - openTime; // Calculate elapsed time since the trade opened
-
- // If the elapsed time exceeds the maximum allowed time, close the trade
- if (elapsedTime > maxOpenTime) {
- if (OrderType() == OP_BUY) {
- OrderClose(OrderTicket(), OrderLots(), Bid, 3, clrRed); // Close buy trade
- } else if (OrderType() == OP_SELL) {
- OrderClose(OrderTicket(), OrderLots(), Ask, 3, clrRed); // Close sell trade</font>
- }
- }
- }
- }
- }
- }
-
- //+------------------------------------------------------------------+
复制代码
|