![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
leonid553 |
![]()
Сообщение
#111
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
А я вот пока задумался о просадке.
![]() Пожалуй, борьба с просадкой будет важнее и потяжелее, чем наращивание прибыли! В наращивании прибыли мы (скромно замечу) достигли некот. успеха. Но вот просадка.... ![]() Особенно это касается Фуя и GBP/CHF. Эти "финансовые инструменты" крайне тяжело оптимизируются на большой истории. И спред здесь, явно, оставляет желать лучшего. На короткой истории, - проблем нет, - но нет и смысла в такой работе... Подкачал чуток истории по USD/CHF на м30. Взял версию с "разумным" тралом по стохастику. Добавил контрольные точки и сделал у стохастика большой период. Контрольные точки подтянул поближе к текущему моменту. Цель была - (не повышение прибыли а) - увеличить число профитных входов (сделок), и уменьшить просадку. Вот результат : Символ USDCHF (Swiss Franc vs US Dollar) Период 30 Минут (M30) 2005.12.27- 2007.04.27 -------------------------------------------------------------------------------------------- Параметры Stochastic_period=19; slowing=4; x0=114; x1=67; x2=107; x3=96; x4=106; x5=112; ks=0; kb=0; sl=61; lots=0.1; P_0=0; P_1=1; P_2=3; P_3=5; P_4=7; P_5=9; UseTrailing=true; ProfitTrailing=true; TrailingStop=39; TrailingStep=10; Начальный депозит 10000 Чистая прибыль +3530 Общая прибыль +7948. Общий убыток -4418 Абсолютная просадка 10.12 Максимальная просадка 343.09 (2.70%) Относительная просадка 2.70% (343.09) Всего сделок 264 Короткие позиции (% выигравших) 119 (64.71%) Длинные позиции (% выигравших) 145 (67.59%) Прибыльные сделки (% от всех) 175 (66.29%) Убыточные сделки (% от всех) 89 (33.71%) Самая большая прибыльная сделка 275.78 убыточная сделка -57.46 Средняя прибыльная сделка 45.42 убыточная сделка -49.64 --------------------------------------------------------------------------------------------------- Прибыльных сделок здесь ровно в два раза больше чем убыточных - для отсечки! Ну а просадка - порадовала! - всего -340 ! Вот кандидат для тестирования на демо! График баланса : Эскизы прикрепленных изображений |
leonid553 |
![]()
Сообщение
#112
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Предположим, я хочу ввести дополнительное условие на изначальный вход.
Допустим, я желаю, чтобы вход был только тогда, - когда текущее значение индикатора совпадало по знаку с текущим значением перцептрона (от этого-же индюка) Значение индюка уже есть внутри функции перцептрона: double a0 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,P_0); Видимо его надо оттуда взять. Или просто добавить ещё раз эту строку в условие входа? - ---------------------------------------------------------------------------------- // check for long or short position possibility double a0 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,0); // открываем длинную позицию if((perceptron() > 0) && (a0 > 0) ) { //long ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Bid - sl * Point, 0, "FI", MagicNumber, 0, Blue); if(ticket < 0) { Sleep(30000); prevtime = Time[1]; } } else // иначе - короткую { // short -------------------------------------------------------------------------------------------------- Правильно так будет? |
NoName |
![]()
Сообщение
#113
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Да, правильно. Но лучше для индикатора в основном коде использовать другую переменную, отличную от переменной в функции перцептрон. Например, вот так:
Код // check for long or short position possibility double fisher0 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,0); // открываем длинную позицию if((perceptron() > 0) && (fisher0 > 0) ) { ... } |
leonid553 |
![]()
Сообщение
#114
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Понял! Благодарю!
|
leonid553 |
![]()
Сообщение
#115
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
В свете последних событий на счете , т.е. поведения советника в последних сделках - обнаружилось следующее:
Цена дошла до уровня (sl*2 +spread) и ... развернулась! - против нас! Профит не успел зафиксироваться, - т.к. он (профит) фиксируется только по цене открытия новой свечи! И мы далее получаем закрытие "по мизеру", вместо ожидаемого "фрика" Насколько часто так бывает? Предполагаю, что - нередко! И тем обиднее ситуация! Мы, - находясь в профитной зоне, упускаем то, - что обязаны брать! Как с этим бороться? В версии с лотами это будет излишне канительно. А вот в версии с ордерами, - тут возможно будет проще! Выделить второй ордер из цикла, - чтобы он "жил" своей жизнью и задать для него свои ТП и СЛ. Причем работать второй ордер должен не по ценам открытия, - а по тикам. Тогда мы можем оптимизировать параметры ТП и СЛ, - и Таким образом существенно увеличить общий профит, - без увеличения просадки!!!!!, - т.к. работа здесь идет только в профитной зоне! |
NoName |
![]()
Сообщение
#116
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Честно говоря, я сейчас сознательно пытаюсь уйти от всех тиков. Главная причина - это отсутствие возможности нормальной оптимизации по причине отсутствия минутных данных за большой период. Сейчас мне хочется попробовать реализовать срабатывание советника не по открытию бара на "рабочем" (в нашем случае Н1) таймфрейме, а по открытию бара меньшего периода. Например М15 или даже М5. Тогда останется возможность тестирования и оптимизации на "Контрольных точках", но правда глубина истории по вышеназванным ТФ так же не велика.
|
leonid553 |
![]()
Сообщение
#117
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
166 СДЕЛОК В ПЕРВОЙ ВЕРСИИ закрылись с профитом +80. Но все др. сделки из этих 166-ти уже имея профит +80. пошли дальше (перцептрон не изменил значения) . При этом стоплосс у нас передвинулся "на мизер"! Далее цена прошла ещё +80 (профит стал 80+80=160) - , но перцептрон не изменил значения ! (те сделки ,где перц. изменился я учел - их 57 и профит у них >=160). Стоп лосс в этот момент полнялся уже на след. ступень - см. рис. Значит, имея профит уже 80+80=160 эти сделки пошли дальше, но тут цена повернулась против нас и вернулась к уровню последнего стоплосса и закрылись +80! - см. син. стрелку на рис. Вот эти-то сделки из 166-и и надо нам отсечь! - отсечь с профитом = +160 !!!!!!!!!!! Сколько их? Вопрос интересный! А ведь их немало! Пусть даже их всего лишь половина, или даже треть от 166-и. Но их профит= +160 !!! А дополнительная просадка при этом останется = -1200 Можно сделать счетчик и их подсчитать, но проЩе вместо счетчика предусмотреть в коде советника третий лот (с отсечкой) и выяснить этот вопрос практически! Подсчитал! Таких сделок на истории с июля 2004 оказалось 44 Мы теряем примерно 44*(+160)-просадка = 44(+160)-1200 |
leonid553 |
![]()
Сообщение
#118
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Перелопатил десятки (без приувеличения) индикаторов,- чтобы использавать их как дополнительный фильтр к перцептрону.
И убедился в бесперктивности такого подхода. В лучшем случае, - профитность системы не уменьшается! В силу (скажем так) случайности сигналов выдаваемых перцептроном на вход . Конечно, совсем уж случайными их назвать нельзя, - но тем не менее. Сигналы выдаются по признакам, - которые я ну никак не могу отследить по индикатору-перцептрону. Видимо, при оптимизации подгонкой улавливается некая статистическая закономерность. При добавке фильтров-индикаторов уменьшается (бывает в разы) и число сделок, а значит уменьшается достоверность. Технические способы мы , пожалуй , уже все исчерпали! Таким образом, остаются чисто логические приемы увеличения общей прибыли, - как мы уже проделали с Отсечкой! Для уменьшения просадки и даже небольшого увеличения прибыли, мне представляется перспективным добавить локирование позиций в убыточной зоне. особенно привлекательно выглядит локирование при трендовом рынке и активном флете, - т.к. советник частенько работает наоборот в таких ситуациях. Начал вникать в технику локов.... ------------------------------------------------------------------------ Интересно, - работают ли на графике баланса линии сопротивления и поддержки? Эскизы прикрепленных изображений |
NoName |
![]()
Сообщение
#119
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
А мне пока что видится использование вместо перцептрона сигналов настоящей нейросети. Надежду возлагаю на то что сигналы будут не столь случайными. А вот какую сеть использовать - пока не решил. Или создать в нейрошеле, или использовать наработки klot'а.
Но в любом случае, сейчас на это пока нет времени. Советник, который крутился на демо на этой неделе, видимо, удачно попал в "такт". Интересно как закроется последняя сделка, оставшаяся с пятницы в плюсе? Цитата Интересно, - работают ли на графике баланса линии сопротивления и поддержки? А это ещё зачем? ![]() |
leonid553 |
![]()
Сообщение
#120
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Ну как зачем !
Видим, ![]() А отскок вверх от поддержки, - опять включаем....! ![]() |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 4.8.2025, 7:08 |