在自动化交易中,了解特定交易策略或交易机器人(Expert Advisor, EA)的性能是至关重要的。性能评估不仅包括总利润的计算,还应排除某些非交易因素的影响,如隔夜利息(亦称为Swap或利息费)。为了实现这一目的,我们可以通过MQL4编程语言在MetaTrader 4平台上编写一个函数,该函数专门计算不包含利息的总利润。本文将详细介绍这一函数的代码、功能以及如何在实际交易中调用它。
函数代码
// 定义外部变量以自定义魔数
extern int MagicNumber = 0;
// 定义计算不包含利息的总利润的函数
double subTotalProfit() {
double Profit = 0;
// 遍历所有订单
for(int cnt = 0; cnt < OrdersTotal(); cnt++) {
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
Profit += OrderProfit(); // 累加不包含利息的利润
}
}
}
return Profit;
}
此函数首先初始化Profit
变量用于累计利润。通过遍历所有订单,选中每一个订单,检查订单是否为当前交易品种的市场订单,并且是否与设定的魔数(MagicNumber)相匹配。如果条件满足,函数将该订单的利润(不包括利息)累加到Profit
变量中。最终,函数返回累计的总利润值。