Доброго утра.
Для начала хочу сказать всем спасибо кто пишет про улучшение торговли.
Сегодня хочу познакомить вас с коэффициентом Кальмара. Это такой инструмент, который помогает не растить убытки.
Полная статья тут
womanforex.ru/foreks-dlya-novichkov/koefficient-kalmara.html, тут
time-forex.com/inv/koef-kalmara, тут
smart-lab.ru/blog/341887.php и много где ещё.
Столько статей показывают наличие плагиата и некоторое отличие статей. Так в некоторых статьях коэффициент равен общая прибыль делённая на максимальный убыток, а в других средняя прибыль на максимальный убыток.
При том что убыток определяется торговцем самостоятельно в роботе, тем не менее убыток может суммироваться как и серия прибыли.
Поэтому знакомлю вас с обычной формулой Кальмара
//+--------------------------------------------------------------------+
//| K*Кальмара @Алексей Корольков http://axe44.opentraders.ru/bio/ |
//+--------------------------------------------------------------------+
double OnTester()
{
double SrPribul = 0;
double Kalmar = 0;
if (TesterStatistics(STAT_PROFIT_TRADES) > 0)
SrPribul = NormalizeDouble(TesterStatistics(STAT_GROSS_PROFIT ) / TesterStatistics(STAT_TRADES),Digits) ;
Kalmar= NormalizeDouble(SrPribul/TesterStatistics(STAT_TRADES),Digits);
return(Kalmar);
}
//+------------------------------------------------------------------+
и моей модифицированной версии Кальмара, где учитывается серия сделок как прибыльных так и убыточных где средняя прибыль * на долю в максимальной серии сделок делённую на максимальный убыток перемноженный на общую долю серии убыточных сделок
//+------------------------------------------------------------------------------------+
//| K*Кальмара модифицированная @Алексей Корольков http://axe44.opentraders.ru/bio/ |
//+------------------------------------------------------------------------------------+
double OnTester()
{
double SrPribul = 0;
double Kalmar = 0;
if (TesterStatistics(STAT_PROFIT_TRADES) > 0)
SrPribul = NormalizeDouble(TesterStatistics(STAT_GROSS_PROFIT ) / TesterStatistics(STAT_TRADES),Digits) ;
Kalmar= NormalizeDouble(-SrPribul*(TesterStatistics(STAT_CONPROFITMAX_TRADES)/TesterStatistics(STAT_TRADES))/
(TesterStatistics(STAT_MAX_LOSSTRADE)*(TesterStatistics(STAT_CONLOSSMAX_TRADES)/TesterStatistics(STAT_TRADES)))
,Digits);
return(Kalmar);
}
Код размещается в конце любого робота. Код совместим с любым роботом собранного в редакторе MQL4.
Присылайте заявки, может помогу.
Комментарии (0)
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий