Стратегия разворотного прорыва с использованием взвешенной скользящей средней


Дата создания: 2023-11-28 14:11:33 Последнее изменение: 2023-11-28 14:11:33
Копировать: 0 Количество просмотров: 640
1
Подписаться
1617
Подписчики

Стратегия разворотного прорыва с использованием взвешенной скользящей средней

Обзор

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

Стратегический принцип

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

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

Анализ преимуществ

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

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

Анализ рисков

Наибольший риск в этой стратегии заключается в том, что обратная сторона потерпит неудачу. Когда цена образует обратный сигнал, если не удастся вызвать остановку или остановку, а продолжить работу в первоначальном направлении, то будет сформирована большая волатильность.

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

Направление оптимизации

Можно рассмотреть вопрос о добавлении дополнительных показателей для повышения качества и точности сигналов. Например, до появления сигнала об обратном курсе можно обнаружить прирост за определенный период, особенно данные о краткосрочном приросте, чтобы определить характер колебаний цен. Или добавить определенные количественные факторы, чтобы обнаружить динамику цены, колебания и другие характеристики, чтобы построить многофакторную модель.

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

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
out = wma(src, len)
price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10, "Stop (in ticks)", step=1)
limit = input(5, "Limit Out", step=1)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
timec = input(true, "Limit Time of Day (Buying Side)")


//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)
//plots
plot(wma(src,len))
z = if low+price_drop<out
    (out-low)
plotarrow(z, colorup=red)

a = if high-price_climb>out
    (high-out)
plotarrow(a, colorup=lime)
av=wma(src,len)

//Orders
if(timec)
    strategy.entry("Enterlong", long=true, when=z and t>1)
else
    strategy.entry("Enterlong", long=true, when=z)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=false, when=a and t>1)
else
    strategy.entry("Entershort", long=false, when=a)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )