КАК БЫ УПРАВЛЕНИЕ КАПИТАЛОМ...
В этом месяце я уже писал о попытке добавить в советник функцию управления капиталом "новые функции..." Но мне показалось, что я не совсем корректно пытаюсь определять состояние флета.
Первоначально я учитывал только колличество открытых рыночных ордеров, но мне кажется, что более правильно будет считать все открытые советником ордера.
Поэтому немного изменил блок программы...
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) |