Будет ли хорошая стратегия работать на случайно сгенерированных данных? - страница 7

 
Putnik #:

Стратегия предполагает наличие/поиск закономерностей. Случайность, предполагает отсутствие закономерностей. На вопрос "Будет ли стратегия работать?", думаю - нет.

Putnik #:

Всегда считал подбрасывание монеты случайностью

Putnik #:

Закономерность, в моем случае, повторяемость. При определенных входных данных, последующий ход событий, одинаков.

Речь идёт о вероятностном исходе события, на которое могут повлиять не учтённые факторы, что приведёт к его не свершению. Или у Вас стратегии имеют всегда профит 100%?

Облака генерируются случайным образом (на их генерацию влияет множество факторов, не поддающихся учёту), но иногда мы видим в них закономерные черты земных объектов, т.е. статистически мы наблюдаем похожий паттерн, описывающий объект. Но, по факту он не является этим объектом.

 
Grigori.S.B #:

Что значит "случайное появление закономерностей"?
Если закономерность есть, то она уже не случайна.

Закономерность Вы определяется с помощью статистики, или у Вас иной метод?

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

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

 
Не путайте случайную генерацию с белым шумом.
 

Обучил я ещё модели на разделение часовых баров EURUSD и GBPUSD. Если кратко, то разделение происходит успешно, что ставит другой вопрос "Должны ли ТС работать на разных инструментах" и "Тождественно ли изменение торгового инструмента изменению на случайно сгенерированные котировки"? В общем, вопрос в том, что объединяет разные котировки, если их вообще что-то объединяет...

Теперь подробней. Я решил обучать модели с таким составом предикторов (точней исключением):

  • Test_CB_Setup_0_000000000 - Без исключений - Accuracy 0,99
  • Test_CB_Setup_0_000000001 - Исключили ATR, Volume и iDelta - Accuracy 0,99
  • Test_CB_Setup_0_000000002 - Исключили ATR, iDelta, Volume и OHLC типа - Accuracy 0,99
  • Test_CB_Setup_0_000000003 - Исключили всё, кроме осцилляторов, за исключением ATR и Volume - Accuracy 0,63

В таблице ниже предикторы для каждой настройки, которым отдала предпочтение модель с Seed=0

Смотря на последний столбец, где обучались по осцилляторам, я решил получше изучить эти индикаторы, как они там считаются, и оказалось, что iVIDyA вовсе не осциллятор, а индикатор типа скользящего среднего, который фактически записывал цены в выборку, что могло способствовать детекции свой-чужой. А так же оказалось, что iBWMFI и iChaikin используют объёмы, что так же может способствовать детекции двух разных чартов. В общем, решил исключить я эти три типа индикатора, убрав предикторы на их основе и обучиться опять:

  • Test_CB_Setup_0_000000004 - Исключили ATR, Volume и iDelta + iVIDyA, iBWMFI, iChaikin - Accuracy 0,99
  • Test_CB_Setup_0_000000005 - Исключили ATR, iDelta, Volume и OHLC типа + iVIDyA, iBWMFI, iChaikin - Accuracy 0,99
  • Test_CB_Setup_0_000000006 - Исключили всё, кроме осцилляторов, за исключением ATR и Volume + iVIDyA, iBWMFI, iChaikin - Accuracy 0,85

В таблице ниже предикторы для каждой настройки, которым отдала предпочтение модель с Seed=0

Смотря на последний столбец, видим очень хороший пример того, как одни предикторы могут мешать другим обучаться, исключение привело к значительному улучшению результата в виде показателя  Accuracy, который стал 0,85 против прошлого 0,63 на выборке exam! Т.е. модель ранее находила наиболее статистически значимые закономерности на периоде train, которые на самом деле не подтвердились временем. Отмечу, что значимость предикторов в модели зависит, как от структуры модели, так и от входящих данных, на которых применяется модель. Удивляет значимость стохастика на M1, кто бы мог подумать...

По поводу Setup 4 и 5 (так же как и 2 и 3), можно отметить, что предикторов остаётся ещё достаточно, что бы показывать высокий результат. Глубокого разбора их я делать не буду тут, а лишь отмечу, что значимым оказался Povtor_Type_M1, в котором происходит подсчёт числа повторений баров одного типа (растущий и падающий), и одна из стратегий ранее была построена на этом принципе - что-то есть уникальное в последовательности баров.

Интересно, сколько минимум нужно предикторов, что бы описывать выделяющую уникальность конкретного чарта?

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

  • Test_CB_Setup_0_000000000 - Без исключений - Accuracy 0,99
  • Test_CB_Setup_0_000000001 - Исключили ATR, Volume и iDelta - Accuracy 0,99
  • Test_CB_Setup_0_000000002 - Исключили ATR, iDelta, Volume и OHLC типа - Accuracy 0,98
  • Test_CB_Setup_0_000000003 - Исключили всё, кроме осцилляторов, за исключением ATR и Volume - Accuracy 0,65
  • Test_CB_Setup_0_000000004 - Исключили ATR, Volume и iDelta + iVIDyA, iBWMFI, iChaikin - Accuracy 0,99
  • Test_CB_Setup_0_000000005 - Исключили ATR, iDelta, Volume и OHLC типа + iVIDyA, iBWMFI, iChaikin - Accuracy 0,99
  • Test_CB_Setup_0_000000006 - Исключили всё, кроме осцилляторов, за исключением ATR и Volume + iVIDyA, iBWMFI, iChaikin - Accuracy 0,88
 
Aleksey Vyazmikin #:

Закономерность Вы определяется с помощью статистики, или у Вас иной метод ?


Статистика - это , конечно, хорошо..., но не достаточно ...

Закономерность, если она есть, должна вписываться в ТЕОРИЮ прибыльной торговли.

ТЕОРИЯ, в свою очередь, должна быть понятна без всякой статистики...

Статистика нужна для подтверждения теории уже на следующем этапе...

 
Serqey Nikitin #:

Статистика - это , конечно, хорошо..., но не достаточно ...

Закономерность, если она есть, должна вписываться в ТЕОРИЮ прибыльной торговли.

ТЕОРИЯ, в свою очередь, должна быть понятна без всякой статистики...

Статистика нужна для подтверждения теории уже на следующем этапе...

При должной фантазии всё можно обосновать. Интересует более надёжный подход.

 
Aleksey Vyazmikin #:

Сегодня вот подумалось мне, что если стратегия использует особенность торгового инструмента, т.е. настоящую торговую закономерность, то такая стратегия не будет работать на случайно сгенерированных данных. Работоспособность проверяется через оптимизацию, допустим есть 2-3 параметра и если их удаётся накрутить в оптимизаторе для появления нужных сетов, то стратегия и вовсе не стратегия, а случайно найденные настройки.

Что думаете по этому поводу? Знаю, что есть обратное мнение, что мол на рандоме хорошая стратегия должна работать, так-как ранок - это случайное блуждание.

Ещё интересны методы генерации правдоподобного рандома.

Я сделал сейчас так


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

я генерил тики и по ним строил бары. 

по памяти - сначала генерил цифры "тиковый объём" (периодичность + шум) или брал от оригинального котира, получал объём который должен сгенерировать на 1 минуте. Если объём больше порога то часть тиков генерилась с бОльшим инкрементом цены (+2,3,5 пункта, вместо одного).

Была мысль делать и учитывать задержки между тиками (два быстро-быстро скорее всего в одну сторону), но к тому моменту интерес к генерённым чартам закончился :-)

по крайней мере в такой генерации нет ваших ошибок: open нового бара!=close предыдущего и размер бара high-low не лимитирован алгоритмом.

 
Maxim Kuznetsov #:

по крайней мере в такой генерации нет ваших ошибок: open нового бара!=close предыдущего и размер бара high-low не лимитирован алгоритмом.

Это не ошибка, а задумка. Или Вы считаете, что баров с гэпом больше, чем без него? Лимит специально установлен, что бы оставаться в рамках разумного.

Если следите за веткой, то знаете - новый чарт генерируется из баров настоящего чарта, т.е. учитывается размер встречаемых свечей.

 
Aleksey Vyazmikin #:

Это не ошибка, а задумка. Или Вы считаете, что баров с гэпом больше, чем без него? Лимит специально установлен, что бы оставаться в рамках разумного.

Если следите за веткой, то знаете - новый чарт генерируется из баров настоящего чарта, т.е. учитывается размер встречаемых свечей.

open=close это не правило

прямо в лёт текущий EURUSD M1:

---

IMHO из баров это неправильно. Из тиков правильнее. Ещё правильнее как систему обслуживания со стаканом из потоков покупок/продаж. Но это уже высший пилотаж

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

 
Maxim Kuznetsov #:
open=close это не правило

Я не утверждал, что это правило. Банальности не будем же обсуждать...

Maxim Kuznetsov #:
IMHO из баров это неправильно.

Да, имеете право на такое мнение.

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

Maxim Kuznetsov #:
Ещё правильнее как систему обслуживания со стаканом из потоков покупок/продаж.

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

Maxim Kuznetsov #:
потому как оптимизацию-как-тут-принято

Что не так с оптимизацией? Не понятно. Целью оптимизации тут показать, что стратегии могут работать случайно.

Интересует больше меня вопрос, как определить случайность от не случайности с помощью статистики.