Помогите оптимизировать код советника, а то в файл инфу не пишет. - страница 5

 

2 Alfa Ваше исследование(хорошо что присоединились) смахивает на комбинационный анализ. Чуть раньше я Вам дал ссылочку, там наш скрипт автоматически выбирает все прибыльные комбинации и к тому же сразу выкидывает в файл готовый код эксперта(без ММ!). Такой подход скорее всего будет прибыльный только на EURUSD, и то не факт...

2 Mathemat спасиба за поддержку и советы! На счёт значимости, есть чуть-чуть(не хватает), но все же выборка была большой примерно 11000 баров, к тому же сам наблюдал когда выборка была маленькой 40-30, но на 2-м интервале стационарность сохранялась(почти без изменений)...

А теперь на счёт кодировки: лично я не вдаваясь особенно в подробности считаю её абсолютно не правильной, но обще доступные эксперименты всё равно сделаю по этой кодировке, может кому помогут(будет ещё 3-я часть, а возможно и 4-я если Вы поможите Mathemat, я потом скажу чем).

 
Mathemat писал (а) >>

Нашел наконец-таки принцип кодирования свечей в индюкаторе: http://grs.narod.ru/litera/japan/indjapan.htm . Откровенно говоря, не вижу в таком кодировании обычных свечей особого смысла и скромно присоединяюсь к Виктору.

StatBars, ты силен. Но статистика все же маловата (ей не хватает значимости). Грубо говоря, чем меньше выборка, тем больше в ней вероятность больших отклонений, в том числе и таких вот "дрейфов удачи". Что можно сделать?

В кодировке по Лиховидову 128 возможных состояний, формирующихся довольно произвольно. Попробуй извратить мысль так, чтобы снизить количество состояний. Каково количество возможных комбинаций из 4 свечек? 128^4 = 2^28 ~ 268 миллионов! И как мы будем анализировать такой океан?!

Затравка: теоретически можно свести классификацию подавляющего числа баров к предельно лаконичной, т.е. 0 и 1 (точнее, +-1, т.е. "вверх-вниз"). Ну а если все же учитывать размер какой-то части бара по классификации Лиховидова, то каждому бару будут соответствовать 8 состояний, а не 128. А 8^4 ~ 4000. Комбинационный взрыв все равно будет, но он не будет таким жутким.

P.S. по поводу классификации "+-1": информация, жизненно важная для ТС, при этом практически не будет теряться, так как направление тела бара будет практически единственным его параметром, характеризующим его почти полностью.

На самом деле получается не 128 возможных состояний, а 112. В кодирование заложена некая избыточность.

Хотя это совершенно не ваожно.

 
StatBars писал (а) >>

2 Alfa Ваше исследование(хорошо что присоединились) смахивает на комбинационный анализ. Чуть раньше я Вам дал ссылочку, там наш скрипт автоматически выбирает все прибыльные комбинации и к тому же сразу выкидывает в файл готовый код эксперта(без ММ!). Такой подход скорее всего будет прибыльный только на EURUSD, и то не факт...

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

Вот если бы прогнать каку-то комбинацию на разных валютах, чтоб около 1000 раз эта комбинация на истории повторялась (по Mathemat) и вероятностьприбыли была бы больше 60%...

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

 

3_часть заключается в том, что мы будем рассматривать статистику уже 2-х комбинаций или больше, таким способом: допустим 1 свеча на графике имеет код 40, 2 - 80, 3 - 10, скрипт(который прилагается) делает те же вычисления что и в части 2, только собирает статистику по кимбинации 40_80 и 80_10 причём прогонозируемый бар остаётся прежним 0 для обоих комбинаций. таким образом делаем сдвиг на 1 бар по второй комбинации(параметр shift)

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

Кстати я не говорил что в скрипте идёт округление кодов свечек до десятков?, если что имейте ввиду. итого кодов 14... вместо 130

Файлы:
 
StatBars писал (а) >>

3_часть заключается в том, что мы будем рассматривать статистику уже 2-х комбинаций или больше, таким способом: допустим 1 свеча на графике имеет код 40, 2 - 80, 3 - 10, скрипт(который прилагается) делает те же вычисления что и в части 2, только собирает статистику по кимбинации 40_80 и 80_10 причём прогонозируемый бар остаётся прежним 0 для обоих комбинаций. таким образом делаем сдвиг на 1 бар по второй комбинации(параметр shift)

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

Кстати я не говорил что в скрипте идёт округление кодов свечек до десятков?, если что имейте ввиду. итого кодов 14... вместо 130

Я бы все таки по ЗЗ расчеты делал. Определял верятности продолжения и разворота.

Должно бы ло бы лучше получаться.

И для анализа брал не всю историю доступную, а более близкую часть. А то по истории грааль будет, а в работе слив.

С таким подходом на истории у меня получался отличный грааль.

Да и часть истории надо оставлять для проверки гипотезы.

 
StatBars писал (а) >>

3_часть заключается в том, что мы будем рассматривать статистику уже 2-х комбинаций или больше

Разрешите и я вставлю свои "аппликации":

Суть. На каждом баре

- выгружаем до 15ти свечей назад (iCustom(NULL,0,"to_ind_CandlCode_ICS",0,i))

- Выгружаем iHigh(iHighest) - Close[i] и iLow(iLowest) - Close[i] на некоторое число баров вперед (горизонт прогнозирования)

Т.к. гранта на исследования никто мне не давал, :) то, "по быстрому", строим Карты Кохонена.

Суть картинок - выделяем "кластеры" цветом. В частности нас интересуют наиболее красные зоны dfHighest и наиболее синие зоны dfLowest и "проекция их" на "входы", т.е. значения предыдущих кодов свечей.

