ea从最初开始计算赢得交易的数量。
if(win){Winers ;}
现在我想要从最近的50个交易中算起来。
并且在每次交易之后,它将更新到新的最后五十(如MA)。
有一个简单的方法吗?
ea从最初开始计算赢得交易的数量。
if(win){Winers ;}
现在我想要从最近的50个交易中算起来。
并且在每次交易之后,它将更新到新的最后五十(如MA)。
有一个简单的方法吗?
如果您需要任何编码方面的帮助,那么这就是您应该编写的主题。
https://www.forex-pedia.com/forex-ma...6-lets-go.html你可能会得到帮助。这里有另一位非常专业的编码员。 FerruFX-您可以与他联系
https://www.forex-pedia.com/forex-ma...ading-egy.html
假设您有一个数组,其中包含超过100笔交易的所有净利润,请调用您的Net_profit_Array,如果您只需要来自该数组的最后50笔交易,那么您可以创建一个新数组,让我们称之为New_array,使用
https://docs.mql4.com/array/arraycopy并通过将src_start参数设置为50来指定要从原始数组开始复制的位置,如下所示:ArrayCopy(New_array,Net_profit_Array,0,50,WHOLE_ARRAY);这会将原始数组的最后50笔交易存储到New_array中,然后您可以像往常一样在此复制的数组上进行计算。当然,如果原始Net_profit_Array的大小不断变化,您可能希望将src_start参数设置为变量。祝你好运!
但是如何自动创建这个Net_profit_Array?Originally Posted by ;
当ea结束交易时利润是此交易的利润/亏损,以美元计)if(profitgt; 0)//赢家交易{Number_of_winners ;} if(profitlt; 0)//亏损{number_of_losses ;}Originally Posted by ;
Last_50_trades_result();/ ----------------------------------------------- ------------------- /最后50笔交易结果// --------------------- --------------------------------------------- void Last_50_trades_result() {wins = 0;失败= 0; int depth_trades = 50; int total_trades = OrdersHistoryTotal(); int limit; if(total_trades gt; depth_trades)limit = total_trades - depth_trades; else limit = 0; for(int i = total_trades; igt; = limit; i--){OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); if(OrderProfit()gt; 0)赢得 ; if(OrderProfit()lt; 0)丢失 ; } **** MODE_HISTORY关闭HI和STORY之间的间隙
非常感谢(欢迎来到ff)if(Last_50_trades_result()== true){ anax =Originally Posted by ;
; }
谢谢,它运作正常。但OrdersHistoryTotal()也计入过期的挂单。我如何防止它包含它们?Originally Posted by ;
试试这个插入的代码// ------------------------------------ ------- ----------------------- /最后N个交易结果// ----------------- ------------------- ------------------------------ int Last_N_trades_result(int depth_trades){int wins = 0; int counts_trades = 0; int total_trades = OrdersHistoryTotal(); for(int i = total_trades; igt; = 0; i--){if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)|| counting_trades = depth_trades)break; if(OrderType()lt; 2){counting_trades ; if(OrderProfit() OrderCommission() OrderSwap()gt; 0)获胜 ; } return(wins); }Originally Posted by ;