이 전략은 간단한 이동 평균 (SMA) 및 상대적 강도 지수 (RSI) 인디케이터를 기반으로 합니다. RSI가 엔트리 레벨을 넘고 클로즈 가격이 SMA 이하일 때 단축됩니다. 스톱 로스 또는 영업 신호가 나타날 때 포지션을 닫습니다. 이중 필터는 비효율적인 거래를 피하는 데 도움이됩니다.
이 전략은 두 가지 지표에 기초하여 시장을 평가합니다.
SMA: 지난 200일 동안의 폐쇄 가격의 단순한 이동평균을 기반으로 계산되며 중장기 트렌드를 나타냅니다.
RSI: 최근 14일 동안의 폐쇄 가격의 상대적 강도에 기초하여 계산되며, 단기적인 과잉 구매/ 과잉 판매 수준을 나타냅니다.
RSI가 51을 넘어서 과잉 매수 구역으로 넘어가고 SMA 라인을 넘으면 단기 및 중장기 트렌드가 분분하고 있음을 나타냅니다. 그래서 단기 지점이 열립니다.
그 후, 스톱 로스 및 트레이프 라인이 설정됩니다. 포지션은 스톱 로스에 대한 RSI가 32 이하로 떨어지거나 RSI가 54 이상으로 넘어지거나 스톱 로스에 대한 스톱 로스가 맞을 때 닫습니다.
이중 필터 지표는 입시 신호의 정확성을 높인다. RSI는 단기 과반 매수 수준을 결정하고 SMA는 중장기 하락 신호를 결정하며, 둘을 결합하면 신호가 더 신뢰할 수 있다.
트레일링 스톱은 가격 움직임에 따라 수익을 잠금하고 수익을 반환하는 것을 피합니다.
이 논리는 간단하고 직설적이며 이해하기 쉽고 수정하기 쉽습니다.
거래량이나 변동성 같은 요소를 고려하지 않습니다.
RSI 매개 변수는 고정되어 있으며 모든 제품과 시간 프레임에 맞지 않을 수 있습니다.
슬라이드 및 수수료와 같은 거래 비용을 고려하지 않습니다.
전략은 매우 간단하고 확장할 수 있는 여지가 제한적입니다.
가장 좋은 조합을 찾기 위해 RSI와 SMA 매개 변수를 테스트하고 최적화합니다.
트레일링 스톱, 비율 기반 스톱과 같은 더 많은 종류의 스톱 손실/이익 취득 방법을 추가합니다.
트렌드 필터 지표 MACD를 추가하여 트렌드에 반대하는 거래를 피합니다.
부피 지표를 고려하여 부피가 낮은 거짓 브레이크를 필터링합니다.
이 전략은 명확한 논리와 약간의 실용적 가치를 가지고 있습니다. 그러나 그 매개 변수는 고정되어 있으며 시장 변화에 적응하지 않습니다. 또한 개선 될 수있는 몇 가지 세부 사항이 있습니다. 전반적으로, 이중 지표 필터링 전략을 배우기 위해 초보자에게 예로 사용될 수 있지만 실제 거래에 대한 추가 테스트와 향상이 필요합니다.
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © abdllhatn //@version=5 // strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100) // Inputs sma_length = input(200, title="SMA Length") rsi_length = input(14, title="RSI Length") rsi_entry = input(51, title="RSI Entry Level") rsi_stop = input(54, title="RSI Stop Level") rsi_take_profit = input(32, title="RSI Take Profit Level") // Indicators sma_value = ta.sma(close, sma_length) rsi_value = ta.rsi(close, rsi_length) var float trailingStop = na var float lastLow = na // Conditions shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value if (shortCondition) strategy.entry("Sell", strategy.short) trailingStop := na lastLow := na if (strategy.position_size < 0) if (na(lastLow) or close < lastLow) lastLow := close trailingStop := close if not na(trailingStop) and close > trailingStop strategy.close("Sell") if (rsi_value >= rsi_stop) strategy.close("Sell") if (rsi_value <= rsi_take_profit) strategy.close("Sell") // Plot plot(sma_value, color=color.red, linewidth=2)