리소스 로딩... 로딩...

멀티 트렌드 추종 및 구조 파업 전략

저자:차오장, 날짜: 2024-11-29 15:27:01
태그:EMARSISLTPBOS

img

전반적인 설명

이 전략은 여러 이동 평균, 트렌드 추종, 구조 파업 및 추진력 지표를 결합한 포괄적인 거래 전략이다. 이 전략은 가격 구조 파업 및 인출 항목을 통합하는 동시에 여러 시간 프레임에서 트렌드를 분석하여 거래 신호를 결정합니다. 리스크 관리에 고정된 스톱 로스 및 영업 목표를 고용하고 거래 정확성을 향상시키기 위해 여러 검증 메커니즘을 사용합니다.

전략 원칙

이 전략은 시장 트렌드를 결정하기 위해 세 가지 기하급수적인 이동 평균 (EMA25, EMA50, EMA200) 을 사용합니다. 가격이 EMA200 이상이고 EMA200가 상승세를 보이는 경우 상승 추세가 확인되며 그 반대는 하락 추세를 나타냅니다. 트렌드 방향을 결정한 후 전략은 EMA25 또는 EMA50로 가격 인기를 찾습니다. 또한 전략은 최근 최고 또는 최저의 브레이크와 열기 가격에 대한 폐쇄 가격의 위치를 확인하고 모멘텀 방향을 확인해야합니다. RSI 지표는 추가 필터로 작용하며 구매 신호에 RSI 50 이상과 판매 신호에 50 이하를 요구합니다.

전략적 장점

  1. 다중 검증 메커니즘은 거래 신뢰성을 크게 향상시킵니다.
  2. 트렌드 분석과 동력 분석의 통합은 잘못된 파업 위험을 줄입니다.
  3. 명확한 스톱 손실 및 수익 목표 감정 관리에 도움이 됩니다
  4. 간단하고 명확한 전략 논리, 이해하기 쉽고 실행하기 쉽습니다
  5. 다양한 시장 환경 및 거래 도구에 적용됩니다.

전략 위험

  1. 여러 조건이 놓친 거래 기회를 유발할 수 있습니다.
  2. 고정된 스톱 러스 및 영업 타겟은 모든 시장 조건에 맞지 않을 수 있습니다.
  3. 매우 변동적인 시장에서 빈번한 정지를 유발할 수 있습니다.
  4. 매개 변수 적합성을 보장하기 위해 지속적인 시장 모니터링이 필요합니다.
  5. 다양한 시장에서 잘못된 신호를 생성할 수 있습니다.

전략 최적화 방향

  1. 적응적인 스톱 로스 및 영업 수익 계산 방법을 도입
  2. 확인 지표로 부피 분석을 추가합니다.
  3. 시장 변동성 필터를 구현하는 것을 고려하십시오.
  4. 트렌드 결정에 대한 시간 프레임 선택 최적화
  5. 다른 시장 조건에 대한 전략 적응력을 향상

요약

이 전략은 여러 가지 기술 지표의 조율된 사용을 통해 거래 기회와 위험 통제를 효과적으로 균형 잡는 잘 설계된 포괄적인 거래 전략이다. 전략의 핵심 강점은 엄격한 다중 검증 메커니즘에 있으며, 이는 거래 성공률을 향상시키는 데 도움이됩니다. 최적화 할 수있는 영역이 있지만 전반적으로 이것은 탐구 할 가치가있는 전략 프레임워크를 나타냅니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom Buy/Sell Strategy", overlay=true)

// Input parameters
ema25 = ta.ema(close, 25)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
rsi = ta.rsi(close, 14)
sl_pips = 10
tp_pips = 15

// Convert pips to price units
sl_price_units = sl_pips * syminfo.pointvalue
tp_price_units = tp_pips * syminfo.pointvalue

// Define conditions for buy and sell signals
uptrend_condition = ema200 < close and ta.rising(ema200, 1)
downtrend_condition = ema200 > close and ta.falling(ema200, 1)

pullback_to_ema25 = low <= ema25
pullback_to_ema50 = low <= ema50
pullback_condition = pullback_to_ema25 or pullback_to_ema50

break_of_structure = high > ta.highest(high, 5)[1]
candle_imbalance = close > open

buy_condition = uptrend_condition and pullback_condition and rsi > 50 and break_of_structure and candle_imbalance

pullback_to_ema25_sell = high >= ema25
pullback_to_ema50_sell = high >= ema50
pullback_condition_sell = pullback_to_ema25_sell or pullback_to_ema50_sell

break_of_structure_sell = low < ta.lowest(low, 5)[1]
candle_imbalance_sell = close < open

sell_condition = downtrend_condition and pullback_condition_sell and rsi < 50 and break_of_structure_sell and candle_imbalance_sell

// Plot signals on the chart
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.large)
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.large)

// Calculate stop loss and take profit levels for buy signals
var float buy_sl = na
var float buy_tp = na

if buy_condition and strategy.position_size == 0
    buy_sl := close - sl_price_units
    buy_tp := close + tp_price_units
    strategy.entry("Buy", strategy.long)
    strategy.exit("TP/SL Buy", from_entry="Buy", limit=buy_tp, stop=buy_sl)
    label.new(bar_index, high, text="Entry: " + str.tostring(close) + "\nSL: " + str.tostring(buy_sl) + "\nTP: " + str.tostring(buy_tp), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

// Calculate stop loss and take profit levels for sell signals
var float sell_sl = na
var float sell_tp = na

if sell_condition and strategy.position_size == 0
    sell_sl := close + sl_price_units
    sell_tp := close - tp_price_units
    strategy.entry("Sell", strategy.short)
    strategy.exit("TP/SL Sell", from_entry="Sell", limit=sell_tp, stop=sell_sl)
    label.new(bar_index, low, text="Entry: " + str.tostring(close) + "\nSL: " + str.tostring(sell_sl) + "\nTP: " + str.tostring(sell_tp), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)

// // Plot stop loss and take profit levels for buy signals
// if not na(buy_sl)
//     line.new(x1=bar_index, y1=buy_sl, x2=bar_index + 1, y2=buy_sl, color=color.red, width=1)
// if not na(buy_tp)
//     line.new(x1=bar_index, y1=buy_tp, x2=bar_index + 1, y2=buy_tp, color=color.green, width=1)

// // Plot stop loss and take profit levels for sell signals
// if not na(sell_sl)
//     line.new(x1=bar_index, y1=sell_sl, x2=bar_index + 1, y2=sell_sl, color=color.red, width=1)
// if not na(sell_tp)
//     line.new(x1=bar_index, y1=sell_tp, x2=bar_index + 1, y2=sell_tp, color=color.green, width=1)


관련

더 많은