86 lines
10 KiB
Plaintext
86 lines
10 KiB
Plaintext
#include "ExpTradeSummarySingle.mqh"
|
|
|
|
#define UINT uint
|
|
#define INT64 datetime
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Структура для статистики торговли - доп показатели |
|
|
//+------------------------------------------------------------------+
|
|
struct ExpTradeSummaryExt : public ExpTradeSummarySingle
|
|
{
|
|
private:
|
|
string LengthToString( const datetime Length ) const
|
|
{
|
|
const int Days = (int)(Length / (24 * 3600));
|
|
|
|
return(((Days) ? (string)Days + "d ": "") + ::TimeToString(Length, TIME_SECONDS));
|
|
}
|
|
|
|
public:
|
|
int Offset2[18];
|
|
double ghpr; // среднее геометрическое сделки
|
|
double ghprpercent; // среднее геометрическое сделки в процентах
|
|
double ahpr; // среднее арифметическое сделки
|
|
double ahprpercent; // среднее арифметическое сделки в процентах
|
|
double zscore; // серийный тест
|
|
double zscorepercent; // серийный тест в процентах
|
|
double lrcorr; // коэффициент корреляции линейной регрессии
|
|
double lrstderror; // стандартная ошибка отклонения баланса от линейной регрессии
|
|
UINT symbols; // количество инструментов участвовавших в торговле
|
|
int Offset3;
|
|
double corr_prf_mfe; // корреляция между mfe и profit
|
|
double corr_prf_mae; // корреляция между mae и profit
|
|
double corr_mfe_mae; // корреляция между mae и mfe
|
|
double mfe_a; // корреляция между mfe и profit, коэф. для линии линейной регрессии
|
|
double mfe_b; // корреляция между mfe и profit, коэф. для линии линейной регрессии
|
|
double mae_a; // корреляция между mae и profit, коэф. для линии линейной регрессии
|
|
double mae_b; // корреляция между mae и profit, коэф. для линии линейной регрессии
|
|
UINT in_per_hours[24]; // распределение входов по часам
|
|
UINT in_per_week_days[7]; // распределение входов по дням недели
|
|
UINT in_per_months[12]; // распределение входов по месяцам
|
|
int Offset4;
|
|
double out_per_hours[24][2]; // распределение входов по часам
|
|
double out_per_week_days[7][2]; // распределение входов по дням недели
|
|
double out_per_months[12][2]; // распределение входов по месяцам
|
|
INT64 holding_time_min; // минимальное время удержания позиции
|
|
INT64 holding_time_max; // максимальное время удержания позиции
|
|
INT64 holding_time_avr; // среднее время удержания позиции
|
|
|
|
// https://www.mql5.com/ru/forum/444094/page13#comment_46162559
|
|
double in_commission;
|
|
int reserve[40];
|
|
|
|
#define TOSTRING(A) #A + " = " + (string)(A) + "\n"
|
|
#define TOSTRING2(A) #A + " = " + this.LengthToString(A) + "\n"
|
|
|
|
string ToString( void ) const
|
|
{
|
|
return(ExpTradeSummarySingle::ToString() +
|
|
TOSTRING(ghpr) + // среднее геометрическое сделки
|
|
TOSTRING(ghprpercent) + // среднее геометрическое сделки в процентах
|
|
TOSTRING(ahpr) + // среднее арифметическое сделки
|
|
TOSTRING(ahprpercent) + // среднее арифметическое сделки в процентах
|
|
TOSTRING(zscore) + // серийный тест
|
|
TOSTRING(zscorepercent) + // серийный тест в процентах
|
|
TOSTRING(lrcorr) + // коэффициент корреляции линейной регрессии
|
|
TOSTRING(lrstderror) + // стандартная ошибка отклонения баланса от линейной регрессии
|
|
TOSTRING(symbols) + // количество инструментов участвовавших в торговле
|
|
TOSTRING(corr_prf_mfe) + // корреляция между mfe и profit
|
|
TOSTRING(corr_prf_mae) + // корреляция между mae и profit
|
|
TOSTRING(corr_mfe_mae) + // корреляция между mae и mfe
|
|
TOSTRING(mfe_a) + // корреляция между mfe и profit, коэф. для линии линейной регрессии
|
|
TOSTRING(mfe_b) + // корреляция между mfe и profit, коэф. для линии линейной регрессии
|
|
TOSTRING(mae_a) + // корреляция между mae и profit, коэф. для линии линейной регрессии
|
|
TOSTRING(mae_b) + // корреляция между mae и profit, коэф. для линии линейной регрессии
|
|
TOSTRING2(holding_time_min) + // минимальное время удержания позиции
|
|
TOSTRING2(holding_time_max) + // максимальное время удержания позиции
|
|
TOSTRING2(holding_time_avr) + // среднее время удержания позиции
|
|
TOSTRING(in_commission)); // https://www.mql5.com/ru/forum/444094/page13#comment_46162559
|
|
}
|
|
|
|
#undef TOSTRING2
|
|
#undef TOSTRING
|
|
};
|
|
|
|
#undef INT64
|
|
#undef UINT |