- 显示:
- 190
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
大家好、
这是"简单而有效的突破策略"的更新。在这段代码中,我为道具公司的挑战添加了一些辅助函数。
一般来说,要通过道具公司的挑战,你需要满足三个主要标准:
- 目标利润
- 不违反每日最大损失
- 不违反最大损失
在这段代码中,我加入了两个函数来检查 "目标利润 "和 "几乎违反每日最大亏损",以自动退出所有仓位并删除所有挂单。至于 "最大损失",这实际上取决于您的策略和风险管理,因此本 MQL5 脚本不会提及。
//+------------------------------------------------------------------+ //| Prop Firm 辅助功能| //+------------------------------------------------------------------+ // 删除所有挂单并退出所有仓位 void ClearAll(string message) { Comment(message); for (int i = OrdersTotal() - 1; i >= 0; i--) { ulong orderTicket = OrderGetTicket(i); if (OrderSelect(orderTicket)) { trade.OrderDelete(orderTicket); } } for (int i = PositionsTotal() - 1; i >= 0; i--) { ulong posTicket = PositionGetTicket(i); trade.PositionClose(posTicket); } } // 检查我们是否实现了利润目标 bool isPassed() { return AccountInfoDouble(ACCOUNT_EQUITY) > PASS_CRITERIA; } // 检查我们是否即将突破最大日损失值 bool isDailyLimit() { MqlDateTime date_time; TimeToStruct(TimeCurrent(), date_time); int current_day = date_time.day, current_month = date_time.mon, current_year = date_time.year; // 当前余额 double current_balance = AccountInfoDouble(ACCOUNT_BALANCE); // 获取今天的平仓交易 PL HistorySelect(0, TimeCurrent()); int orders = HistoryDealsTotal(); double PL = 0.0; for (int i = orders - 1; i >= 0; i--) { ulong ticket=HistoryDealGetTicket(i); if(ticket==0) { Print("HistoryDealGetTicket failed, no trade history"); break; } double profit = HistoryDealGetDouble(ticket,DEAL_PROFIT); if (profit != 0) { // 获取交易日期 MqlDateTime deal_time; TimeToStruct(HistoryDealGetInteger(ticket, DEAL_TIME), deal_time); // 检查交易时间 if (deal_time.day == current_day && deal_time.mon == current_month && deal_time.year == current_year) { PL += profit; } else break; } } double starting_balance = current_balance - PL; double current_equity = AccountInfoDouble(ACCOUNT_EQUITY); return current_equity < starting_balance - DAILY_LOSS_LIMIT; }
我们需要指定的参数是
input string dd = "-------------PROP FIRM CHALLENGE-----------------"; input bool isChallenge = false; input double PASS_CRITERIA = 110100.; input double DAILY_LOSS_LIMIT = 4500.;
希望您能在本脚本中找到相关值。
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/49713
Click on the market chart to create a price alert
这是 MetaTrader 5 的首创。现在,您可以点击图表创建价格警报。
Count consecutive no. of bull or bear bars
计算牛市或熊市连续条数的示例代码。