Матожидание - ничто, управление капиталом и риском - все! - Управление капиталом и риском - Статьи о биржевом трейдинге - BigFX - Каталог статей - Большой Forex
Суббота, 11.09.2010, 00:49
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Технический анализ [28]
Фундаментальный анализ [3]
Управление капиталом и риском [3]
Разное [39]
Аферы и обман [6]
Нейронные сети [1]
Торговые стратегии [11]
Описание биржевых торговых стратегий
Мини-чат
200
Наш опрос
Используете ли Вы автотрейдинг?
Всего ответов: 186
 BigFX - Каталог статей
Главная » Статьи » Статьи о биржевом трейдинге » Управление капиталом и риском

Матожидание - ничто, управление капиталом и риском - все!


Существует идиотское утверждение о том, что якобы для управления капиталом и риском необходима торговая система с положительным математическим ожиданием. Вот что пишет об этом Ральф Винс в своей книжонке "Математика управления капиталом":

"В отношении управления капиталом очень важно понимать, что при игре с отрицательным ожиданием нет схемы управления деньгами, которая может сделать вас победителем. Если вы продолжаете играть, то независимо от способа управления деньгами вы проиграете весь ваш счет, каким бы большим он ни был в начале."

Многие также настаивают на том, что на сей счет якобы существует "доказанная" Дубом теорема.

Но Дуб, он и есть - дуб дубом.

Попробуем взять примитивную тактику, которая открывает позиции, последовательно чередуя длинные и короткие позиции. Т.е. открывает позицию в каком либо направлении, потом, после того, как ордер закроется по тейпрофиту или стоплоссу, следующая позиция открывается в направлении противоположном предыдущей. И т.д. и т.п. Математическое ожидание такой тактики на нескольких сотнях сделок окажется убыточным, если по ней торговать постоянным лотом. (Математическое ожидание всегда считается только для флетбета, т.е. либо постоянной ставки для игр или постоянного лота для торговых стратегий и тактик. В торговом терминале 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 allowed for trade

if (IsTradeAllowed()) {
RefreshRates();
} else {
prevtime = Time[1];
return(0);
}

// --- indexed variable
int i = 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;
}
}
}

// default lots size is allowed minimum
double lt = MarketInfo(Symbol(), MODE_MINLOT);

// refresh
RefreshRates();

int ticket = -1;

// check for long or short position possibility
if (op == OP_BUY) { //long
if (perceptron() > 0) lt = getLots();
ticket = OrderSend(Symbol(), OP_BUY, lt, Ask, 3, Bid - sl * Point, Bid + sl * Point, "NeuroMM", MagicNumber, 0, Blue);
if (ticket < 0) {
Sleep(30000);
prevtime = Time[1];
}
} else { // short
if (perceptron() < 0) lt = getLots();
ticket = OrderSend(Symbol(), OP_SELL, lt, Bid, 3, Ask + sl * Point, Ask - sl * Point, "NeuroMM", MagicNumber, 0, Red);
if (ticket < 0) {
Sleep(30000);
prevtime = Time[1];
}
}
//--- exit
return(0);
}
//+--- The PERCEPRRON ---+
// a perceiving and recognizing function

double perceptron() {
double w1 = x1 - 100.0;
double w2 = x2 - 100.0;
double w3 = x3 - 100.0;
double w4 = x4 - 100.0;
double a1 = iAC(Symbol(), 0, 0);
double a2 = iAC(Symbol(), 0, 7);
double a3 = iAC(Symbol(), 0, 14);
double a4 = iAC(Symbol(), 0, 21);
return (w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
}

//+--------------Calculate optimal lot size -------------------------+

double getLots() {
double minlot = MarketInfo(Symbol(), MODE_MINLOT);
int round = MathAbs(MathLog(minlot) / MathLog(10.0)) + 0.5;
double lot = minlot;
//---- select lot size
lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / 1000.0, round);
if (AccountFreeMargin() < lot * MarketInfo(Symbol(), MODE_MARGINREQUIRED)) {
lot = NormalizeDouble(AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED), round);
}
if(lot < minlot) lot = minlot;
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
if(lot > maxlot) lot = maxlot;
//---- return lot size
return(lot);
}


Принципы оптимизации МТС такие же, как и у его предшественника - AI:

Входные параметры:

x1, x2, x3, x4 - от 0 до 200 с шагом 1
MaximumRisk - от 0.01 до 1 с шагом 0.01
sl - от 10 до 70 с шагом 5

Скачать исходники советника можно ЗДЕСЬ

Посмотреть результаты бектеста можно ЗДЕСЬ. Оптимизация и тестирование проводилось на котировках взятых по OnDemand с реального счета ДЦ "SystemForex".

Если тактика применения нейронных сетей в качестве регулятора для управления капиталом и риском способна дать профит даже на заведомо убыточной торговой стратегии и даже вообще без всякой стратегии, то появляется резон ее прикладного применения к стратегиям профитным. Вот пример такого советника: МТС "NeuroMACDwithMM"

http://reshetov.xnet.uz/NeuroMACDwithMM/TesterGraph.gif

Категория: Управление капиталом и риском | Добавил: BigForex (11.08.2007) | Автор: Yury V. Reshetov
Просмотров: 5900 | Рейтинг: 4.8/4 |
Всего комментариев: 111 2 »
0  
11 TimofeY   (03.11.2009 16:54)
Здравствуйте :)
Это больше похоже на утопию. Не стОит доверять этому.

0  
10 hezubuhy   (25.03.2009 09:57)
ухты, прикольно!

0  
9 semeotis   (10.03.2009 20:31)
Тут вот мысль промелькнула, а нельзя ли пару статеек с Вашего сайта у себя тиснуть?... со ссылкой, разумеется..

0  
8 Nazta   (07.03.2009 14:55)
Мне кажется, что можно было бы и подробнее написать. А то какие-то общие слова.

0  
7 Иванна-ярослава   (07.03.2009 08:13)
Зачет!

0  
6 cizokupi   (12.02.2009 05:11)
Забавно, благодарю.

0  
5 vqjewaro   (12.02.2009 05:09)
Плагиат?

0  
4 tojonyra   (11.02.2009 17:56)
Статья супер

0  
3 olya   (22.11.2008 15:59)
Это для избранных.

0  
2 Мари   (05.11.2008 19:35)
Для управления капиталлом, необходимо знать такие расчёты?

1 2 »
Имя *:
Email:
Код *:
Форма входа
E-mail:
Пароль:
Поиск
Друзья сайта
FOREX MAGAZINE


Яндекс цитирования
Рейтинг Досок Объявлений
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0