
이 전략은 이동 평균 집적 지표 ((MACD) 와 상대적으로 강한 지수 ((RSI) 를 두 가지의 강도 지표로 통합하여 주가 반전의 기회를 잡기 위해 구매 및 판매 조건을 설정합니다.
빠른 선, 느린 선 및 신호 선을 포함한 MACD 지표를 계산한다. 빠른 선과 느린 선이 교차하여 거래 신호를 낸다.
RSI 지표를 계산하고, 오버 바이 지역과 오버 소지 지역 마이너스를 설정한다. RSI 지표는 오버 바이 오버 소드를 판단할 수 있다.
MACD 지표의 골드 포크 시드포크 신호와 RSI 지표의 오버 바이 오버 셀 영역 판단을 결합하여 구매 및 판매 조건을 설정합니다:
구매 조건: MACD 단선에서 느린 선을 뚫고 금포크를 형성하고 RSI 지표가 초매도 지역에서 돌아온 후 반전 신호가 있습니다.
판매 조건: MACD 빠른 라인 아래에서 느린 라인을 뚫고 데드 포크를 형성하고, RSI 지표가 초매 지역으로 들어와 반전 신호를 다.
MACD 지표는 주가 트렌드와 매매 시기를 판단한다. RSI 지표는 과매매 상황을 판단한다. 이 둘을 결합하면 매매 정확도를 높일 수 있다.
동시에 두 지표의 필터링 신호를 사용하여 단일 지표로 인해 발생하는 가짜 신호를 피할 수 있습니다.
MACD는 RSI와 결합하여 역전점 전에 구매하고 역전점 후에 판매하여 역전 기회를 잡을 수 있습니다.
이 전략은 트렌드를 추적하거나 반전을 잡을 수 있는, 유연하게 적용될 수 있는, 중간 주파수에서 작동한다.
MACD 지표는 흔들림 상황에서 가짜 신호를 발생시킬 수 있다. RSI 지표의 파라미터 설정은 최적화해야 하며, 그렇지 않으면 가짜 신호도 발생한다.
주식 가격이 단기간에 급격한 변동이 있을 수 있으며, 전략이 무너지면 손실이 발생할 수 있다.
RSI와 MACD의 파라미터 설정을 최적화해야 합니다. 그렇지 않으면 너무 많은 신호 또는 신호가 부족할 수 있습니다.
실장 거래에는 엄격한 자금 관리와 위험 통제가 필요합니다.
MACD 변수의 속속 평균선 설정을 최적화하여 최적의 변수 조합을 찾습니다.
RSI의 오버 바이 오버 소드 마이너스를 최적화하여 잘못된 신호를 방지한다.
단독 손실을 통제하기 위해 손해 방지 장치에 가입하십시오.
다른 지표들, 예를 들어, 브린 밴드, KDJ 등이 포함될 수 있습니다.
다른 거래 전략을 테스트할 수 있습니다. 예를 들어, 브레이크 전략, 트렌드 추적 전략 등등.
이 전략은 MACD와 RSI 두 가지 강도 지표를 동시에 사용하며, 전환점에서 구매 및 판매하며, 강력한 실전 가치를 갖는다. 그러나 지속적인 최적화 파라미터 설정과 엄격한 자금 관리가 필요합니다. 실업에서 좋은 효과를 얻기 위해서는. 이 전략은 전체적으로 유연하며, 다른 상황에 적응할 수 있으며, 실업 검증과 장기간 추적할 가치가 있습니다.
/*backtest
start: 2022-11-13 00:00:00
end: 2023-11-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)
//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought
[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)
avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na
strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)