Перейти к содержимому

Theme© by Fisana
 

Фотография
* * * * * 1 Голосов

экспромт на тему ММ


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 53

#16 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 20 February 2011 - 00:19

Интересная идея управления объёмами открываемых ордеров используя функцию AboveMaProfit(), которую описывает Necron вот здесь:

http://fxgeneral.com...indpost&p=14384

Особенно для трендовых советников.
Когда у меня будут готовы сравнительные картинки посмотреть - выложу сюда.

 
 

#17 Michelangelo®

Michelangelo®

    МОРДЕ-РАПТОР

  • Профи
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1003 сообщений

Отправлено 20 February 2011 - 16:11

Появилась, на мой взгляд, интересная идея...
и так... что такое робот - это некий алгоритм открытия-закрытия сделок... написали, прогнали в тестере сам алгоритм и видим, некое количество непрерывных прибыльных и убыточных сделок... т.е. на некотором историческом промежутке времени было подряд 4 прибыльных и 1 убыточная сделка, что нам говорит о том, что согласно нашего алгоритма действий не может быть более одной убыточной сделки подряд... вот тут то мы и подключаем ММ, т.е. зная о том, что после убыточной сделки идет обязательно прибыльная мы увеличиваем лот, а то что после прибыльной идет с вероятностью 20-25% убыточная мы уменьшаем лот... тем самым коррелируя полученный убыток...
сам алгоритм входа выхода мы не меняем и потому не меняем количество совершенных подряд убыточных и прибыльных сделок... а меняем объем полученного убытка...
Что скажите коллеги?

вот пример из тестера:
непрерывных проигрышей (убыток) 5 (-5595.54)
т.е. можно с уверенностью сказать, что после 5 подряд проигрышных сделок будет прибыльная!!! и тогда на этой 6 мы увеличиваем лот так, что-бы постараться перекрыть весь полученный убыток за предыдущие 5 сделок... алгоритм входа-выхода не трогаем, трогаем размер сделки!!!
Изображение
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...

Изображение

#18 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 20 February 2011 - 17:51

сам алгоритм входа выхода мы не меняем и потому не меняем количество совершенных подряд убыточных и прибыльных сделок... а меняем объем полученного убытка...
Что скажите коллеги?


Я что-то подобное и имел в виду, именно то, что "сам алгоритм входа выхода мы не меняем"(с).
Хотя в деталях техники управления "объемом полученного убытка"(с) могут быть различные...
(когда будет что показать, в графиках, я сюда нарисую)

#19 Michelangelo®

Michelangelo®

    МОРДЕ-РАПТОР

  • Профи
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1003 сообщений

Отправлено 20 February 2011 - 18:03

Я что-то подобное и имел в виду, именно то, что "сам алгоритм входа выхода мы не меняем"(с).
Хотя в деталях техники управления "объемом полученного убытка"(с) могут быть различные...
(когда будет что показать, в графиках, я сюда нарисую)

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

Изображение

#20 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 21 February 2011 - 01:05

На "хлопський розум", и то, что пишется во многих книгах для ручной или эмпирической торговли - это выглядит так: объём очередного лота открываем пропорционально текущему размеру депо... Я в одной из своих тестовых предыдущих реализаций советника (трендовый по типу Puria) сделал такой ММ: объём очередного ордера брался как фиксированный процент от текущего депозита...


Возвращаясь к этому описанию - тут у меня случилось пару свежих картинок по этому случаю, чтоб было понятнее о чём речь, я их приведу...

Условия тестирования полностью идентичные...
На левой картинке : лот каждого очередного ордера остаётся постоянным (0.1).
Параметры прогона при этом:

Чистая прибыль 353.15
Общая прибыль 919.64
Общий убыток -566.49
Прибыльность 1.62
Абсолютная просадка 113.91
Всего сделок 20


На правой картинке: как только депозит увеличивается (за счёт профитно закрытого ордера) на +20%, так и следующий ордер откоываем объёмом больше на +20%.
Параметры прогона при этом:

Чистая прибыль 291.17
Общая прибыль 1041.60
Общий убыток -750.43
Прибыльность 1.39
Абсолютная просадка 108.70
Всего сделок 20

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

Вот так заканчиваеюся улучшения алгоритмов эксперта ... "по логике" :)

Прикрепленные изображения

  • P5a_EURUSD_M15_03.gif
  • P5a_EURUSD_M15_04.gif


#21 Necron

Necron

    Пошёл в рукопашку

  • Специалист
  • PipPipPipPipPipPipPipPipPipPipPip
  • 683 сообщений

