
Обзор
Эта стратегия основана на теории Эллиоттовых волн, которая пытается автоматически обнаруживать импульсные волны. Она определяет восходящие импульсы путем поиска комбинации K-линий с 4 последовательными повышениями цены закрытия и текущей ценой закрытия выше, чем цена закрытия 9 дней назад; использует обратную логику для определения падений импульсов.
Стратегический принцип
- Определите количество циклов, в которых цена закрытия поднимается/падает в течение нескольких последовательных дней (consclos ((по умолчанию 3)), и количество дней, в течение которых текущая цена закрытия сравнивается с ценой закрытия N дней назад (daysago ((по умолчанию 9)).
- Используйте два переменных long_cc и short_cc, чтобы записать, является ли последняя конклосная корень K последовательной положительной или отрицательной, если она последовательная, то она будет равна 1, а если нет, то 0.
- Сравнение текущей ценой закрытия с ценой закрытия за день до daysago, если текущая цена выше/ниже, то long_daysago/short_daysago истинно.
- Сочетание long_cc, short_cc и long_daysago, short_daysago, дает окончательные многомерные сигналы long и short.
- Нарисуйте зеленые и красные треугольники, соответствующие сигналам long и short.
- Если появляется сигнал long и в данный момент нет позиций, то можно открыть позицию и установить стоп-стоп как низкую точку K-линии сигнала.
- Если короткий сигнал появляется и в настоящее время нет пустых позиций, пустовать и установить стоп-стоп как высокую точку K-линии сигнала.
Анализ преимуществ
- Способность автоматически распознавать пульсы в теории Эллиоттовой волны, уменьшая влияние субъективного анализа.
- В этом случае, как и в случае с другими событиями, вполне вероятно, что они будут происходить в течение определенного периода времени.
- Положение стоп-поста соответствует тренду, увеличивая прибыль и убыток.
- Подобные исследования позволяют выявить потенциальные возможности для поступления в компанию до начала тренда.
- Параметры настраиваемы, применимость высокая.
Анализ рисков
- В интерпретации теории волн могут быть отклонения, которые приводят к ошибочным выводам.
- Продолжительность тренда непредсказуема, возможно, слишком близкое расположение стоп-позиции может привести к падению.
- Например, в случае, если рыночная торговля в Китае будет продолжаться в течение нескольких недель, это может привести к потере эффективности.
- Отсутствие учета в управлении позициями и средствами.
Направление оптимизации
- Можно оптимизировать конфигурацию параметров consclos и daysago, чтобы повысить точность сигнала.
- Можно ввести индикаторы подтверждения тренда, такие как MACD, чтобы уменьшить шум.
- Подумайте о включении мобильного стоп-лосса для лучшей защиты прибыли.
- Если тенденция пока не ясна, можно сначала создать небольшое количество позиций, а когда тенденция станет ясна, можно увеличить их.
- Контроль над позициями и рисками, например, ограничение доли капитала в одной сделке, установление максимального вывода и т. д.
Подвести итог
Эта стратегия основана на классической теории Эллиоттовой волны, способной улавливать сильные трендовые явления, имеет определенное применение и потенциал для получения прибыли. Однако само субъективность теории волн и определение пульсовых волн могут повлиять на эффективность стратегии. В практическом применении необходимо обратить внимание на такие вопросы, как оптимизация параметров, управление позициями, снижение частоты торгов.
Исходный код стратегии
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Smollet
//@version=5
strategy("LW: 4-9 indicator", overlay = true)
consclos = input.int(3, "Consecutive close")
daysago = input.int(9, "Days ago")
var int long_cc = 0
var int short_cc = 0
long_cc := 1
short_cc := 1
for i = 1 to consclos
long_cc := close[i-1] > close[i] ? long_cc*1 : long_cc*0
short_cc := close[i-1] < close[i] ? short_cc*1 : short_cc*0
long_daysago = close > close[daysago]
short_daysago = close < close[daysago]
long = long_cc ==1 and long_daysago
short = short_cc ==1 and short_daysago
plotshape(long, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(short, style=shape.triangledown, location=location.abovebar, color=color.red)
//Strategy code
if long and strategy.position_size <= 0
strategy.entry("Long", strategy.long)
strategy.exit("Long SL", "Long", stop = low)
if short and strategy.position_size >= 0
strategy.entry("Short", strategy.short)
strategy.exit("Short SL", "Short", stop = high)