экспромт на тему ММ
#16
Отправлено 20 February 2011 - 00:19
http://fxgeneral.com...indpost&p=14384
Особенно для трендовых советников.
Когда у меня будут готовы сравнительные картинки посмотреть - выложу сюда.
 
#17
Отправлено 20 February 2011 - 16:11
и так... что такое робот - это некий алгоритм открытия-закрытия сделок... написали, прогнали в тестере сам алгоритм и видим, некое количество непрерывных прибыльных и убыточных сделок... т.е. на некотором историческом промежутке времени было подряд 4 прибыльных и 1 убыточная сделка, что нам говорит о том, что согласно нашего алгоритма действий не может быть более одной убыточной сделки подряд... вот тут то мы и подключаем ММ, т.е. зная о том, что после убыточной сделки идет обязательно прибыльная мы увеличиваем лот, а то что после прибыльной идет с вероятностью 20-25% убыточная мы уменьшаем лот... тем самым коррелируя полученный убыток...
сам алгоритм входа выхода мы не меняем и потому не меняем количество совершенных подряд убыточных и прибыльных сделок... а меняем объем полученного убытка...
Что скажите коллеги?
вот пример из тестера:
непрерывных проигрышей (убыток) 5 (-5595.54)
т.е. можно с уверенностью сказать, что после 5 подряд проигрышных сделок будет прибыльная!!! и тогда на этой 6 мы увеличиваем лот так, что-бы постараться перекрыть весь полученный убыток за предыдущие 5 сделок... алгоритм входа-выхода не трогаем, трогаем размер сделки!!!
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#18
Отправлено 20 February 2011 - 17:51
сам алгоритм входа выхода мы не меняем и потому не меняем количество совершенных подряд убыточных и прибыльных сделок... а меняем объем полученного убытка...
Что скажите коллеги?
Я что-то подобное и имел в виду, именно то, что "сам алгоритм входа выхода мы не меняем"(с).
Хотя в деталях техники управления "объемом полученного убытка"(с) могут быть различные...
(когда будет что показать, в графиках, я сюда нарисую)
#19
Отправлено 20 February 2011 - 18:03
у д... (коллег) мысли сходятся...Я что-то подобное и имел в виду, именно то, что "сам алгоритм входа выхода мы не меняем"(с).
Хотя в деталях техники управления "объемом полученного убытка"(с) могут быть различные...
(когда будет что показать, в графиках, я сюда нарисую)
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#20
Отправлено 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
Вот так заканчиваеюся улучшения алгоритмов эксперта ... "по логике"
#21
Отправлено 21 February 2011 - 18:52
Сравнительно недавно заинтересовался использованием нейронных сетей, первый результат работы выложил здесь (неплохой советник получился ). В чем заключается суть идеи. При наличии сигнала перед открытием ордера нейросеть анализирует последние 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
Отправлено 21 February 2011 - 22:40
Еще один интересный вариант системы MM придумал.
...
PS. Я в первых рядах желающих принять участие в таком исследовании
1. Идея понятная и интересна.
Замечу только, что :
- любая алгоритмика управления размером контракта (ММ) не может применяться к любой ТС...
- где-то она будет эффективна, а где-то применение ММ просто будет вести к убытку.
2. и ещё...
Интересуясь описанном в этой теме, я немного порылся в публикациях ... и к удивлению, обнаружил какое большое значение лучшие мировые трейдеры придают именно ММ, а даже не ТС! Я не буду указывать источники (здесь не поощряют ссылки):
(с) Ларри Вильямс«Успешная торговля делает деньги. Успешная торговля с надлежащим
управлением капиталом способна создавать несметные богатства»
- Управление капиталом - более мощный инструмент, чем любая торговая система.
- Управление капиталом является более стабильным инструментом, чем любая торговая система.
- Kortizon это нравится
#23
Отправлено 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
Отправлено 22 February 2011 - 22:38
Так как на результаты работы такого фильтра в виде нейросети хотелось посмотреть побыстрее, то набросал совсем простого советника на пересечениях двух средних (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
Отправлено 22 February 2011 - 23:37
вот и склоняюсь к тому мнению, что грааль - это не плод ночных мучений и долгих изысканий... - это код написанный за утренним кофе в уютном кафе... на салфетке...... то набросал совсем простого советника на пересечениях двух средних ...
По-моему ... Грааль найден ...
- Necron это нравится
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#26
Отправлено 24 February 2011 - 15:34
Нейросеть анализировала прибыль (за вычетом комиссии и свопа) по каждой из последних пяти сделок. Можно при желании и больше прикрутить.
По-моему очень неплохо получилось . Грааль найден ...
PS. Оба советника, сет для советника на пересечении средних, отчеты тестирования качаем здесь.
PPS. Нейросети меня поразили в очередной раз... Родилась еще одна идейка...
Уважаемый, Necron !
Очень интересное сообщение.
Взял ваши файлы посмотреть.
Появилось у меня предложение-пожеелание:
- я как-то давно занимался обучаемыми нейросетями, но для совсем других целей...
- и что-то влёт не соображу, как вы их прикручиваете к форекс-советникам ... но посмотрю по коду;
- но подумалось (это и есть предложение-пожеелание), что было бы крайне полезно - более детально пообсуждать технику применения нейросетей ... начиная с того, чтобы вы рассказали как вы это понимаетет и делаете...
- и, наверное, это было бы полезно (и многим участникам форума полезно) - сделать не в этой теме, а отдельной новой темой, вопрос того вполне заслуживает!
P.S.
- вообще, (IMHO!) - выкладывание и обсуждение отдельных завершённых советников, что модно стало на самых разных форумах - не есть дело сильно полезное...
- такой грааль, который подхватят все, кто ни малейшим образом не понимает ни в написании+работе советников (хоть на самом начальном уровне) - это миф, фикция...
- более того, предполагаю (!!!) если бы вы и нашли такой грааль, и его начали использовать 100000 трейдеров, то держатели ДЦ не настолько идиоты, чтобы держать их себе в убыток, и характеристики рынка сменятся так, что ваш грааль станет сливным
- а знание того как описать ту или иную желаемую возможность в коде советника - куда полезнее и недёжнее! и тот же трейдер, если и не сам, то всегда найдёт в близком окружении кого-то, с чьей помощью настроит советник под ТС как он сам понимает.
- Necron, Michelangelo® и Kortizon это нравится
#27
Отправлено 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
Отправлено 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
Отправлено 01 March 2011 - 01:28
«Математика управления капиталом» Ральф Винс
248 стр. плотной математики (может и не особенно мудрёной), посвящённой только управлению капиталом (ММ).
Не мог удержаться не поделиться ... если это хоть одному кому-то понадобится...
Вот здесь книжку (PDF) можно свободно скачать (русский перевод):
_http://books.pchelov.com/about/matematikaupr-kapitalom.html
#30
Отправлено 01 March 2011 - 01:40
http://fxgeneral.com...?showtopic=1488
... и глядя на ... несколько ошарашивающие картинки (2-й пост там в теме), и разбирая, что там происходит, могу высказать в виде предположения (для проработки здесь дальше в теме):
1. ТС советника и его ММ - это 2 слабо зависимые друг от друга вещи... - может быть хорошей ТС при плохом ММ и наоборот...
2. оценивать советник (его ТС) нужно только при фиксированном лоте, отключенном ММ если он есть - только так можно оцениться хорошая или плохая ТС;
3. почти к любой ТС можно прикрутить почти любую ММ, хотя могут быть и противопоказания;
4. ММ удачно добавленный к ТС во многие-многие разы увеличивает результативность ТС (ули убивает для плохой ТС) ... здесь можно и задуматься над высказываниями известнейших мировых трейдеров, что "ММ намного важнее ТС"...