
쌍평평선 추적 전략은 평평선 지표를 기반으로 한 양적 거래 전략이다. 이 전략은 주로 이동 평균의 골드 크로스 및 데이트 크로스를 사용하여 구매 및 판매 신호를 발산한다. 단기 이동 평균이 아래에서 더 긴 주기 이동 평균을 통과하면 골드 크로스 신호가 발생하며, 단기 이동 평균이 위에서 아래로 더 긴 주기 이동 평균을 통과하면 데이트 크로스 신호가 발생한다. 이 전략은 RSI 지표와 ADX 지표를 동시에 결합하여 트렌드의 방향과 강도를 결정하고, 트렌드가 강하면 진입한다.
이 전략은 크게 세 가지 기술적인 지표에 기반을 두고 있습니다.
수퍼트렌드 (Supertrend): 가격의 주요 트렌드 방향을 판단하기 위해 쓰인다. 수퍼트렌드 지표 방향이 바뀌면 가격 트렌드 전환점으로 판단하여 거래 신호를 낸다.
RSI 지수 (Relative Strength Index): 과매매를 판단하기 위해 사용되는 변동 지수이다. 이 전략은 RSI 지수가 단기간에 가격이 과매매되거나 과매매될 때 거래 신호를 낸다.
ADX 지표 (Average Directional Indicator): 트렌드를 판단하기 위한 강도. 이 전략은 ADX 판단 트렌드 강도를 결합하여 트렌드가 강할 때 입시를 선택한다.
슈퍼트렌드 지표 방향이 바뀌면 가격 트렌드가 변하는 것을 나타냅니다. 동시에 RSI 지표는 과매매 현상을 나타냅니다. 단기 수요 공급 관계가 변하는 것을 나타냅니다. 가격이 반전 될 수 있습니다. 또한, ADX 지표는 트렌드 강도를 나타냅니다. 이것은 이 전략의 입장에 기회를 제공합니다.
이중 동선 시스템을 사용하여 가격 동향의 변화를 효과적으로 추적할 수 있으며, PROFIT는 동향에서 수익을 얻습니다.
RSI 지표와 함께 과매매 현상을 판단하여 가격 전환점에서 상하를 추격하는 것을 피하십시오.
ADX 지표는 트렌드 강도를 판단하여 이 전략은 주로 트렌드가 강할 때 실행하여 큰 트렌드에서 수익을 얻습니다.
정책 매개 변수는 최적화 선택 후 비교 테스트에서 잘 수행했다.
쌍평선 전략 자체는 가격 변화에 더 민감하여 거래 신호를 더 많이 생성할 수 있다. 해결책은 적절한 평선 변수를 조정하여 거래 빈도를 줄이는 것이다.
RSI 지표와 ADX 지표가 모두 실패할 수 있는 상황이다. 해결책은 파라미터를 최적화하여 지표 계산주기를 조정하는 것이다.
이 전략은 적절한 스톱 전략을 선택해야 합니다. 해결책은 합리적인 이동 스톱 또는 고정 스톱을 설정하는 것입니다.
거래 주파수를 최적화한다. 평행선 시스템 매개 변수를 최적화하여 거래 주파수를 조정할 수 있다.
다른 보조 지표들을 도입할 수 있다. 예를 들어 거래량 지표들을 도입하고, 큰 싱글 진입시 진입을 선택한다.
기계학습 알고리즘과 결합하여 파라미터 최적화를 수행할 수 있다. 알고리즘을 사용하여 최적의 파라미터 조합을 예측한다.
단위 손실을 제어하기 위해 이동 중지 또는 상장 중지 장치를 도입하십시오.
이 전략은 쌍평평선 추적 전략으로, 핵심 아이디어는 평평선 지표를 추적하여 가격 트렌드를 판단하고, RSI 지표와 ADX 지표와 결합하여 진입 시기를 선택한다. 이 전략의 장점은 트렌드에 따라 작동할 수 있다는 데 있다. 오버 바이 오버 셀 현상이 발생했을 때 기동적으로 현장에 들어가서 큰 트렌드에서 수익을 얻는다. 이 전략의 위험은 주로 가격 변화의 민감성에서 비롯되며, 빈번한 거래로 인해 발생할 수 있다. 매개 변수 최적화 및 손해 방지 수단을 통해 이 전략을 효과적으로 조정하여 실제 시장에서 더 나은 성능을 얻을 수 있다.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=120,
initial_capital=1000, margin_long=0.1)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step=0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
strategy.entry("My Long Entry Id", strategy.long)
if ta.change(direction) > 0
strategy.close("My Long Entry Id") // Close long position
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)