Матожидание - ничто, управление капиталом и риском - все! - Управление капиталом и риском - Статьи о биржевом трейдинге - BigFX - Каталог статей - Большой Forex
Матожидание - ничто, управление капиталом и риском - все!
Существует
идиотское утверждение о том, что якобы для управления капиталом и
риском необходима торговая система с положительным математическим
ожиданием. Вот что пишет об этом Ральф Винс в своей книжонке
"Математика управления капиталом":
"В отношении управления
капиталом очень важно понимать, что при игре с отрицательным ожиданием
нет схемы управления деньгами, которая может сделать вас победителем.
Если вы продолжаете играть, то независимо от способа управления
деньгами вы проиграете весь ваш счет, каким бы большим он ни был в
начале."
Многие также настаивают на том, что на сей счет якобы существует "доказанная" Дубом теорема.
Но Дуб, он и есть - дуб дубом.
Попробуем
взять примитивную тактику, которая открывает позиции, последовательно
чередуя длинные и короткие позиции. Т.е. открывает позицию в каком либо
направлении, потом, после того, как ордер закроется по тейпрофиту или
стоплоссу, следующая позиция открывается в направлении противоположном
предыдущей. И т.д. и т.п. Математическое ожидание такой тактики на
нескольких сотнях сделок окажется убыточным, если по ней торговать
постоянным лотом. (Математическое ожидание всегда считается только для
флетбета, т.е. либо постоянной ставки для игр или постоянного лота для
торговых стратегий и тактик. В торговом терминале MetaTrader4 (c)
MetaQuotes Corp. математическое ожидание вычисляется неправильно, т.к.
оно не нормированно под флетбет). Проще говоря, если мы пересчитаем
результаты использования вышеописанной тактики в пипсах, то они
окажутся отрицательными.
А теперь приделаем к этой заведомо
убыточной тактике управление капиталом и риском, а именно возьмем
примитивную нейронную сеть типа Перцептрон и начнем с ее помощью
определять размер лота для открываемых торговых позиций. Некоторых
наверное удивит, но в этом случае результат гораздо лучше, чем если бы
мы взяли прибыльную торговую стратегию на той же самой нейронной сети,
как это сделано в AI и попытались к ней присобачить управление капиталом и риском.
Приведу рабочий код МТС для MetaTrader4, который работает по вышеизложенному принципу:
//+-----------------------------------------------------------------------------+ //| NeuroMoneyManagement.mq4 | //| Copyright c 2006, Yury V. Reshetov | //| http://bigforex.biz| //+-----------------------------------------------------------------------------+ #property copyright "Copyright c 2006, Yury V. Reshetov http://bigforex.biz" #property link "http://bigforex.biz"
//---- input parameters extern int x1 = 61; extern int x2 = 184; extern int x3 = 92; extern int x4 = 7; extern double MaximumRisk = 0.82; // StopLoss level extern double sl = 50; extern int MagicNumber = 888; static int prevtime = 0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() {
//---- check new bar
if (Time[0] == prevtime) return(0); prevtime = Time[0];
// check for opened position int total = OrdersTotal(); for (i = 0; i < total; i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); // check for symbol & magic number if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { // found opened position - exit return(0); } }
//--- check for type last position total = OrdersHistoryTotal(); int op = OP_BUY; for (i = 0; i < total; i++) { OrderSelect(i, SELECT_BY_POS, MODE_HISTORY); // check for symbol & magic number if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { // change type if (OrderType() == OP_BUY) { op = OP_SELL; } else { op = OP_BUY; } } }
Посмотреть результаты бектеста можно ЗДЕСЬ. Оптимизация и тестирование проводилось на котировках взятых по OnDemand с реального счета ДЦ "SystemForex". Если тактика применения нейронных сетей в качестве регулятора для управления капиталом и риском способна дать профит даже на заведомо убыточной торговой стратегии и даже вообще без всякой стратегии, то появляется резон ее прикладного применения к стратегиям профитным. Вот пример такого советника: МТС "NeuroMACDwithMM"