Отправлено 21 February 2011 - 18:52

Еще один интересный вариант системы MM придумал.
Сравнительно недавно заинтересовался использованием нейронных сетей, первый результат работы выложил здесь (неплохой советник получился :) ). В чем заключается суть идеи. При наличии сигнала перед открытием ордера нейросеть анализирует последние N сделок (например, 5), и затем "делает вывод" есть смысл открываться или нет. Как я уже успел заметить, если некоторая особенность присутствует, то нейросейть ее обязательно найдет. Я пока работал только с однослойными сетями, соответственно можно сделать примерно так:

    double order[5];
    double value=w0*order[0] + w1*order[1] + w2*order[2] + w3*order[3] + w4*order[4]  ;
 
 if( value > 0) {open_buy=true; open_sell=false;}
 else if(value<0)  {open_buy=false; open_sell=true;}
 else {open_buy=true; open_sell=true;}     
 if(!open_buy && type_for_order==OP_BUY) return(0);
где w0,w1,w2,w3,w4 - весовые коэффициенты, которые можно вынести для оптимизации, а
order[0-4] = OrderOpenPrice()-OrderClosePrice() к примеру, хотя можно придумать более подходящую формулу (например, учесть еще время открытия и закрытия ордера, тейкпрофит и стоплосс). Я привел лишь пример, код не проверялся, и то это лишь небольшая его часть.

Естественно можно анализировать и большее количество ордеров. Надеюсь суть идеи понятна :) .

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

PS. Я в первых рядах желающих принять участие в таком исследовании :)
  • businka и Busa это нравится
Каждый сам кузнец своей судьбы.

#22 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 21 February 2011 - 22:40

Еще один интересный вариант системы MM придумал.
...
PS. Я в первых рядах желающих принять участие в таком исследовании :)


1. Идея понятная и интересна.
Замечу только, что :
- любая алгоритмика управления размером контракта (ММ) не может применяться к любой ТС...
- где-то она будет эффективна, а где-то применение ММ просто будет вести к убытку.

2. и ещё...
Интересуясь описанном в этой теме, я немного порылся в публикациях ... и к удивлению, обнаружил какое большое значение лучшие мировые трейдеры придают именно ММ, а даже не ТС! Я не буду указывать источники (здесь не поощряют ссылки):

«Успешная торговля делает деньги. Успешная торговля с надлежащим
управлением капиталом способна создавать несметные богатства»

(с) Ларри Вильямс


- Управление капиталом - более мощный инструмент, чем любая торговая система.
- Управление капиталом является более стабильным инструментом, чем любая торговая система.


  • Kortizon это нравится

#23 Michelangelo®

Michelangelo®

    МОРДЕ-РАПТОР

  • Профи
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1003 сообщений

Отправлено 22 February 2011 - 08:58

Еще один интересный вариант системы MM придумал.
Сравнительно недавно заинтересовался использованием нейронных сетей, первый результат работы выложил здесь (неплохой советник получился :) ). В чем заключается суть идеи. При наличии сигнала перед открытием ордера нейросеть анализирует последние N сделок (например, 5), и затем "делает вывод" есть смысл открываться или нет. Как я уже успел заметить, если некоторая особенность присутствует, то нейросейть ее обязательно найдет. Я пока работал только с однослойными сетями, соответственно можно сделать примерно так:

    double order[5];
    double value=w0*order[0] + w1*order[1] + w2*order[2] + w3*order[3] + w4*order[4]  ;
 
 if( value > 0) {open_buy=true; open_sell=false;}
 else if(value<0)  {open_buy=false; open_sell=true;}
 else {open_buy=true; open_sell=true;}     
 if(!open_buy && type_for_order==OP_BUY) return(0);
где w0,w1,w2,w3,w4 - весовые коэффициенты, которые можно вынести для оптимизации, а
order[0-4] = OrderOpenPrice()-OrderClosePrice() к примеру, хотя можно придумать более подходящую формулу (например, учесть еще время открытия и закрытия ордера, тейкпрофит и стоплосс). Я привел лишь пример, код не проверялся, и то это лишь небольшая его часть.

Естественно можно анализировать и большее количество ордеров. Надеюсь суть идеи понятна :) .

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

PS. Я в первых рядах желающих принять участие в таком исследовании :)


есть у меня один советник по машкам... сама идея старая и неоднократно проверенная на практике многими... она типа даже в MQL описана как пример создания советника...
но вот показывает он не самые лучшие результаты - топчется на месте... и топчется потому, что нет ни какого управления капиталом... исследуем?

зы. к ней два индюка...

