이 전략은 MACD 지표를 사용하여 RSI 지표의 추세를 판단하여 거래 신호를 생성합니다. 지표 조합을 사용하여 파장을 가하는 전략 유형에 속합니다.
이 전략은 크게 두 가지의 지표에 근거하여 판단됩니다.
RSI 지표 일반적인 14주기 RSI 값을 계산한다.
RSI의 MACD RSI 지표에 대한 MACD 값을 계산, 기본 빠른 라인 12 주기, 느린 라인 26 주기, 신호 라인 9 주기.
RSI의 MACD 기둥이 마이너스 교정, 즉 MACD 느린 라인 포크로 다목적 경향으로 판단될 때, 구매한다.
RSI의 MACD가 마이너스 전환을 통해, 즉 MACD 빠른 느린 라인 사다리 사다리가 공백 경향으로 판단될 때, 판매한다.
여기서 MACD 지수가 평평한 이동 평균을 사용하여 RSI 자체의 장기 트렌드 방향을 판단하여 더 정확한 거래 신호를 생성합니다.
위험은 다음과 같이 줄일 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
RSI와 MACD의 변수 조합을 테스트합니다.
MACD 신호가 출력될 때 두 번째 확인 조건을 추가합니다.
예를 들어, K선 형태, 거래량, 브린의 위치 등이 있습니다.
정지 손실 전략을 최적화하여 정지 손실을 추적하는 것
재입학 메커니즘
스톱로즈 탈퇴 후, 트렌드가 계속되면 포지션을 재건할 수 있습니다.
높은 변동성으로 지위를 줄이고 낮은 변동성으로 지위를 늘립니다.
이 전략은 RSI와 MACD 두 지표를 조합하여 트렌드 방향을 판단하는 것을 상호 검증하여 신호의 정확성과 안정성을 효과적으로 향상시킬 수 있습니다. 그러나 여전히 최적화 파라미터가 필요하며, 다른 기술 지표 또는 거래 규칙에 의해 추가 확인이 이루어져 갑작스러운 사건에 영향을 받을 가능성을 줄입니다. 동시에 손실을 막는 전략의 최적화 개선과 동적으로 조정하는 위치의 자금 관리에 중점을 둡니다. 시장의 변화에 적응하고 지속적인 안정적인 수익을 얻기 위해서는 지속적인 학습과 최적화가 필요합니다.
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "MACD of RSI", overlay = false)
//////////////////////// RSI ///////////////////////////
src = close, len = input(14, minval=1, title="Length")
up = sma(max(change(src), 0), len)
down = sma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//////////////////////// RSI //////////////////////////
//////////////// MACD ////////////////////////////
sourcemacd = rsi
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(sourcemacd, fastLength)
slowMA = ema(sourcemacd, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
delta=macd-signal
swap1 = delta>0?green:red
plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)
p1 = plot(macd,color=blue,title='MACD Line')
p2 = plot(signal,color=red,title='Signal')
fill(p1, p2, color=blue)
hline(0)
/////////////////////////MACD //////////////////////////
// Conditions
longCond = na
sellCond = na
longCond := crossover(delta,0)
sellCond := crossunder(delta,0)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( sellCond )
strategy.close("BUY")