
이 전략은 일률적 크로스, 무작위 지표 필터링과 자기 적응적 스톱 로드 추적을 결합한 통합 거래 시스템이다. 그것은 주로 빠른 이동 평균 ((SMA 34) 과 느린 이동 평균 ((SMA 200) 의 교차 신호를 기반으로 하고, Stochastic ((9-3-3) 무작위 지표를 추가 필터링 조건으로 사용하여 신호의 신뢰성을 강화한다. 또한, 전략은 정해진 스톱 로드, 수익 목표 및 가격 움직임에 따라 자동으로 조정되는 손실 추적 기능을 포함하는 완벽한 위험 관리 모듈을 설계했다. 특히 주목할 점은, 수익이 사전 설정된 값에 도달하면 전략은 스톱 로드를 자동으로 입시 가격으로 조정하여 이미 얻은 수익을 보호하고, “출자”의 위험 제어 목표를 달성한다.
이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 요소에 기반합니다.
쌍평선 시스템: 34주기 및 200주기의 간단한 이동 평균을 사용하여, 각각 중기 및 장기 추세를 나타냅니다. 단기 평균선 위에 장기 평균선을 뚫을 때, 상승 추세가 형성되는 것을 나타냅니다. 반대로, 단기 평균선 아래에 장기 평균선을 뚫을 때, 하향 추세가 형성되는 것을 나타냅니다.
무작위 지표 필터링9-3-3의 스토카스틱 무작위 지표를 사용하여 보조 시장 오버 바이 오버 세 판단 도구로 사용한다. 과다 신호를 고려할 때 무작위 지표 값이 20 이상으로 요구되며, 오버 세 지역 반전이 아직 충분하지 않은 상태에서 진입을 피한다.
입학 조건:
위험 관리 메커니즘:
로직 실행전략: 트레이딩뷰의 전략 모듈을 통해 자동화 거래 실행을 구현하고, 거래 당 당 계좌의 10%를 사용한다.
트렌드 추적과 흔들림: 동선 시스템 ((트렌드 추적) 과 Stochastic 무작위 지표 ((폭동 지표) 를 결합하여 이 전략은 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시
다단계 확인입시 신호는 가격과 평균선의 교차, 평균선의 상대적 위치, 그리고 무작위 지표의 상태의 삼중 조건을 충족시켜야 하며, 가짜 브레이크와 잘못된 신호를 효과적으로 감소시킨다.
위험과 이익이 합리적일 수 있습니다.전략 설정은 2%의 스톱로스, 4%의 수익 목표, 그리고 1:2의 리스크/수익 비율로, 건전한 거래 원칙에 부합한다.
동적 보증제도: 브레이크에븐 트리거 변수 ((2%) 를 통해, 자동화 된 보금자 기능을 구현하여, 거래가 유리 방향으로 진행되면 거래가 수익에서 손실로 전환되지 않도록합니다.
비주얼 트레이딩 신호전략: 전략은 가격 차트에서 구매 및 판매 신호를 직관적으로 표시하여 거래자가 전략을 모니터링하고 분석할 수 있습니다.
매개 변수 조정: 모든 핵심 매개 변수들은 입력 인터페이스를 통해 조정할 수 있으며, 평균주기, 스토카스틱 매개 변수, 스톱로스 비율, 수익 목표 및 보금자리 트리거 포인트를 포함하고 있어 전략은 잘 적응할 수 있다.
추세 반전 위험: SMA 200을 장기적인 트렌드 필터로 사용함에도 불구하고, 시장은 단기간에 급격한 반전이 발생할 수 있으며, 이로 인해 스톱 손실이 유발됩니다.
슬라이드 포인트와 거래 비용전략: 실제 환경에서 실적 수익률에 영향을 미치는 슬라이드 포인트 및 거래 비용 문제를 직면 할 수 있습니다. 해결 방법: 거래 주파수를 최적화하여 너무 자주 거래를 피하거나 입시 조건을 조정하여 더 강력한 신호 확인을 요구합니다.
매개변수 민감도전략 효과는 파라미터 설정에 크게 의존하며, 다른 시장과 시간 주기에는 다른 파라미터 조합이 필요할 수 있습니다. 해결 방법: 리테크 최적화를 수행하고, 다른 시장 환경에 대해 다른 파라미터 프로파일을 미리 설정합니다.
평균선 뒤떨어짐: 이동 평균은 본질적으로 뒤처진 지표이며, 진입 또는 출전 시기를 지연시킬 수 있다. 해결 방법: 간단한 이동 평균을 대신하여 지수 이동 평균 (EMA) 을 사용하거나 다른 선도 지표와 결합하여 확인 할 수 있습니다.
고정 비율 위험: 고정된 중지 비율을 사용하여 시장의 변동성에 적응하지 못할 수도 있습니다. 해결 방법: ATR (Average True Range) 에 기반한 동적 중지 메커니즘을 설계하여 현재 시장의 변동성에 더 적합한 중지 포인트를 만듭니다.
동적으로 조정된 평균선 주기현재 전략은 고정된 34과 200주기 평균선을 사용하며, 시장의 변동률에 따라 평균선 주기 자동 조정, 높은 변동률 환경에서 더 긴 주기를 사용, 낮은 변동률 환경에서 더 짧은 주기를 사용하도록 고려할 수 있다.
트랜잭션 수량 확인현재 입시 신호는 가격과 지표에만 기반하며 거래량 조건이 추가될 수 있으며 신호가 발생했을 때 거래량이 크게 증가하도록 요구하여 돌파구의 유효성을 확인합니다.
다중 시간 프레임 분석다중 시간 프레임 확인 메커니즘을 구현합니다. 예를 들어, 더 큰 시간 프레임의 트렌드 방향이 거래 방향과 일치하도록 요구합니다. 거래 신호의 신뢰성을 강화합니다.
트래킹 중지 논리를 최적화합니다.: 현재의 보금제도는 비교적 간단하며, ATR의 동적 설정에 따라 추적 거리를 추적하거나, 이익이 증가함에 따라 점차적으로 추적을 강화하는 등 더 복잡한 추적 중지 논리를 설계할 수 있습니다.
시장 상태 필터를 추가합니다.: 시장 상태를 식별하는 메커니즘을 도입합니다. 예를 들어, ADX 지표로 트렌드 강도를 식별합니다. 강한 트렌드 시장에서 더 급진적인 파라미터 설정을 사용하고, 흔들리는 시장에서 더 보수적인 설정을 사용합니다.
스토카스틱 변수를 최적화: 고정된 9-3-3 대신 적응 가능한 스토카스틱 변수를 사용하는 것을 고려하여 다른 시장 조건에 더 잘 적응 할 수 있습니다.
“비평선 교차와 무작위 지표가 결합된 적응적 추적 스톱 스트래치 전략”은 트렌드 추적, 진동 지표 필터링 및 위험 관리 메커니즘을 효과적으로 통합 한 구조적이고 논리적으로 명확한 거래 시스템입니다. SMA 34과 SMA 200의 교차와 Stochastic 무작위 지표의 결합으로 이 전략은 시장의 효과적인 트렌드 변화를 포착 할 수 있으며 불리한 시장 조건에서 진입하는 것을 피할 수 있습니다. 특히 자체 적응적 인 보너스 메커니즘은 거래에 중요한 위험 제어 장치를 제공합니다.
그러나, 이 전략은, 특히 다른 시장 환경에 대한 적응성 측면에서, 개선할 여지가 있습니다. 전략의 성능은 역동적인 파라미터 조정, 거래량 확인, 다중 시간 프레임 분석과 같은 최적화 조치를 도입함으로써 더욱 향상 될 수 있습니다.
안정적인 수익을 추구하는 장기 투자자나 단기 거래 기회를 추구하는 적극적인 거래자 모두, 이 전략은 거래자가 복잡한 변화하는 시장에서 더 체계적이고 규율적인 거래 결정을 내리는 데 도움이되는 구조화된 프레임워크를 제공합니다.
/*backtest
start: 2024-02-26 00:00:00
end: 2025-02-23 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy('[DRAGON]SMA 34 & SMA 200 with Stochastic 9-3-3 & Trailing Stop (Price Chart)', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Inputs for Moving Averages
SMA_fast_length = input.int(34, title='Fast SMA (34)', minval=1)
SMA_slow_length = input.int(200, title='Slow SMA (200)', minval=1)
// Inputs for Stochastic 9-3-3 (ใช้สำหรับเงื่อนไขเทรด แต่ไม่แสดงบนกราฟ)
stoK_length = input.int(9, title='Stochastic %K Length', minval=1)
stoD_length = input.int(3, title='Stochastic %D Smoothing', minval=1)
sto_smoothK = input.int(3, title='Stochastic Smoothing', minval=1)
// Define Stop Loss, Take Profit & Trailing Stop
stopLossPercent = input.float(2, title='Stop Loss %') / 100
takeProfitPercent = input.float(4, title='Take Profit %') / 100
breakevenTrigger = input.float(2, title='Move SL to BE when Profit Reaches (%)') / 100
// Calculate SMAs
sma34 = ta.sma(close, SMA_fast_length)
sma200 = ta.sma(close, SMA_slow_length)
// Calculate Stochastic (สำหรับใช้ในเงื่อนไขเทรด)
stoK = ta.sma(ta.stoch(close, high, low, stoK_length), sto_smoothK)
stoD = ta.sma(stoK, stoD_length)
// Plot Moving Averages บนกราฟราคา
plot(sma34, color=color.blue, title='SMA 34')
plot(sma200, color=color.red, title='SMA 200')
// Define Entry Conditions โดยมีเงื่อนไขจาก Stochastic
buySignal = ta.crossover(close, sma34) and sma34 > sma200 and stoK > 20
sellSignal = ta.crossunder(close, sma34) and sma34 < sma200 and stoK < 80
// Calculate Stop Loss & Take Profit Levels
longSL = strategy.position_avg_price * (1 - stopLossPercent)
longTP = strategy.position_avg_price * (1 + takeProfitPercent)
shortSL = strategy.position_avg_price * (1 + stopLossPercent)
shortTP = strategy.position_avg_price * (1 - takeProfitPercent)
// กำหนด Breakeven เมื่อได้กำไรตามที่ตั้งไว้
longBreakeven = strategy.position_avg_price * (1 + breakevenTrigger)
shortBreakeven = strategy.position_avg_price * (1 - breakevenTrigger)
longStop = close >= longBreakeven ? strategy.position_avg_price : longSL
shortStop = close <= shortBreakeven ? strategy.position_avg_price : shortSL
// Execute Trades
if buySignal
strategy.entry('Long', strategy.long)
strategy.exit('Long Exit', from_entry='Long', stop=longStop, limit=longTP)
if sellSignal
strategy.entry('Short', strategy.short)
strategy.exit('Short Exit', from_entry='Short', stop=shortStop, limit=shortTP)
// Plot Buy/Sell Signals บนกราฟราคา
plotshape(buySignal, location=location.belowbar, color=color.lime, style=shape.labelup, title='Buy Signal')
plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title='Sell Signal')