Forex Форум MT5 | Форум трейдеров рынка Форекс

КАК БЫ УПРАВЛЕНИЕ КАПИТАЛОМ...

В этом месяце я уже писал о попытке добавить  в советник функцию управления капиталом  "новые функции..." Но мне показалось, что я не  совсем корректно пытаюсь определять  состояние флета.













       Первоначально я учитывал только колличество открытых рыночных ордеров, но мне кажется, что более правильно будет считать все открытые советником ордера.
Поэтому немного изменил блок программы...

extern int flet_lev = 7;             // Минимальное колличество ордеров для определения флета
extern int flet_delta = 2;         // Приращение ордеров до максимума флета
//+------------------------------------------------------------------+
//|     ========================================================     |
//|     ========== ФУНКЦИЯ УПРАВЛЕНИЯ КАПИТАЛОМ ============     |
//|     ========================================================     |
//+------------------------------------------------------------------+                
void mm_lots() {
ml = 0;
for (z=0; z<=OrdersTotal(); z++) {
                if (OrderSelect(z, SELECT_BY_POS, MODE_TRADES)) {
//              if (OrderSymbol()==Symbol() && (OrderType()==OP_SELL || OrderType()==OP_BUY)) ml = ml+1;
                if (OrderSymbol()==Symbol()) ml = ml+1;
                }              }             
if (ml <= flet_lev) lots = lot;   

if (ml > flet_lev && ml < (flet_lev+flet_delta)) lots = lot*2;

if (ml >= (flet_lev+flet_delta)) lots = lot*3;
return(lots);
}
Для кого MQL не родной язык, переведу выше написанное.
В процессе работы советника, пока общее колличество ордеров меньше flet_lev открываются позиции с начально заданным объёмом. Но когда колличество открытых ордеров становится больше значения flet_lev – тогда объём вновь открываемых ордеров увеличивается в двое. Если флет продолжается и колличество открытых ордеров превысит значение flet_lev+ flet_delta тогда новые ордера будут открываться с утроенным объемом.
Когда начнётся движение и начнут срабатывать «стопы» и «тейки» (второе предпочтительнее...) соответственно колличество открытых ордеров уменьшится и новые позиции советник будет открывать с начально заданным объёмом.

            Но это всё теория, а хочется посмотреть как будет вести себя советник в деле, но пока только в тестере стратегий терминала.
            Для сравнения, сделал прогон советника за период  03.01.2011 года по 10.06.2011 года без управления капиталом...

  
Баров в истории
6484
Смоделировано тиков
8114756
Качество моделирования
90.00%
Ошибки рассогласования графиков
0





Начальный депозит
10000.00




Чистая прибыль
3427.64
Общая прибыль
23053.47
Общий убыток
-19625.83
Прибыльность
1.17
Матожидание выигрыша
3.12


Абсолютная просадка
2902.31
Максимальная просадка
5180.52 (42.19%)
Относительная просадка
42.19% (5180.52)

Потом не меняя настроек, только включил функцию управления капиталом, значения для неё взял на основе логических рассуждений и наблюдений... 
extern int flet_lev = 7;            // Минимальное колличество ордеров для определения флета
extern int flet_delta = 3;         // Приращение ордеров до максимума флета

получил следующий результат...
   
Баров в истории
6484
Смоделировано тиков
8114756
Качество моделирования
90.00%
Ошибки рассогласования графиков
0





Начальный депозит
10000.00




Чистая прибыль
13783.92
Общая прибыль
44922.06
Общий убыток
-31138.14
Прибыльность
1.44
Матожидание выигрыша
12.53


Абсолютная просадка
1678.46
Максимальная просадка
7404.88 (28.54%)
Относительная просадка
33.93% (4274.12)

Довольно существенно увеличилась прибыль и что ещё порадовало – уменьшение просадки....

Экспериментируя дальше, решил провести оптимизацию. Для оптимизации выбрал только параметры управления капиталом и запустил в тестере на всём отрезке с 03.01.2011 года по 10.06.2011 года. И вот результаты.


И весьма забавный график результатов.


Естественно попробывал работу советника с оптимальными настройками. 
extern int flet_lev = 5;            // Минимальное колличество ордеров для определения флета
extern int flet_delta = 4;         // Приращение ордеров до максимума флета


