Собираю команду для развития МО (Дерева решения/леса) применительно к трендовым стратегиям - страница 5

 
Yuriy Asaulenko:
Зачем- же чахнуть? Сделал - используй.
Только вот на реал рынке, Фортс, скажем, широко распространенные стратегии перестают работать. И понятно почему. Не зря же поговорка - деньги любят тишину.)

Да дело в том, что часто бывает прорыв в одном направлении, несимметричное развитие в одном направлении, а объединение знаний позволило бы улучшить ситуацию в разы.

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


P.S. А вот то что Сишка свихнулась в последнее время - факт, но там я думаю причина в выходе иностранного крупняка с рынка - перестают отрабатывать стратегии, наступает хаос...

 
Yuriy Asaulenko:
Зачем- же чахнуть? Сделал - используй.
Только вот на реал рынке, Фортс, скажем, широко распространенные стратегии перестают работать. И понятно почему. Не зря же поговорка - деньги любят тишину.)

Я бы, проверил степень супер эффективности рынка. Для этого можно и пожертвовать одной двумя рабочими стратегиями. Только вначале надо их разработать. )))

 
Aleksey Vyazmikin:

Да дело в том, что часто бывает прорыв в одном направлении, несимметричное развитие в одном направлении, а объединение знаний позволило бы улучшить ситуацию в разы.

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

Если не ошибаюсь, то мои методы вы уже знаете. Предварительный отбор по индикаторам + НС как обучаемая логика принятия решения (классификация).
Вот не вижу я здесь что-либо для коллективной работы или осмысления.
 
Aleksey Panfilov:

Я бы, проверил степень супер эффективности рынка. Для этого можно и пожертвовать одной двумя рабочими стратегиями. Только вначале надо их разработать. )))

А что там проверять? В.стакане 10 фьючей,  и я хочу их купить. Тут прибегают еще 10 чел с идентичной стратегией, и цена растет на 10 п. Все уже на входе потеряли в среднем по 5 п. Кто 1, а кто и все 10
 
Yuriy Asaulenko:
А что там проверять? В.стакане 10 фьючей,  и я хочу их купить. Тут прибегают еще 10 чел с идентичной стратегией, и цена растет на 10 п. Все уже на входе потеряли по 10 п.

А может кто первый встал, того и тапки. )))

Если цена покупки определена стратегией. А остальные вне рынка, тоже не плохо.

Эта версия подтверждается борьбой за скорость.
 
Aleksey Panfilov:

А может кто первый встал, того и тапки. )))

Если цена покупки определена стратегией. А остальные вне рынка, тоже не плохо.

В чем тогда суть коллективного творчества? В том, что надо сразу менять стратегию в охоте за тапками?
 
Yuriy Asaulenko:
В чем тогда суть коллективного творчества? В том, что надо сразу менять стратегию в охоте за тапками?

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

Крамола конечно. :(

PS.

Кстати если не заморачиваться на пятизнак, а смотреть в центах то графики так примерно и выглядят.

 
Yuriy Asaulenko:
Если не ошибаюсь, то мои методы вы уже знаете. Предварительный отбор по индикаторам + НС как обучаемая логика принятия решения (классификация).
Вот не вижу я здесь что-либо для коллективной работы или осмысления.

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

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

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

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

3. Объединяю два файла. Файл получается довольно большой, более 100 мегабайт, так как информация собирается с минуток.

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

5. Анализирую полученный результат, который выглядит примерно так:

тут смотрю информацию по каждому листу, отбираю те листы, где предсказание 1/-1 больше 1/-1 в 1,5 раза, и те где предсказание нуля больше 60%. Пытаюсь проанализировать и понять предложенное разложение. Добавлю, что 1 покупка, -1 продажа, а 0 отрицательный вариант при покупке или продаже.

6. Записываю отобранные листья дерева в виде кода, частично это выглядит так

if(Test_P==51)if(Levl_High_H4s1<4.5 && Levl_first_H4<-0.5 && DonProc<8.5 && DonProcVisota<10 && DonProcVisota>=5.5 && DonProc<9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==52)if(Levl_Close_MN1<6.5 && DonProc>=8.5 && DonProcVisota<10 && DonProcVisota>=5.5 && DonProc<9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==53)if(Levl_Close_MN1>=6.5 && DonProc>=8.5 && DonProcVisota<10 && DonProcVisota>=5.5 && DonProc<9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==54){}//!--if(Use_Filter_MA_Prirost_>=-0.5 && DonProcVisota>10 && DonProcVisota>=5.5 && DonProc<9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==55)if(DonProcVisota<7.5 && DonProc>=9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==56)if(rLevl_Up_iD_RSI<-1.5 && DonProcVisota>=7.5 && DonProc>=9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==57)if(Povtor_Low_H1>=1.5 && Povtor_Type_D1<3.5 && rLevl_Up_iD_RSI>=-1.5 && DonProcVisota>=7.5 && DonProc>=9.5 && DonProc>=7.5)BuyNow=true;                                              
if(Test_P==58)if(Levl_Close_MN1>=-4.5 && Povtor_Low_H1<1.5 && Povtor_Type_D1<3.5 && rLevl_Up_iD_RSI>=-1.5 && DonProcVisota>=7.5 && DonProc>=9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==59)if(Levl_Close_MN1<-4.5 && Povtor_Low_H1<1.5 && Povtor_Type_D1<3.5 && rLevl_Up_iD_RSI>=-1.5 && DonProcVisota>=7.5 && DonProc>=9.5 && DonProc>=7.5)BuyNow=true;
if(Test_P==60)if(Povtor_Type_D1>=3.5 && rLevl_Up_iD_RSI>=-1.5 && DonProcVisota>=7.5 && DonProc>=9.5 && DonProc>=7.5)BuyNow=true;

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

8. Из отобранных листов составляю гербарии (почти случайные леса), наделяю их правом голоса. Комбинируя разные деревья и их листья получаю примерно такой код

    SellNow=false;
    BuyNow=false;
    double CalcSell=0;
    double CalcBuy=0;
   if(Test_P!=11)if(DonProcVisota<8.5 && Levl_High_H4s1N<1.5 && DonProc<1.5)CalcSell=CalcSell+1; //--35/10
   if(Test_P!=13)if(Levl_Low_D1s1<-4.5 && DonProcVisota>=8.5 && DonProc>=1.5)CalcSell=CalcSell+1; //--51/20
   if(Test_P!=26)if(Levl_Support_MN1>=5.5 && Levl_High_H4s1N<6.5 && Levl_Low_D1>=-3.5 && Povtor_Low_H1>=-1.5 && Levl_High_H1s1N>=-7.5 && Levl_Low_D1s1>=-7.5 && Levl_Close_H1<1.5 && Part_H4<3.5 && TimeHG>=2.5 && Levl_Close_H1>=0)CalcSell=CalcSell+1;//46/13 -- 5

   if(Test_P!=3) if(Levl_Low_H4s1N<5.5 && Levl_Low_W1s1N>=-0.5 && DonProcVisota<3.5 && DonProc>=7.5)CalcBuy=CalcBuy+1; //--14/29
   if(Test_P!=15)if(Levl_Low_H4s1N<5.5 && Levl_Close_W1s1>=2.5 && DonProcVisota<3.5 && DonProc>=7.5)CalcBuy=CalcBuy+1; //--14/30
   if(Test_P!=42)if(Levl_Support_H1s1<-5.5 && LastBarPeresekD_Down<6.5 && Regressor_3D>=-1.5 && TimeHG<1.5 && DonProcVisota>=4.5 && DonProc>=2.5 && DonProc<7.5)CalcBuy=CalcBuy+1;
   if(Test_P!=53)if(Levl_Close_MN1>=6.5 && DonProc>=8.5 && DonProcVisota<10 && DonProcVisota>=5.5 && DonProc<9.5 && DonProc>=7.5)CalcBuy=CalcBuy+1;
   if(Test_P!=55)if(DonProcVisota<7.5 && DonProc>=9.5 && DonProc>=7.5)CalcBuy=CalcBuy+1;


if((CalcSell>0 || CalcBuy>0) && CalcSell/(3+0)>CalcBuy/(5+0) && CalcSell>0)SellNow=true;
if((CalcSell>0 || CalcBuy>0) && CalcSell/(3+0)<CalcBuy/(5+0) && CalcBuy>0)BuyNow=true;
   

if(Test_P!=80)if (Vektor_Don_M15==1 && Vektor_Don==-1 && LastBarPeresekD_Down_M15<5){SellNow=false;}
if(Test_P!=81)*/if (Vektor_Don_M15==-1 && Vektor_Don==1 && LastBarPeresekD_Up_M15<5){BuyNow=false;}
if(Test_P!=82)if (Vektor_Don==1  && LastBarPeresekD_Down>6 && LastBarPeresekD_Up>4){BuyNow=false;}
if(Test_P!=83)*/if (Vektor_Don==-1 && LastBarPeresekD_Up>6 && LastBarPeresekD_Down>4){SellNow=false;}
if(Test_P!=84)*/if (Levl_Close_H1>7 ||Levl_Close_H1<-7){BuyNow=false; SellNow=false;}
if(Test_P!=85)*/if (Levl_Close_H4>7 ||Levl_Close_H4<-7){BuyNow=false; SellNow=false;}
if(Test_P!=86)if (Levl_Close_D1>6  && TimeHG==1)BuyNow=false; 
if(Test_P!=87)if (Levl_Close_D1<-6 && TimeHG==1)SellNow=false; 

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

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

Соответственно, я считаю, что надо сконцентрироваться на поиске этих вот листьев. А для этого и нужно двинуться по предложенным мной векторам.


Кстати, планирую перебор графов(комбинаций) дерева делать с применением GPU, если кто может в этом помочь - добро пожаловать.

 
Yuriy Asaulenko:
В чем тогда суть коллективного творчества? В том, что надо сразу менять стратегию в охоте за тапками?

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

 
Aleksey Vyazmikin:

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

На Фортс по заданной цене вполне может не хватить, если по одной стратегии будут работать даже неск. человек.
За форекс не скажу, но подозреваю нечто подобное.