Спасибо за поднятую тему.
Прошу прокомментировать несколько противоречивую информацию, цитирую две части статьи:
"
Чтобы применить уравнение энтропии к непрерывным переменным, мы должны дискретизировать значения индикатора. Это делается путем деления диапазона значений на интервалы одинакового размера, а затем подсчета количества значений, попадающих в каждый интервал. При использовании этого метода исходное множество, перечисляющее максимальный диапазон всех значений индикатора, заменяется подмножествами, каждое из которых представляет собой выбранные интервалы.
...
Intervals - количество интервалов для дискретизации. Автор TTMTS указывает 20 интервалов для размера выборки в несколько тысяч, причем 2 являются жестким минимальным значением. Я добавил свой собственный подход к подходящему значению, реализовав возможность варьировать количество интервалов относительно размера выборки, в частности, 51 на каждые 1000 выборок. Эта опция доступна, если пользователь вводит любое значение меньше 2. Таким образом при установке Interval на любое число меньше 2 количество используемых интервалов будет меняться в зависимости от количества анализируемых баров.
"
Вопрос, это об одном и том же идет речь? Если да, то почему число разделителей диапазона значений индикатора ставиться в зависимость от числа баров? В чем тут логика? Пока могу предположить, что это полезно только для индикаторов, имеющих какую либо накопительную составляющую.
Если нет, то чему равно число делителей диапазона?
В статье не хватает таблицы, в которой бы явно показывался толк от преобразований значений индикаторов.
Здравствуйте, Фрэнсис.
Не могли бы вы рассказать, как протестировать пользовательский индикатор для EntrophyAnalysis.
Я пытаюсь использовать следующий вариант:
input ENUM_TIMEFRAMES Таймфрейм=PERIOD_H1;
input ENUM_INDICATOR IndicatorType=IND_CUSTOM;
input string CustomIndicatorName="Indicators\\\NKGold\\\Regression\\\iNonLinRegress.ex5";
input bool UseDefaults=true;
input string IndicatorParameterTypes="int,CENUM_APPLIED_PRICE";
input string IndicatorParameterValues="34,priceHA_WEIGHTED";
и получаем ошибку, как показано ниже
2025.03.26 19:53:11.282 EntropyIndicatorAnalysis (XAUUSD,H1) custom indicator 'Indicators\NKGold\Regression\iNonLinRegress.ex5' cannot load [4802]
2025.03.26 19:53:11.282 EntropyIndicatorAnalysis (XAUUSD,H1) Invalid indicator handle, error code: 4802
Почему так много букв? Выявил ли автор достоверный индикатор? Другими словами, нашел ли он что-то для заработка? Вопрос прост: существует ли инструмент для заработка с высокой вероятностью прибыли? Или это все одно и то же, как рулетка: либо работает, либо нет.
Статья не претендует на открытие Святого Грааля, который точно напечатает банкноты. Ее цель более скромна: показать , как измерить богатство информации, которую показатель привносит в модель обучения.
-
Высокий показатель энтропии означает лишь то, что переменная нетривиальна (она изменяется в достаточной степени, чтобы алгоритм мог обучаться). Он не гарантирует направления, времени или выигрышного управления деньгами.
-
Даже высокоинформативный индикатор может оказаться непредсказуемым, если рынок уже эффективен на выбранном горизонте, если транзакционные издержки поглощают сигнал или если модель плохо разработана.
-
На практике приходится складывать несколько составных частей: отбор индикаторов с хорошей энтропией, строгие тесты вне выборки, управление рисками, надежное исполнение и мониторинг в реальном времени. Только объединив все эти шаги, мы надеемся добиться небольшого преимущества, и это должно постоянно перепроверяться по мере адаптации рынка.
-
Автор предлагает академический диагностический инструмент. Он не гарантирует успеха. Каждый волен использовать его для уточнения своих характеристик или, наоборот, понять, что любимый индикатор не дает ничего нового.
Короче говоря, энтропия - это термометр, а не эликсир. Она помогает быстро обнаружить мертвые или недостаточно используемые переменные. Она не заменяет стратегию или контроль над рисками.
...
Интервалы - количество интервалов для выборки. Автор TTMTS указывает 20 интервалов для выборки в несколько тысяч человек, причем 2 являются абсолютным минимумом. Я добавил свой собственный подход к определению подходящего значения, реализовав возможность варьировать количество интервалов в зависимости от размера выборки, в частности 51 для 1000 образцов. Эта возможность доступна, если пользователь вводит значение меньше 2. Таким образом, если задать значение Interval меньше 2, количество используемых интервалов будет варьироваться в зависимости от количества анализируемых баров.
"
Вопрос: это одно и то же? Если да, то почему количество разделителей в диапазоне значений индикатора зависит от количества баров? В чем логика этого? Пока могу только предположить, что это полезно для индикаторов, имеющих накопительную составляющую.
Если это не так, то чему соответствует количество делителей в диапазоне?
В статье отсутствует таблица, которая бы наглядно показала пользу от преобразования значений индикаторов.
Чтобы оценить энтропию непрерывной переменной, мы делим диапазон ее значений на равные интервалы и подсчитываем количество наблюдений в каждом интервале. Скрипт позволяет выбрать количествоинтервалов. Если вы введете значение < 2 (или оставите значение по умолчанию), скрипт запустит собственную эвристику: 51 интервал на 1000 наблюдений, то есть число, пропорциональное размеру выборки. Если вы вводите значение > 2, он использует его как есть, так что это не два конкурирующих метода. Один описывает концепцию, другой объясняет , как код выбирает параметр, если вы не задали его сами.
Когда у вас слишком мало интервалов, вы искусственно склеиваете значения вместе. Энтропия недооценивается (смещение). Когда для маленькой выборки слишком много интервалов, в ней много пустых бинов или бинов с одним наблюдением. Энтропия сильно зашумлена (дисперсия). Для гистограмм существует несколько автоматических правил: Стерджеса, квадратного корня, Фридмана-Диакониса, Скотта и т. д.). Все они имеют одну и ту же идею: увеличивайте разрешение, когда у вас больше данных, потому что тогда вы сможете оценить более тонкие вероятности, не увеличивая дисперсию.
Для 1 000 баров 51 интервал => 20 точек на бин, если распределение было равномерным. Это соотношение (между 15 и 30 наблюдений / класс) является классическим компромиссом, который автор взял из литературы. Это не имеет никакого отношения к тому, является ли индикатор накопительным или нет. Логика чисто статистическая. Тонкость построения сетки зависит от количества доступной информации.
-
тем заметнее тонкость распределения показателя,
-
тем больше деталей (пиков и впадин) может уловить расчет энтропии,
-
но тем больше данных необходимо для того, чтобы эти частоты были стабильными.
Правда, в статье было бы полезно показать, например, энтропию одного и того же индикатора до и после преобразований, но это легко сделать самостоятельно. Просто поставьте в скрипте галочку ApplyTransform=true и прочитайте двойной вывод: до/после. В коде намеренно оставлена интерактивная часть, чтобы каждый мог протестировать свои активы и горизонты.
Чем больше вертикальных полос в гистограмме:
-
тем заметнее тонкость распределения показателя,
-
тем больше деталей (пиков и впадин) может уловить расчет энтропии,
-
но тем больше данных необходимо для того, чтобы эти частоты были стабильными.
Как я понял, визуализация показателей индикаторов в выборке через гистограмму никак не связана с методами преобразования данных у автора. Правильно я понял?
Меня больше интересует вопрос получаемого эффекта при обучении от этих преобразований. Я могу предположить его для нейронных сетей, но для древовидных методов - нет.
Если я правильно понимаю, визуализация показателей в выборке с помощью гистограммы не имеет никакого отношения к авторским методам преобразования данных. Я прав?
Меня больше интересует вопрос о влиянии этих преобразований. Я могу предположить это для нейронных сетей, но не для древовидных методов.
Гистограмма, построенная скриптом, - это просто инструмент визуальной диагностики. Она показывает, как распределены значения показателя в выборке до или после преобразования. Функции sqrt, log, tanh и т. д. воздействуют на данные. Гистограмма просто отображает результат. Таким образом, два этапа являются независимыми. Сначала ряд преобразуется (или нет), затем строится его гистограмма, чтобы увидеть, изменилась ли энтропия.
Преобразование показателя, который стал достаточно монотонным (log, sqrt), часто не меняет результат. С другой стороны, немонотонные преобразования (tanh, saturates) меняют порядок определенных точек. Это означает, что определенные преобразования лучше подготавливают почву для создания нелинейных взаимодействий.
Гистограмма, построенная скриптом, - это просто инструмент визуальной диагностики. Она показывает, как распределены значения показателя в выборке до или после преобразования. Функции sqrt, log, tanh и т. д. воздействуют на данные. Гистограмма просто отображает результат. Таким образом, два этапа являются независимыми. Сначала ряд преобразуется (или нет), затем строится его гистограмма, чтобы увидеть, изменилась ли энтропия.
Хорошо, значит я правильно понял сейчас суть. Изначально подумал о другом.
Преобразование показателя, который стал достаточно монотонным (log, sqrt), часто не меняет результат. С другой стороны, немонотонные преобразования (tanh, saturates) меняют порядок определенных точек. Это означает, что определенные преобразования лучше подготавливают почву для создания нелинейных взаимодействий.
Каким это образом меняется порядок точек? Можете привести пример такого преобразования. Пока понял изречение так, что были точки ABC с собственными значениями по возрастанию, а после преобразования порядок по возрастанию стал, как вариант, BAC.
Хорошо, теперь я понял идею. Изначально я думал о чем-то другом.
Как меняется порядок точек? Можете ли вы привести пример такого преобразования? Пока я понял, что есть точки ABC с собственными значениями в порядке возрастания, и что после преобразования порядок возрастания стал, поочередно, BAC.
Функции в скрипте (root, log, tanh и т.д.) все монотонно возрастающие. Все они сохраняют порядок точек. Мое предыдущее предложение было двусмысленным. Порядок меняется с ABC на BAC только в том случае, если используется немонотонное преобразование. Например, если я не ошибаюсь, функция f(x)=∣x-50∣ не является монотонной, потому что она сворачивает ось вокруг x=50. Поэтому порядок становится BAC. Во введении автор статьи указывает нам на книгу"Testing and Tuning Market Trading Systems (TTMTS) by Timothy Masters". Что касается меня, то я планирую взять ее в руки, потому что, как и у вас, у меня осталось несколько вопросов. Более того, я не очень хорошо знаком с моделями обучения и нейронными сетями. Судя по всему, ее довольно легко найти на сайтах онлайн-продаж. Ее содержание должно нам очень помочь, потому что статья, какой бы интересной она ни была, несомненно, неполная и/или в любом случае довольно синтетическая.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Измерение информативности индикатора:
Машинное обучение стало популярным методом разработки стратегий. В трейдинге традиционно больше внимания уделяется максимизации прибыльности и точности прогнозов. При этом обработка данных, используемых для построения прогностических моделей, остается на периферии. В этой статье мы рассматриваем использование концепции энтропии для оценки пригодности индикаторов при построении прогностических моделей, как описано в книге Тимоти Мастерса "Тестирование и настройка систем рыночной торговли" (Testing and Tuning Market Trading Systems by Timothy Masters).
В качестве примера рассмотрим некоторые статистические свойства двух проанализированных выше индикаторов.
Распределение процентного диапазона Уильямса показывает, как почти все значения распределены по всему диапазону. Помимо мультимодальности, распределение является довольно равномерным. Такое распределение является идеальным и отражается на значении энтропии.
Это отличается от распределения Market Facilitation Index, который имеет длинный хвост. Такой индикатор не подходит для большинства алгоритмов обучения и требует преобразования значений. Преобразование значений должно привести к улучшению относительной энтропии индикатора.
Автор: Francis Dube