Баров в истории
6484
Смоделировано тиков
8114756
Качество моделирования
90.00%
Ошибки рассогласования графиков
0





Начальный депозит
10000.00




Чистая прибыль
17111.93
Общая прибыль
52934.35
Общий убыток
-35822.43
Прибыльность
1.48
Матожидание выигрыша
15.56


Абсолютная просадка
2569.68
Максимальная просадка
8877.86 (29.35%)
Относительная просадка
43.31% (5676.33)

НОВЫЙ ВЗГЛЯД НА СТАРЫЕ ВЕЩИ


Сразу хочу определиться, я НЕ фанат «гридеров» и «мартинов». Но справедливости ради должен признаться, что когдато был грешок, писал и юзал такие советники. Однако эта заметка не для покаяния, а для размышлений.

            Пытаясь как-то реагировать на замечания читателей о том, что советник Agent_SB_008 (и последующие версии) допускает в своей работе довольно таки ощутимую просадку по эквити, я пробывал различные варианты с фильтрами и управлением капиталом, но ....

            Но случайно, копаясь в архивах своего компа, наткнулся на своё старое «баловство», советник под названием Agent_pips systems  работает это «чудо» с использованием индикатора i_Trend , открывает сетку ордеров с увеличивающимся объёмом (удваивается) и ещё куча различных настоек.

TakeProfit = 20.0;      
Lots = 0.01;    
StopLoss = 250.0;      
TrailingStop = false;               
MaxTrades = 5;                       колличество выставляемых ордеров
Pips = 15;                                расстояние между ордерами
SecureProfit = 10;                   профит при достижении которого закрываются ордера
AccountProtection = true;     
AllSymbolsProtect = 0;           контролировать профит 1-все инструменты, 0-текущий символ
OrderstoProtect = false;         
mm = false;                             применять управление капиталом
risk = 2;          

Естественно вся эта система, с такими настройками, могла давать как ошеломительные прибыли так и полные сливы.


Но не в этом суть, просто захотелось поэксперементировать с функцией SecureProfit. Однако с дефолтными настройками, изменяя SecureProfit, добиться сколь-нибудь приемлимых результатов не удалось.

И вот тут начинается самое интересное – я попытался изменить основные настройки, но изменять их основываясь на том статистическом опыте который накопился в процессе работы Agent_SB_008. То есть, зная вероятностные значения уровней отката и максимальные уровни стоплоссов для определенных валют, я попытался вписать в эти уровни значения MaxTrades и Pips – жизнь начала налаживаться...
Хочу ещё раз отметить, что никакой оптимизации я не проводил, значения изменял исключительно основываясь на статистический опыт экспериментов с советником Agent_SB_008.



В следующем тесте просто увеличил значение SecureProfit




Все тесты проводил на отрезке времени с 03.01.2011 года до 04.06.2011 года, стартовый депозит 10000, плечё 1:200

Новые функции ...


Для эксперимента добавил в программу функции: 
 1 – возможность разрешить советнику проводить усреднение просевшего усредняющего ордера. 
 2 – попытался  управлять капиталом применительно к данному советнику. 
Теперь обо всём по порядку... 

Для сравнения я вначале прогнал в тестере, 
 так сказать базовую версию советника. Тест 
 проводился на участке с августа 2010 года по 
 май текущего. Котировки не «метаквотовские», а те которые я накапливал в процессе работы.... 



Потом, не меняя основных настроек, включил «первую» функцию – двойное усреднение. Работа функции заключается в том, что советник может усреднять «усредняющий» ордер, когда он уходит в минус. Таким образом, планировалось уменьшить просадки при работе советника.


 
Чисто визуально линия эквити «провисает» меньше чем в базовом тесте, максимальная просадка в процентном отношении уменьшилась, но прибыли это, к сожалению, не добавило и матожидание несколько уменьшилось. Однако нужно отметить, что тест проводился безо всякой предварительной оптимизации, возможно подбором параметров можно будет улучшить результаты.

Далее я подключил «вторую» функцию. Логика её работы такова – я предположил, что когда скапливается достаточное количество рыночных ордеров, это свидетельствует о наличии флета на рынке. Также полагая, что после флета рынок должен войти в тренд, советник был запрограммирован на следующие действия.
- при достаточно большом количестве рыночных ордеров советник открывает отложенные ордера с удвоенным объёмом.
-  при достаточно малом количестве рыночных ордеров (это должно свидетельствовать о завершении тренда) советник возвращается к исходным объёмам ордеров.


В этом варианте прибыль вполовину выше, чем в двух предыдущих и это при том, что тут включена и функция двойного усреднения, которая дала уменьшение прибыли. Однако управление капиталом компенсировало потери двойного усреднения и показало солидный прирост прибыли. Кстати просадка стала также меньше чем в предыдущих тестах, матожидание увеличилось на единицу. Кстати настройки для управления капиталом я также выбирал эмпирическим путём без оптимизации и подгонки.

Сейчас делаю функцию «одноступенчатого приближения»  как будет готова, результаты выложу в блоге.



Теперь о результатах работы :


Ниже, результаты работы на конец апреля, советник остаётся в прибыли почти 25% от стартового депозита за два с половиной месяца (в этом году стартовал в середине февраля).


Хотя нет, это прибыль за полтора месяца, я ведь в прошлом месяце (10 марта) собственноручно угробил всю прибыль и даже немножко стартового депозита .....



Работа продолжается

Продолжаю работу советником на реале.
 Правда ещё не всё, то что планировал удалось  сделать. Но думаю, что скоро решу эти  проблемки. Вот уже почти месяц уже
 отработан на реале. Стартовый депозит сто
 долларов, торговлю вёл ордерами объемом
 0,02 лота, это получается 0,2 цента на пункт.
 Просто хочу максимально уменьшить риски
 при работе советника и при этом цель по
 прибыли не менее банковской ставки по
депозиту.




тут подробный отчет о работе   detailedstatement-26-fevralya

Настройки советника



А для тех у кого советник работает, выкладываю таблицу валют на февраль, там кстати сделал бектест за весь прошлый год....

Кстати эти настройки, точнее уровни для усреднения можно использовать в ручной торговле.

Если кому интересно, могу выслать программу которая будет усреднять открытую вручную позицию. Просто сделал отдельной программой функцию усреднения из советника...





Немного про оптимизацию


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

Первое, что я сделал это скачал историю котировок и начал оптимизировать советника для предстоящей работы.
Кстати сейчас тестирую новую версию Agent_SB_008 принцип работы остался прежний но улучшил работу в тестере для более точных прогнозов...

Прогнал советника на истории ЕвроДоллар за период  с 31.10.2010 года до 31.01.2011 года, получил стандартную картинку. "Стандартную" в смысле с явно выраженой зоной уровня отката...


OptimizationReport.xls на upload.com.ua
Подробные результаты оптимизации можно посмотреть в файле.



 Здесь приведу только небольшой кусочек верхней части таблицы :


Прибыль
Всего сделок
Прибыльность
МО выигрыша
% просадки
SL
muv_level
zone
TP
lots
enlarge_lot
6463,67
774
1,91
8,35
50,81
500
50
25
15
0,1
5
5845,58
774
1,76
7,55
50,42
460
50
25
15
0,1
5
5701,39
771
1,74
7,39
50,42
460
50
27
15
0,1
5
5428,92
726
1,52
7,48
36,81
390
150
9
15
0,1
5
5296,12
725
1,5
7,3
36,81
390
150
10
15
0,1
5
5295,84
725
1,5
7,3
36,82
390
150
11
15
0,1
5
5128,92
726
1,48
7,06
36,81
420
150
9
15
0,1
5
5027,22
726
1,46
6,92
36,81
430
150
9
15
0,1
5
4996,12
725
1,46
6,89
36,81
420
150
10
15
0,1
5
4995,84
725
1,46
6,89
36,82
420
150
11
15
0,1
5

Сразу бросается в глаза значения уровня отката в 50 пунктов.... но на графике эта зона СЛАБО выражена и поэтому применять её я бы НЕ советовал...
Для эксперимента "прогоним" советник с такими настройками на периоде всего 2010 года...


