В процессе загрузки ресурсов... загрузка...

Усовершенствованная динамическая остановка с стратегией нацеленности на риск и вознаграждение

Автор:Чао Чжан, Дата: 2024-12-11 14:57:09
Тэги:РСИATRSMA

img

Обзор

Эта стратегия представляет собой передовую торговую систему, которая сочетает в себе динамические остановки, коэффициенты риска-вознаграждения и экстремальные выходы из RSI. Она определяет конкретные модели (параллельные шаблоны полос и шаблоны штифтовых полос) для входа в торговлю, используя ATR и недавние минимумы для динамического размещения стоп-лосса и определяет цели прибыли на основе заранее установленных коэффициентов риска-вознаграждения. Система также включает в себя основанный на RSI механизм выхода рынка с перекупленным / перепроданным.

Принципы стратегии

Основная логика включает в себя несколько ключевых компонентов:

  1. Входные сигналы базируются на двух моделях: параллельной полосе (большая бытовая полоса, следующая за большой медвежьей полосой) и двойной полосе.
  2. Динамические остановки с использованием ATR-множителя, скорректированные на недавние минимумы N-бар, обеспечивающие уровни остановки потери, адаптированные к волатильности рынка.
  3. Целевые показатели прибыли, установленные на основе фиксированного коэффициента риска и прибыли, рассчитанного с использованием стоимости риска ® для каждой сделки.
  4. Размер позиции, динамически рассчитанный на основе величины фиксированного риска и стоимости риска по сделке.
  5. Механизм экстремального выхода от RSI запускает закрытие позиции на экстремальных рынках.

Преимущества стратегии

  1. Динамическое управление рисками: уровни стоп-лосса динамически адаптируются к волатильности рынка посредством комбинации ATR и недавних минимумов.
  2. Точный контроль позиций: размер позиций, основанный на фиксированной сумме риска, обеспечивает постоянный риск по сделке.
  3. Многомерный механизм выхода: сочетает в себе отставание, фиксированные цели прибыли и крайние показатели RSI.
  4. Гибкое направление торговли: опционы на длинную, короткую или двунаправленную торговлю.
  5. Ясная установка риска и вознаграждения: предопределенные коэффициенты риска и вознаграждения определяют четкие цели прибыли для каждой сделки.

Стратегические риски

  1. Риск точности распознавания моделей: потенциальная ложная идентификация параллельных строк и штифтовых строк.
  2. Риск скольжения при остановке потерь: может иметь место значительный скольжение на волатильных рынках.
  3. Преждевременный выход RSI: может привести к раннему выходу на рынках с сильным трендом.
  4. Фиксированные ограничения соотношения риск-вознаграждение: оптимальные соотношения риск-вознаграждение могут варьироваться в зависимости от рыночных условий.
  5. Оптимизация параметров Риск переоборудования: множество комбинаций параметров может привести к переоптимизации.

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

  1. Улучшение сигналов входа: добавление дополнительных показателей подтверждения модели, таких как показатели объема и тенденции.
  2. Динамическое соотношение риск-вознаграждение: корректировка соотношения риск-вознаграждение на основе волатильности рынка.
  3. Интеллектуальная адаптация параметров: внедрение алгоритмов машинного обучения для динамической оптимизации параметров.
  4. Подтверждение с несколькими временными рамками: Добавление механизмов подтверждения сигнала в нескольких временных рамках.
  5. Классификация рыночной среды: применять различные наборы параметров для различных рыночных условий.

Резюме

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


/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
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/
// © ZenAndTheArtOfTrading | www.TheArtOfTrading.com
// @version=5
strategy("Trailing stop 1", overlay=true)

// Get user input 
int     BAR_LOOKBACK    = input.int(10, "Bar Lookback")
int     ATR_LENGTH      = input.int(14, "ATR Length")
float   ATR_MULTIPLIER  = input.float(1.0, "ATR Multiplier")
rr                      = input.float(title="Risk:Reward", defval=3)

// Basic definition
var float shares=na
risk = 1000
var float R=na
E = strategy.position_avg_price

// Input option to choose long, short, or both
side = input.string("Long", title="Side", options=["Long", "Short", "Both"])

// RSI exit option
RSIexit = input.string("Yes", title="Exit at RSI extreme?", options=["Yes", "No"])
RSIup = input(75)
RSIdown = input(25)

// Get indicator values 
float atrValue = ta.atr(ATR_LENGTH)

// Calculate stop loss values
var float trailingStopLoss = na 
float longStop  = ta.lowest(low, BAR_LOOKBACK) - (atrValue * ATR_MULTIPLIER)
float shortStop = ta.highest(high, BAR_LOOKBACK) + (atrValue * ATR_MULTIPLIER)

// Check if we can take trades 
bool canTakeTrades = not na(atrValue)
bgcolor(canTakeTrades ? na : color.red)

//Long pattern
    //Two pin bar
onepinbar = (math.min(close,open)-low)/(high-low)>0.6 and math.min(close,open)-low>ta.sma(high-low,14)
twopinbar = onepinbar and onepinbar[1]
notatbottom = low>ta.lowest(low[1],10)
    // Parallel
bigred = (open-close)/(high-low)>0.8 and high-low>ta.sma(high-low,14)
biggreen = (close-open)/(high-low)>0.8 and high-low>ta.sma(high-low,14)
parallel = bigred[1] and biggreen  
atbottom = low==ta.lowest(low,10)

// Enter long trades (replace this entry condition)
longCondition = parallel 
if (longCondition and canTakeTrades and  strategy.position_size == 0 and (side == "Long" or side == "Both"))
    R:= close-longStop
    shares:= risk/R
    strategy.entry("Long", strategy.long,qty=shares)

// Enter short trades (replace this entry condition)
shortCondition = parallel
if (shortCondition and canTakeTrades and strategy.position_size == 0 and (side == "Short" or side == "Both"))
    R:= shortStop - close
    shares:= risk/R
    strategy.entry("Short", strategy.short,qty=shares)

// Update trailing stop
if (strategy.position_size > 0)
    if (na(trailingStopLoss) or longStop > trailingStopLoss)
        trailingStopLoss := longStop
else if (strategy.position_size < 0)
    if (na(trailingStopLoss) or shortStop < trailingStopLoss)
        trailingStopLoss := shortStop
else
    trailingStopLoss := na

// Exit trades with trailing stop
strategy.exit("Long Exit",  "Long",  stop=trailingStopLoss, limit = E + rr*R )
strategy.exit("Short Exit", "Short", stop=trailingStopLoss, limit = E - rr*R)

//Close trades at RSI extreme
if ta.rsi(high,14)>RSIup and RSIexit == "Yes"
    strategy.close("Long")
if ta.rsi(low,14)<RSIdown and RSIexit == "Yes"
    strategy.close("Short")

// Draw stop loss 
plot(trailingStopLoss, "Stop Loss", color.red, 1, plot.style_linebr)

Связанные

Больше