(EURUSD M30 за 2007г. "Горизонт прогнозирования" - 5 баров. При прогоне советников - качество - 90%, количество баров рассогласования - 0)

Пять прошлых свечей:

Две прошлые свечи:

Три прошлых свечи и одна будущая:

ЗЫ. Последний рисунок прокомментирую:

Если мы обведем, например, "наиболее красные" области на рисунке "nextCandle", то на остальных рисунках будут выделены области с разными цветами, т.е. кодами предыдущих свечей. Получается, что для однохначного "цвета" будущей свечи нет однозначных комбинаций "цветов" предыдущих трех свечей.

'

Остальные варианты не привожу, т.к. получается еще большая "пестрота".

Из чего делаю, может быть не обоснованный, вывод - "коды свечей по Лиховидову" не ... "коллелируют с прибылью или значением следующей свечи".

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

"Перпендикулярность" цветовых зон ... "четных и нечетных свечей назад" тоже что-то навевает, но, имхо, нечто не профитное. :)

Справедливости ради надо отметить, что ошибка "Training Errors" была великовата. Никаких "предобработок" не делал.

:(

 
StatBars писал (а) >>

3_часть заключается в том, что мы будем рассматривать статистику уже 2-х комбинаций или больше, таким способом: допустим 1 свеча на графике имеет код 40, 2 - 80, 3 - 10, скрипт(который прилагается) делает те же вычисления что и в части 2, только собирает статистику по кимбинации 40_80 и 80_10 причём прогонозируемый бар остаётся прежним 0 для обоих комбинаций. таким образом делаем сдвиг на 1 бар по второй комбинации(параметр shift)

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

Кстати я не говорил что в скрипте идёт округление кодов свечек до десятков?, если что имейте ввиду. итого кодов 14... вместо 130

Ну вот, кое что вырисовывается на Н4 GBPUSD:

___

Комбинация_кодов_2_4 Количество_случаев_=_175.00000000

Вероятность_выпадения_кода_выше_65_=_60.57142857

Вероятность_выпадения_кода_ниже_65_=_39.42857143

___

Комбинация_кодов_3_4 Количество_случаев_=_142.00000000

Вероятность_выпадения_кода_выше_65_=_62.67605634

Вероятность_выпадения_кода_ниже_65_=_37.32394366

___

Комбинация_кодов_3_9 Количество_случаев_=_144.00000000

Вероятность_выпадения_кода_выше_65_=_61.11111111

Вероятность_выпадения_кода_ниже_65_=_38.88888889

___

Комбинация_кодов_10_9 Количество_случаев_=_176.00000000

Вероятность_выпадения_кода_выше_65_=_39.77272727

Вероятность_выпадения_кода_ниже_65_=_60.22727273

___

Комбинация_кодов_2_11 Количество_случаев_=_136.00000000

Вероятность_выпадения_кода_выше_65_=_61.76470588

Вероятность_выпадения_кода_ниже_65_=_38.23529412

___

Комбинация_кодов_9_12 Количество_случаев_=_114.00000000

Вероятность_выпадения_кода_выше_65_=_39.47368421

Вероятность_выпадения_кода_ниже_65_=_60.52631579

___

Думаю остальные результаты не представляют интереса т.к. либо количество случаев маленькое, либо вероятность близка к 50%. Можно конечно спуститься на более мелкий ТФ и посмотреть как там.

Спасибо, StatBars!

 
SergNF, в силу своей узости познаний в статистических методах, ничего не могу сказать о твоем исследовании. Мы же русские, пока сами не удостоверимся не поверим :))) .
 
Alfa писал (а) >>

Ну вот, кое что вырисовывается на Н4 GBPUSD:

___

Комбинация_кодов_2_4 Количество_случаев_=_175.00000000

Вероятность_выпадения_кода_выше_65_=_60.57142857

Вероятность_выпадения_кода_ниже_65_=_39.42857143

___

Комбинация_кодов_3_4 Количество_случаев_=_142.00000000

Вероятность_выпадения_кода_выше_65_=_62.67605634

Вероятность_выпадения_кода_ниже_65_=_37.32394366

___

Комбинация_кодов_3_9 Количество_случаев_=_144.00000000

Вероятность_выпадения_кода_выше_65_=_61.11111111

Вероятность_выпадения_кода_ниже_65_=_38.88888889

___

Комбинация_кодов_10_9 Количество_случаев_=_176.00000000

Вероятность_выпадения_кода_выше_65_=_39.77272727

Вероятность_выпадения_кода_ниже_65_=_60.22727273

___

Комбинация_кодов_2_11 Количество_случаев_=_136.00000000

Вероятность_выпадения_кода_выше_65_=_61.76470588

Вероятность_выпадения_кода_ниже_65_=_38.23529412

___

Комбинация_кодов_9_12 Количество_случаев_=_114.00000000

Вероятность_выпадения_кода_выше_65_=_39.47368421

Вероятность_выпадения_кода_ниже_65_=_60.52631579

___

Думаю остальные результаты не представляют интереса т.к. либо количество случаев маленькое, либо вероятность близка к 50%. Можно конечно спуститься на более мелкий ТФ и посмотреть как там.

Спасибо, StatBars!

Да я то видел это... Если Mathemat помогёт, то будем искать дальше(я то и сам могу формулу найти, но боюсь сделать ошибку).

2 SergNF грант на исследования мне тоже никто не давал... Самый лучший грант на всю жизнь это "удачно" закончившееся исследование рынка

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

 

Не могу я тебе помочь, StatBars. Теоретические оценки тут надо делать крайне осторожно, так как бары, вообще говоря, могут быть зависимыми, и простым умножением вероятностей тут не обойтись.

Причина обращения: