
교차 동력 트렌드 추적 전략은 간단하고 효율적인 거래 시스템으로, 그것은 두 가지 기술 지표인 이동 평균 ((SMA) 와 상대적으로 약한 지수 ((RSI) 를 교묘하게 결합하여 자동화된 거래 신호 생성 시스템을 형성한다. 이 전략은 가격과 20 주기의 SMA의 교차점을 주요 신호 트리거 조건으로 사용하며, RSI 지표의 동력 확인과 결합하여 몇 가지 품질이 낮은 거래 신호를 필터링한다.
이 전략의 핵심 원칙은 가격과 평균의 교차로 트렌드의 전환점을 포착하고 RSI 동력 지표를 사용하여 신호 확인을 수행하는 것입니다.
구매 조건: 가격이 20주기 SMA를 상향으로 통과하고 RSI 값이 60보다 크면, 시스템은 구매 신호를 생성한다. 이 조건은 추세와 동력의 두 가지 차원을 결합한다. 가격의 평균 경계를 뚫는 것은 상승 추세가 형성될 수 있음을 나타내고, 60 이상의 RSI 값은 상승 동력의 존재를 확인한다.
판매 조건: 가격이 20주기 SMA를 내려가며 RSI 값이 40보다 작을 때, 시스템은 판매 신호를 생성한다. 마찬가지로, 이 조건은 가능한 트렌드 반전을 식별하고 40 이하의 RSI 값으로 하향 동력을 확인한다.
성능 추적 장치이 전략은 다음과 같은 지표를 추적하는 거래 성능 모니터링 시스템을 내장했습니다.
심상전략: 차트에서 “B” (Buy) 와 “S” (Sell) 로 매매점을 표시하고, 표를 통해 실시간으로 성능 통계를 표시한다.
간결하고 효율적입니다.두 가지 일반적인 기술 지표 (SMA와 RSI) 만으로 완전한 거래 시스템을 구축하여 과도한 최적화 및 과잉 적합성의 위험을 줄입니다.
이중 확인 메커니즘: 트렌드 지표 ((SMA) 와 동력 지표 ((RSI) 를 결합하여 신호의 신뢰성을 높인다. 가격은 평균선을 돌파하는 것뿐만 아니라 거래를 촉발하기 위해 충분한 동력이 필요합니다.
자동화전략: 완전히 자동화된 구매/판매 신호를 생성하고, 인간의 감정적 간섭을 줄여서, 체계화된 거래자가 사용할 수 있도록 설계되었다.
내장 성능 평가: 실시간으로 중요한 성능 지표를 추적하여 거래자가 전략의 성능을 객관적으로 평가하고, 적절한 시기에 매개 변수를 조정하거나 좋지 않은 전략을 종료 할 수 있습니다.
위험 관리 의식구매 후 7주기 동안의 가격 행동을 모니터링하여 잠재적인 스톱포트를 식별하고, 위험 관리에 대한 인식을 키우는 데 도움이 됩니다.
직관적인 시각화: 그래프 표기 및 성능 표를 통해 거래자는 전략 수행을 직관적으로 이해할 수 있으며, 피드백 분석 및 전략 개선을 용이하게합니다.
가짜 침입 위험RSI를 사용하여 필터링을 했음에도 불구하고, 이 전략은 시장에서 많은 가짜 브레이크 신호를 생성할 수 있으며, 이는 빈번한 거래와 불필요한 거래 비용을 초래할 수 있습니다.
매개변수 민감도전략 성능은 SMA 주기 ((20) 와 RSI 주기 ((8) 와 그 경미도 ((60⁄40) 의 선택에 크게 의존한다. 다른 시장 환경이나 품종에 따라 이러한 고정 변수는 좋지 않을 수 있습니다.
적응력 부족전략은 시장환경을 인식할 능력이 없으며, 트렌드 시장에서는 잘 작동하지만, 흔들리는 시장에서는 손실이 자주 발생할 수 있다.
간단한 손해 방지 장치이 전략은 실패를 추적하지만, 동적 상쇄 기능을 실제로 구현하지 않고, 급격한 상황에서 과도한 손실을 초래할 수 있습니다.
포지션 관리 부족전략: 고정된 입점으로 입점하고, 시장의 변동성이나 신호의 강도에 따라 입점 크기를 조정하지 않고, 자본 활용도를 최적화 할 수 없습니다.
성능 평가의 한계성공은 2%의 가격 상승으로 정의되며, 모든 시장 환경에 적용되지 않을 수 있으며, 높은 변동성이있는 품종은 더 높은 값이 필요할 수 있습니다.
시장 환경 필터에 가입하세요: 변동률 지표 (ATR 같은) 또는 트렌드 강도 지표 (ADX 같은) 를 도입하여 시장 상태를 식별하고, 흔들리는 시장에서 거래 주파수를 줄이거나 변수를 조정합니다.
변수 적응 메커니즘: SMA와 RSI 파라미터를 동적으로 조정하고, 최근 시장의 성과에 따라 자동으로 최적화 사이클과 하락값을 구현하고, 전략의 적응성을 향상시킨다.
포지션 관리를 최적화: 신호 강도 (RSI 오차 등), 시장의 변동성 또는 계정 리스크를 기반으로 동적 포지션 할당 시스템을 설계하여 단일 거래 위험을 제어한다.
손해제도 개선: ATR 기반의 동적 중지 또는 추적 중지 기능을 구현하여 거래의 위험을 더욱 정밀하게 제어합니다.
필터링 시간을 추가합니다.: 시장 시간 요소를 고려하고, 변동성이 비정상적인 시간 또는 유동성이 낮은 시간 동안 거래를 피하고, 신호 품질을 향상 시키십시오.
다주기 확인: 다중 주기 분석에 가입하여, 더 큰 시간 주기 트렌드 방향이 거래 방향과 일치하도록 요구하고, 역대 트렌드의 거래 신호를 필터링한다.
최적화 성능 평가성공/실패의 정의를 개선하고, 위험 조정된 수익 또는 이익/위험 비율과 같은 더 포괄적인 평가 지표를 고려할 수 있다.
크로스 동력 트렌드 추적 전략은 간단하고 실용적인 거래 시스템으로, SMA와 RSI 지표와 결합하여 트렌드 전환점을 식별하면서 동력을 확인하여 일부 저품질 신호를 효과적으로 필터링합니다. 이 전략은 특히 양적 거래에 대한 새로운 투자자에게 적합하며, 명확한 거래 신호를 제공하고, 전략의 성능을 객관적으로 평가하는 데 도움이되는 성능 추적 기능을 내장합니다.
전략은 설계에 있어서 비교적 단순하지만, 그것은 양적 거래의 중요한 원칙을 반영한다: 트렌드 추적, 신호 확인 및 성능 모니터링. 시장 환경 필터링, 변수 적응 및 손해 방지 장치의 개선과 같은 제안 된 최적화 방향을 통해, 거래자는 전략의 핵심 논리를 유지하면서 전략의 안정성과 적응력을 크게 향상시킬 수 있다.
고전적 기술 지표와 결합된 이러한 간단한 전략은 종종 복잡한 알고리즘보다 더 신뢰성과 생명력을 발휘합니다. 특히 위험 관리 및 성능 평가 메커니즘이 내장되어있는 경우입니다. 입문 수준의 정량화 전략을 찾는 거래자에게는 실전 경험을 제공하고 후속 전략 개발의 토대를 마련하는 이상적인 출발점입니다.
/*backtest
start: 2024-07-05 00:00:00
end: 2025-02-23 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("STOCKS TO BUY", overlay=true, fill_orders_on_standard_ohlc=true)
// Define 20-period SMA
sma20 = ta.sma(close, 20)
// RSI Calculation (8-period)
rsiValue = ta.rsi(close, 8)
// Buy Condition: Close crosses above 20-SMA and RSI > 60
buyCondition = ta.crossover(close, sma20) and rsiValue > 60
// Sell Condition: Close crosses below 20-SMA and RSI < 40
sellCondition = ta.crossunder(close, sma20) and rsiValue < 40
// Tracking Performance Metrics
var int totalSignals = 0 // Total number of 'B' signals
var int successCount = 0 // Times price rose >2% from 'B' candle close
var int failureCount = 0 // Times price fell below 'B' candle low within 7 bars
// Store entry price and low when signal occurs
var float entryPrice = na
var float entryLow = na
var int barCounter = na // Bar counter for tracking 7-candle window
if buyCondition
strategy.entry("Buy", strategy.long)
totalSignals := totalSignals + 1 // Increment 'B' count
entryPrice := close
entryLow := low
barCounter := 0 // Reset counter when new 'B' signal appears
if sellCondition
strategy.close("Buy") // Close the buy position on sell signal
// Monitor for 7 candles only
if not na(barCounter)
barCounter := barCounter + 1
// Check for Success (Price rises >2%)
success = high >= entryPrice * 1.02
if success
successCount := successCount + 1
entryPrice := na // Reset entry price after success
// Check for Failure (Price falls below entryLow within 7 candles)
failure = low < entryLow and barCounter <= 7
if failure
failureCount := failureCount + 1
entryLow := na // Reset entry low after failure
// Stop tracking after 7 candles
if barCounter > 7
barCounter := na
// Plot 'B' on chart when buy condition is met
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="B")
// Plot 'S' on chart when sell condition is met
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="S")
// Display Performance Metrics Table
var table performanceTable = table.new(position=position.top_right, columns=2, rows=4, bgcolor=color.gray, border_width=1)
if bar_index % 10 == 0 // Update table every 10 bars for efficiency
table.cell(performanceTable, 0, 0, "Metric", text_color=color.white, bgcolor=color.blue)
table.cell(performanceTable, 1, 0, "Value", text_color=color.white, bgcolor=color.blue)
table.cell(performanceTable, 0, 1, "Total 'B' Signals", text_color=color.white)
table.cell(performanceTable, 1, 1, str.tostring(totalSignals), text_color=color.white)
table.cell(performanceTable, 0, 2, "Price Rose >2%", text_color=color.white)
table.cell(performanceTable, 1, 2, str.tostring(successCount), text_color=color.green)
table.cell(performanceTable, 0, 3, "Price Fell Below 'B' Low (7 bars)", text_color=color.white)
table.cell(performanceTable, 1, 3, str.tostring(failureCount), text_color=color.red)