This commit is contained in:
Matt Corcoran
2024-11-10 15:18:39 +01:00
parent 868eba5c35
commit 03e5e2aebe
+37 -5
View File
@@ -4,7 +4,15 @@
enum CUSTOM_MAX_TYPE{ enum CUSTOM_MAX_TYPE{
CM_WIN_LOSS_RATIO, CM_WIN_LOSS_RATIO,
CM_WIN_PERCENT, CM_WIN_PERCENT,
CM_WIN_PERCENT_200T CM_WIN_PERCENT_200T,
CM_WIN_PERCENT_300T,
CM_WIN_PERCENT_400T,
CM_WIN_PERCENT_500T,
CM_WIN_PERCENT_600T,
CM_WIN_PERCENT_700T,
CM_WIN_PERCENT_800T,
CM_WIN_PERCENT_900T,
CM_WIN_PERCENT_1000T,
}; };
class CustomMax : public CObject{ class CustomMax : public CObject{
@@ -14,7 +22,7 @@ class CustomMax : public CObject{
double CustomMax::win_loss_ratio(); double CustomMax::win_loss_ratio();
double CustomMax::win_percent(); double CustomMax::win_percent();
double CustomMax::win_percent_min_trades_200(); double CustomMax::win_percent_min_trades(int min_resuired_trades);
public: public:
double CustomMax::calculate_custom_criteria(CUSTOM_MAX_TYPE cm_type); double CustomMax::calculate_custom_criteria(CUSTOM_MAX_TYPE cm_type);
@@ -31,8 +39,32 @@ double CustomMax::calculate_custom_criteria(CUSTOM_MAX_TYPE cm_type){
custom_criteria = win_percent(); custom_criteria = win_percent();
} }
if(cm_type==CM_WIN_PERCENT_200T){ if(cm_type==CM_WIN_PERCENT_200T){
custom_criteria = win_percent_min_trades_200(); custom_criteria = win_percent_min_trades(200);
} }
if(cm_type==CM_WIN_PERCENT_300T){
custom_criteria = win_percent_min_trades(300);
}
if(cm_type==CM_WIN_PERCENT_400T){
custom_criteria = win_percent_min_trades(400);
}
if(cm_type==CM_WIN_PERCENT_500T){
custom_criteria = win_percent_min_trades(500);
}
if(cm_type==CM_WIN_PERCENT_600T){
custom_criteria = win_percent_min_trades(600);
}
if(cm_type==CM_WIN_PERCENT_700T){
custom_criteria = win_percent_min_trades(700);
}
if(cm_type==CM_WIN_PERCENT_800T){
custom_criteria = win_percent_min_trades(800);
}
if(cm_type==CM_WIN_PERCENT_900T){
custom_criteria = win_percent_min_trades(900);
}
if(cm_type==CM_WIN_PERCENT_1000T){
custom_criteria = win_percent_min_trades(1000);
}
return custom_criteria; return custom_criteria;
} }
@@ -48,11 +80,11 @@ double CustomMax::win_percent(){
return wins / total_trades * 100; return wins / total_trades * 100;
} }
double CustomMax::win_percent_min_trades_200(){ double CustomMax::win_percent_min_trades(int min_resuired_trades){
double wins = TesterStatistics(STAT_PROFIT_TRADES); double wins = TesterStatistics(STAT_PROFIT_TRADES);
double total_trades = TesterStatistics(STAT_TRADES); double total_trades = TesterStatistics(STAT_TRADES);
if(total_trades<200){ if(total_trades<min_resuired_trades){
return 0; return 0;
} }