Блог им. Foudroyant
Допустим, у нас есть задача — формализовать сигнал для ТС.
Например, на слом тренда.
Пробуем это делать и натыкаемся вот на что:
1. Вводим условие: «Растущий тренд считается сломанным, если снижение продолжилось до значения цены = 100».
Здесь возникает затруднение: с точки зрения содержания нет разницы между 99 и 101, но сигналы 99 и 101 робот отработает противоположным образом.
2. Пытаемся усложнить задачу и добавить временное измерение.
Формулируем: «Растущий тренд считается сломанным, если снижение продолжилось до значения цены = 100 и продержалось там время 100».
И снова упираемся в то же самое: с точки зрения содержания нет разницы между временем 99 и временем 101, но сигналы 99 и 101 робот отработает противоположным образом.
3. Пытаемся вырваться из этой западни и вводим плавающие (например, в зависимости от волатильности или ещё какого-нибудь параметра) границы.
Формулируем: «Растущий тренд считается сломанным, если снижение продолжилось до значения цены = „100 * волатильность“ и продержалось там время = „100 * волатильность“.
И снова упираемся в стену, потому что с точки зрения содержания нет разницы между умножением на волатильность 99 или 101, как времени, так и расстояния в пунктах — а сигнал будет получаться противоположный.
Любой чётко закреплённый параметр в расчётах заводит нас в эту западню.
tashik, это самое практически применимое определения тренда, какое встречал (оно встроенно учитывает и все ТФ, и твою ТС ).
А знаете какое-нибудь определение тренда, более соответствующее идеалу?
tashik, так при чётком, тем более в численном, определении тренда мы снова ведь упрёмся в эту стену:
«Почему число 99 не означает тренда, а число 100 означает?»
Это общеметодологический вопрос.
tashik, это уже наводит на мысль: «Всё ли можно формализовать»? По этому вопросу слышал разные мнения. Но на практике сталкиваюсь с тем, что некоторые вещи формализовывать и тестировать непонятно как.
Например, надо формализовать пробитие уровня.
Уровень = 1 000. Цена дошла до 999 — уровень не пробит. До 1001 — уровень пробит.
Это формальные признаки.
Но: на деле между двумя случаями нет разницы никакой. То есть открытие позиции по такому сигналу = открытие позиции вообще без сигнала.
дык это… вопрос в содержании же
А. Г., до меня, кажется, начала доходить разница между двумя подходами.
1-й подход, статистический: в качестве параметра выбрано число, допустим, 100 — потому что статистически доказано на истории, что именно после достижения 100 тренды почти всегда разворачивались (с большим статистическим перевесом). То есть обоснование параметра 100 чисто статистическое.
Иными словами, в некой комбинации параметров ТС именно при таком значении рассматриваемого параметра получается наилучший результат. Проверка комбинаций параметров делается на истории. Это и есть оптимизация.
2-й подход (условно назову его геометрический): в качестве параметра выбрано число 100, потому что в рыночном пространстве оно имеет некий геометрический смысл. И тогда как раз возникает вопрос: «Почему геометрическая точка 99 может иметь один смысл для положения текущей цены относительно всего рыночного пространства, а 100 — противоположный, если между ними пренебрежимо малая разница?"
Да уж, взрыв мозга...
А. Г., а если бы числа Фибоначчи оказались, после проверки, работающей закономерностью, Вы смогли бы их формализовать для своего робота?
Если скажете «да», то выплывет вопрос из заметки, под которой мы это обсуждаем.
А. Г., не знаю, работают они или нет. Поверю Вам, что не работают. Тут суть в другом.
Давайте проведём мысленный опыт.
1. Берём число Фибоначчи, например «5».
2. Вам надо его внести в программу робота как сигнал для открытия или закрытия позиции.
3. Вы вносите число «5» как сигнал.
4. Начинается торговля. Цена доходит до 4.9 и разворачивается.
5. Вы делаете вывод, что правильно не вошли, потому что вход по числу 5, а не 4. 9.
Но разве так можно? Ведь 4.9 и 5, в данном контексте — одно и то же. Формально они разные, но содержательно, в связи с контекстом — это одно и то же. И именно там и произошёл разворот.
Вот как это явление можно формализовать?
Формула — if High_t0 > High_t-1 to
$trend =+ 1
If $trend >= 3 to print TREND)))