Strategy Tester Report
Agent_SB_008
EGlobal-Cent2 (Build 229)
Символ
EURUSD (Euro vs US Dollar)
Период
30 Минут (M30) 2010.01.04 00:00 - 2010.12.24 22:30 (2010.01.04 - 2010.12.26)
Модель
Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)
Параметры
block_01=" Установка ОСНОВНЫХ переменных "; Magic=317317; SL=500; TP=15; lots=0.1; block_02=" Установка переменных УСРЕДНЕНИЯ "; muv_poz=true; muv_level=50; zone=25; enlarge_lot=5;
Баров в истории
9582
Смоделировано тиков
7404731
Качество моделирования
90.00%
Ошибки рассогласования графиков
0
Начальный депозит
10000.00
Чистая прибыль
3588.06
Общая прибыль
38754.55
Общий убыток
-35166.48
Прибыльность
1.10
Матожидание выигрыша
1.61
Абсолютная просадка
5894.00
Максимальная просадка
17611.38 (81.09%)
Относительная просадка
81.09% (17611.38)
Всего сделок
2232
Короткие позиции (% выигравших)
1115 (84.75%)
Длинные позиции (% выигравших)
1117 (86.39%)
Прибыльные сделки (% от всех)
1910 (85.57%)
Убыточные сделки (% от всех)
322 (14.43%)
Самая большая
прибыльная сделка
50.00
убыточная сделка
-2280.80
Средняя
прибыльная сделка
20.29
убыточная сделка
-109.21
Максимальное количество
непрерывных выигрышей (прибыль)
34 (682.20)
непрерывных проигрышей (убыток)
7 (-508.24)
Максимальная
непрерывная прибыль (число выигрышей)
682.20 (34)
непрерывный убыток (число проигрышей)
-5510.28 (4)
Средний
непрерывный выигрыш
6
непрерывный проигрыш
1


Хоть советник и дал свои 30% прибыли за год, но как-то уныло выглядит график баланса...

Теперь "прогоним" советник с настройками для чётко выраженой зоны на уровне 150 пунктов :


Strategy Tester Report
Agent_SB_008
EGlobal-Cent2 (Build 229)
Символ
EURUSD (Euro vs US Dollar)
Период
30 Минут (M30) 2010.01.04 00:00 - 2010.12.24 22:30 (2010.01.04 - 2010.12.26)
Модель
Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)
Параметры
block_01=" Установка ОСНОВНЫХ переменных "; Magic=317317; SL=390; TP=15; lots=0.1; block_02=" Установка переменных УСРЕДНЕНИЯ "; muv_poz=true; muv_level=150; zone=9; enlarge_lot=5;
Баров в истории
9582
Смоделировано тиков
7404731
Качество моделирования
90.00%
Ошибки рассогласования графиков
0
Начальный депозит
10000.00
Чистая прибыль
11759.81
Общая прибыль
44307.58
Общий убыток
-32547.77
Прибыльность
1.36
Матожидание выигрыша
5.64
Абсолютная просадка
1041.52
Максимальная просадка
5382.07 (31.17%)
Относительная просадка
31.17% (5382.07)
Всего сделок
2084
Короткие позиции (% выигравших)
1026 (92.40%)
Длинные позиции (% выигравших)
1058 (90.93%)
Прибыльные сделки (% от всех)
1910 (91.65%)
Убыточные сделки (% от всех)
174 (8.35%)
Самая большая
прибыльная сделка
125.00
убыточная сделка
-1211.00
Средняя
прибыльная сделка
23.20
убыточная сделка
-187.06
Максимальное количество
непрерывных выигрышей (прибыль)
75 (1230.56)
непрерывных проигрышей (убыток)
10 (-367.94)
Максимальная
непрерывная прибыль (число выигрышей)
1230.56 (75)
непрерывный убыток (число проигрышей)
-3305.64 (5)
Средний
непрерывный выигрыш
13
непрерывный проигрыш
1
 

Здесь уже картинка более весёлая....

Вывод: для оптимизации советника (по крайней мере этого), при выборе рабочих параметров нужно ориентироваться не столько на значения с максимальной прибыльностью но больше смотреть на значения которые дают большую повторяемость....














рекомендовать блог друзьям и знакомым