Nevalyashka_BreakdownLevel - MetaTrader 5 专家


想法的作者 — 弗拉基米尔·赫里斯托夫, MQL5 代码的作者 — 巴拉巴什卡孔。
交易策略:在选定的时间间隔内突破高点/低点。为了恢复亏损头寸,EA 使用“Nevalyashka”策略和鞅技术来增加手数。
EA 计算指定时间间隔内的最高价和最低价”时间开始”到 ”Time end”:

如果价格超过该期间的最高点,则建立买入仓位。如果价格低于最低价,则建立卖出仓位。止损设置在该周期的相反边界,即买入头寸设置为低价,卖出头寸设置为高价。止盈是根据控制周期的高度设置的。
如果 ”使用时间关闭“设置为true,则”时间关闭“参数(平仓所有仓位的时间)将被激活。
参数仅考虑小时和分钟 ”时间开始”, ”时间结束” 和 ”时间关闭”。
OnTradeTransaction 中监控止损平仓。
当找到“DEAL_ENTRY_OUT”(en:“Entry out”)时,请检查该交易的评论字段。如果评论包含“sl”,这意味着交易已通过 StopLoss 关闭:
如果(deal_symbol==m_symbol.Name() && deal_magic==m_magic) 如果(交易条目==DEAL_ENTRY_OUT) { Mql日期时间字符串1; 构建时间(时间当前(),str1); //--- 这有可能是止盈平仓 如果(字符串查找(交易评论,“tp”,0)!=-1||交易利润>=0.0) { TradeDey=str1.day; 返回; } //--- 这有可能是止损平仓 如果(字符串查找(交易评论,“斯尔”,0)!=-1) { 如果(TradeDey!=str1.day) { 打印(“已检测到止损平仓!”); 双倍的损失=数学抗体(deal_profit/m_symbol.TickValue()/deal_volume); 如果(交易类型==交易类型_卖出)// 买入仓位已平仓 { 双倍的SL=m_符号。出价()+损失*m_符号。观点(); 双倍的TP=m_符号。出价()-损失*m_符号。观点(); 双倍的Lot=LotCheck(deal_volume*InpK_martin); 如果(很多==0.0) 返回; 开仓(止损,止盈,手数,“涅瓦利亚什卡”); } 如果(交易类型==DEAL_TYPE_BUY)// 卖出仓位已平仓 { 双倍的SL=m_符号。问()-损失*m_符号。观点(); 双倍的TP=m_符号。问()+损失*m_符号。观点(); 双倍的Lot=LotCheck(deal_volume*InpK_martin); 如果(很多==0.0) 返回; OpenBuy(止仓,止盈,手数,“涅瓦利亚什卡”); } 返回; } } }
开仓与平仓相反(如果交易类型为“DEAL_TYPE_SELL”,则买入仓位被平仓;“DEAL_TYPE_BUY”表示卖出仓位被平仓),增加手数乘以K·马丁。如果平仓时盈利为正,则 EA 交易会等待下一个周期的开始时间”时间结束“,并重复上述过程。
”无损失”参数表示盈亏平衡;当持仓利润达到一半时,止损移至持仓价格。
测试 EURUSD、M30 的示例:

附件下载
📎 nevalyashka_breakdownlevel.mq5 (47.27 KB)
Source: MQL5 #18645
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
