按目标平仓或减少损失 - MetaTrader 4 专家
需要 3 个输入,如下:
外部的 双倍的 inTargetProfitMoney =10; //目标利润($) 外部的 双倍的 inCutLossMoney =0.0; //止损($) 外部的 整数 inMagicNumber =0; //幻数
当执行此 EA 时,它将首先调用 OnInit () 函数。我们将在其中验证输入和变量初始化
整数 初始化时() {//--- 如果(inTargetProfitMoney <=0) { 警报(“输入无效”); 返回(INIT_PARAMETERS_INCORRECT); } 减少损失资金 =数学抗体(以削减损失金额计)* -1;//--- 返回(初始化成功); }
并且每次价格变动(tick)都会调用OnTick()函数
空白 勾选() {//--- 双倍的 t浮动 =0.0; 整数t订单=订单总数(); 为了(整数i=t订单-1;我>=0;我 - ) { 如果(订单选择(i,按POS选择,MODE_TRADES)) { 如果(OrderMagicNumber() == inMagicNumber) { tFloating += OrderProfit()+OrderCommission() + OrderSwap(); } } } 如果(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney <0)) { fCloseAllOrders(); } }
在OnTick函数中,会继续计算总盈利或总亏损。然后将关闭所有可以完成目标或最大损失限额的订单
空白f关闭所有订单() { 双倍的 收盘价 =0.0; 整数t订单 =订单总数(); 为了(整数i=t订单-1;我>=0;我 - ) { 如果(订单选择(i,按POS选择,MODE_TRADES)) { 如果(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL)) { 价格Close = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK); 如果(!OrderClose(OrderTicket()、OrderLots()、priceClose、滑点、黄金)) { 打印(“警告:关闭失败”); } } } } }
想了解更多MQL4代码教育的详细信息和分享,请加入我们的电报群t.me/codeMQL
附件下载
📎 closeorders.mq4 (3.47 KB)
Source: MQL5 #34194
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
