Coin Flip - MetaTrader 5 专家


想法来自:弗拉基米尔·格里巴乔夫。
MQL5 代码由:弗拉基米尔·卡尔普托夫。
不使用任何自定义指标的 EA;仓位是伪随机开仓的。 EA 可以用两种语言显示当前统计数据:

追踪修改未平仓头寸的止损。如果发生损失,则使用 Martingale 增加手数。如何监控损失:网上交易,我们捕获交易DEAL_REASON_SL- 触发止损的信号:
//+------------------------------------------------------------------+ //| TradeTransaction 函数 | //+------------------------------------------------------------------+ 空白 网上交易(常量 MqlTrade事务&反式, 常量 Mql交易请求&要求, 常量 Mql交易结果&结果) {//--- 获取交易类型作为枚举值 ENUM_TRADE_TRANSACTION_TYPE类型=反式.类型;//--- 如果交易是添加历史交易的结果 如果(类型==TRADE_TRANSACTION_DEAL_ADD) { 长的 deal_ticket =0; 长的 deal_order =0; 长的 deal_time =0; 长的 deal_time_msc =0; 长的 deal_type =-1; 长的 deal_entry =-1; 长的 deal_magic =0; 长的 deal_reason =-1; 长的 deal_position_id =0; 双倍的 交易量 =0.0; 双倍的 交易价格 =0.0; 双倍的 交易佣金 =0.0; 双倍的 deal_swap =0.0; 双倍的 deal_profit =0.0; 细绳 deal_symbol =””; 细绳 deal_comment =””; 细绳 deal_external_id =””; 如果(历史交易选择(交易)) { deal_ticket =历史交易获取整数(跨交易,DEAL_TICKET); deal_order =历史交易获取整数(跨交易,交易订单); deal_time =历史交易获取整数(跨交易,DEAL_TIME); deal_time_msc =历史交易获取整数(跨交易,DEAL_TIME_MSC); deal_type =历史交易获取整数(跨交易,交易类型); deal_entry =历史交易获取整数(跨交易,DEAL_ENTRY); deal_magic =历史交易获取整数(跨交易,DEAL_MAGIC); 交易原因 =历史交易获取整数(跨交易,DEAL_REASON); deal_position_id =历史交易获取整数(跨交易,DEAL_POSITION_ID); 交易量 =历史交易获得双倍(跨交易,交易量); 交易价格 =历史交易获得双倍(跨交易,DEAL_PRICE); 交易佣金 =历史交易获得双倍(跨交易,DEAL_COMMISSION); deal_swap =历史交易获得双倍(跨交易,交易交换); deal_profit =历史交易获得双倍(跨交易,交易利润); deal_symbol =历史交易获取字符串(跨交易,DEAL_SYMBOL); deal_comment =历史交易获取字符串(跨交易,DEAL_COMMENT); deal_external_id =历史交易获取字符串(跨交易,交易外部ID); } 别的 返回; 如果(deal_symbol==m_symbol.Name() && deal_magic==m_magic) 如果(交易条目==DEAL_ENTRY_OUT) { 上一条=0; 如果(交易原因==DEAL_REASON_SL&& 交易佣金+交易掉期+交易利润<0.0) last_lots_sl=交易量; 别的 最后手数sl=0.0; } } }
然后测试被中断(EA 被强制从图表中卸载),因为参考批次超出了最大手数范围:

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