Расширенная динамическая стратегия стоп-лосса и целевой прибыли

RSI ATR SMA
Дата создания: 2024-12-11 14:57:09 Последнее изменение: 2024-12-11 14:57:09
Копировать: 0 Количество просмотров: 383
1
Подписаться
1617
Подписчики

Расширенная динамическая стратегия стоп-лосса и целевой прибыли

Обзор

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

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

Основная логика стратегии включает в себя следующие ключевые части:

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

Стратегические преимущества

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

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

  1. Риски для точности формообразования: возможны ошибки в распознавании параллельных K-линий и игловых K-линий.
  2. Риск скольжения с установкой Stop Loss: в условиях резкой волатильности рынка возможен большой скольжение.
  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)