Прикрепленные файлы


Изображение
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...

Изображение

#24 Necron

Necron

    Пошёл в рукопашку

  • Специалист
  • PipPipPipPipPipPipPipPipPipPipPip
  • 683 сообщений

Отправлено 22 February 2011 - 22:38

Мик, приделал к твоему советнику фильтр, о котором я писал в 21 сообщении. О результатах по нему пока ничего сказать не могу, т.к. не оптимизировал. Долго идет тестирование, наверное из-за того, что индикаторы внешние. Если будешь оптимизировать - выложи плиз результаты.

Так как на результаты работы такого фильтра в виде нейросети хотелось посмотреть побыстрее, то набросал совсем простого советника на пересечениях двух средних (13 и 34 EMA), у каждого ордера стоплосс (100 пп), тейкпрофит (200) и... больше ничего. Риск - процент от депозита, таймфрейм - часовик, стартовый баланс - 10.000$. Прогнал за 5 лет (с 2005 до 2010). Результат (без фильтра) следующий:

Изображение

Включил фильтр, поставил обучаться сеть за пять лет (с 2005 до 2010), оптимизация прошла где-то процентов на 7, не больше (несколько суток не хочется ждать ;) ). Оптимизировались только параметры нейросети: стоплосс, тейкпрофит, риск и прочее - те же, что и в первом тесте. Результат(форвард тест за год после 450-ой сделки):

Изображение

50.000$ чистой прибыли с 10.000$ стартовых, + 32.000$ за период форвард-теста(что-то слишком хороший форвард получился, тренд отличный ;) ). Это при риске 1%, максимальный лот за время теста 1.0 (это когда баланс перевалил за 90.000$). Максимальная просадка 21%. Обучение, как уже писал, прошло только на 7 процентов, поэтому возможны и лучшие результаты, т.е. с более низкой максимальной просадкой. А вообще, когда просматривал сделки советника на графике, заметил как он благодаря нейронной сети красиво пропускает пересечения средних против тренда :) .

Нейросеть анализировала прибыль (за вычетом комиссии и свопа) по каждой из последних пяти сделок. Можно при желании и больше прикрутить.

По-моему очень неплохо получилось :) . Грааль найден ... :)

PS. Оба советника, сет для советника на пересечении средних, отчеты тестирования качаем здесь.
PPS. Нейросети меня поразили в очередной раз... Родилась еще одна идейка...
  • Michelangelo®, Afroodit, Kortizon и 2 другим это нравится
Каждый сам кузнец своей судьбы.

#25 Michelangelo®

Michelangelo®

    МОРДЕ-РАПТОР

  • Профи
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1003 сообщений

Отправлено 22 February 2011 - 23:37

... то набросал совсем простого советника на пересечениях двух средних ...
По-моему ... Грааль найден ... :)

вот и склоняюсь к тому мнению, что грааль - это не плод ночных мучений и долгих изысканий... - это код написанный за утренним кофе в уютном кафе... на салфетке... :)
  • Necron это нравится
Изображение
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...

Изображение

#26 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 24 February 2011 - 15:34

Нейросеть анализировала прибыль (за вычетом комиссии и свопа) по каждой из последних пяти сделок. Можно при желании и больше прикрутить.
По-моему очень неплохо получилось :) . Грааль найден ... :)

PS. Оба советника, сет для советника на пересечении средних, отчеты тестирования качаем здесь.
PPS. Нейросети меня поразили в очередной раз... Родилась еще одна идейка...


Уважаемый, Necron !
Очень интересное сообщение.
Взял ваши файлы посмотреть.

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

P.S.
- вообще, (IMHO!) - выкладывание и обсуждение отдельных завершённых советников, что модно стало на самых разных форумах - не есть дело сильно полезное...
- такой грааль, который подхватят все, кто ни малейшим образом не понимает ни в написании+работе советников (хоть на самом начальном уровне) - это миф, фикция...
- более того, предполагаю (!!!) если бы вы и нашли такой грааль, и его начали использовать 100000 трейдеров, то держатели ДЦ не настолько идиоты, чтобы держать их себе в убыток, и характеристики рынка сменятся так, что ваш грааль станет сливным :beer2:
- а знание того как описать ту или иную желаемую возможность в коде советника - куда полезнее и недёжнее! и тот же трейдер, если и не сам, то всегда найдёт в близком окружении кого-то, с чьей помощью настроит советник под ТС как он сам понимает.
  • Necron, Michelangelo® и Kortizon это нравится

#27 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 27 February 2011 - 13:14

ММ метод Райана Джонса - известный, хорошо описан в литературе:

Подход Райана Джонса
Этот подход состоит в фиксированной пропорции (fixed ratio) денег, которые надо сделать, чтобы подняться на один контракт. Это фиксированное отношение торгуемых контрактов к требуемому увеличению дохода.



Что-то вот такое :
 double LotBeginSize,                                      // заданный размер лота при старте
               AccountStart;                                       // размер депозита при старте
 void init() {
    AccountStart = AccountFreeMargin();       // с такого размера депозита стартуем
 ...
 }
 void start() {
    // перед открытием ордеров уточняем лот:
    double Ratio = AccountFreeMargin() / AccountStart;
    Lots = LotBeginSize * Rajan_Jones( AccountFreeMargin() / AccountStart, Delta ); 
 ...
 }
 ...
 double Rajan_Jones( double Ratio, double Delta ) {
    if( Ratio < 1.0 ) return( 1.0 );                        // только увеличение лота!
    double Curr = ( Ratio - 1.0 ) / Delta;           // число "дельт" превышения депозита
    static double Mult[] = { 
       0,   1,   3,   6,  10,                                         // Mult[i] = Mult[i-1]+i
      15,  21,  28,  36,  45,
      55,  66,  78,  91, 105,
     120, 136, 153, 171, 190   
    };
    int i, n = ArraySize( Mult );
    for( i = 1; i <  HighLim + 1; i++ ) {
       if( Curr < Mult[ i ] ) break;
    }
    return ( 1.0 + ( i - 1 ) );
 }

Результаты очень впечатляющие.
Константой Delta можно задавать "агрессивность" ММ: при Delta = 1.0 удвоение лота произзойдёт при удвоении депозита, а при Delta = 0.1 пока дело дойдёт до удвоения депозита лот увеличится в 5 раз (хорошо видно из массива в примере).
  • Kortizon это нравится

#28 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 27 February 2011 - 13:22

Что-то вот такое :


Или, кому больше нравится, так:
void start() {
   // перед открытием ордеров уточняем лот:
   double Ratio = AccountFreeMargin() / AccountStart;
   Lots = LotBeginSize * Rajan_Jones( Ratio, MM_parameter_1,
                                      MarketInfo( Symbol(), MODE_MAXLOT ) / LotBeginSize );
...
}
...
double Rajan_Jones( double Ratio, double Delta, double HighLim ) {
   if( Ratio < 1.0 ) return( 1.0 );                 // только увеличение лота!
   double Curr = ( Ratio - 1.0 ) / Delta;           // число "дельт" превышения депозита
   double Limit = 1.0;
   for( int i = 1; i <  HighLim + 1; i++ ) {
      if( Curr < Limit ) break;
      Limit += ( i + 1 );                           // 1, 3, 6, 10... X[i]=X[i-1]+i
   }
   return ( 1.0 + ( i - 1 ) );
}
Я как раз пользуюсь этим вариантом, хоть он по коду и менее наглядный.
  • Kortizon это нравится

#29 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 01 March 2011 - 01:28

Гуляя по обсуждениям, набрёл на уникальную книжку:
«Математика управления капиталом» Ральф Винс

248 стр. плотной математики (может и не особенно мудрёной), посвящённой только управлению капиталом (ММ).

Не мог удержаться не поделиться ... если это хоть одному кому-то понадобится...
Вот здесь книжку (PDF) можно свободно скачать (русский перевод):
_http://books.pchelov.com/about/matematikaupr-kapitalom.html

#30 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 01 March 2011 - 01:40

Экспериментируя с несколькими видами ММ на тестировании советника по ТС Puria (PuriaM2, потому как это не совсем Puria), вот здесь в теме:
http://fxgeneral.com...?showtopic=1488
... и глядя на ... несколько ошарашивающие картинки (2-й пост там в теме), и разбирая, что там происходит, могу высказать в виде предположения (для проработки здесь дальше в теме):

1. ТС советника и его ММ - это 2 слабо зависимые друг от друга вещи... - может быть хорошей ТС при плохом ММ и наоборот...

2. оценивать советник (его ТС) нужно только при фиксированном лоте, отключенном ММ если он есть - только так можно оцениться хорошая или плохая ТС;

3. почти к любой ТС можно прикрутить почти любую ММ, хотя могут быть и противопоказания;

4. ММ удачно добавленный к ТС во многие-многие разы увеличивает результативность ТС (ули убивает для плохой ТС) ... здесь можно и задуматься над высказываниями известнейших мировых трейдеров, что "ММ намного важнее ТС"...



Copyright © 2024 Your Company Name