이 전략은 간단한 이동 평균 (SMA) 및 상대적 강도 지수 (RSI) 인디케이터에 기반합니다. RSI가 정의된 엔트리 레벨을 넘어서고 종료 가격이 SMA 이하로 되면 짧은 순서로 이동합니다. 트렌드 다음 및 과잉 구매 / 과잉 판매 인디케이터를 결합하여 중장기 시간 내에 반전 기회를 포착하는 것을 목표로합니다.
전체 트렌드 방향을 결정하기 위해 SMA (200 기간) 를 사용하십시오. 가격이 SMA 이하일 때 단축 기회를 찾으십시오.
RSI (14 기간) 를 사용하여 과잉 구매/ 과잉 판매 조건을 식별합니다. RSI가 51 이상의 신호를 통과하면 판매 동력을 증가시키고, 단위로 진입 할 수 있습니다.
쇼트 포지션을 열면 최저 폐쇄 가격에 마감 손실을 설정합니다. RSI가 54 이상 또는 32 이하로 넘으면 포지션을 닫습니다.
스톱 손실은 세 가지 종류가 있습니다. 가격 스톱, RSI 스톱, 수익 스톱.
트렌드를 따르는 지표와 과잉 매수/ 과잉 판매 지표를 결합하면 엔트리의 타이밍 정확도가 향상됩니다.
후속 스톱 손실은 실시간 가격 변화에 따라 수익을 보호 할 수 있으며 딱딱한 스톱 손실을 피할 수 있습니다.
RSI의 양방향 트리거는 이윤을 확보하고 과도한 회수 손실을 방지하는 데 도움이 됩니다.
고정된 매개 변수를 가진 간단한 지표를 사용하면 중장기 거래에 쉽게 구현됩니다.
SMA와 RSI 매개 변수는 모든 제품과 시간 프레임에 적합하지 않을 수 있으므로 최적화가 필요합니다.
미끄러짐과 수수료와 같은 거래 비용은 무시되며 실제 PnL에 영향을 미칩니다.
부피와 시장 구조와 같은 다른 요소는 고려되지 않아 신뢰할 수 없는 신호가 발생합니다.
너무 많은 지표에 의존하고 가격 동작 자체를 무시하면 역전 시기를 놓칠 수 있습니다.
스톱 로즈 방법은 상대적으로 딱딱하고, 시장의 큰 변화에 적응할 수 없습니다.
가장 좋은 조합을 찾기 위해 SMA 기간과 RSI 매개 변수를 테스트하고 최적화합니다.
부피 지표가 추가되면 부피가 낮을 때 잘못된 파장을 방지할 수 있습니다.
MACD, 볼링거 밴드 등과 같은 다른 지표와 테스트 조합
기계 학습 알고리즘을 추가하여 역사적인 데이터로 훈련함으로써 신호의 정확성을 향상시킵니다.
스톱 로스를 최적화하여 보다 유연하게 시장 변화에 적응할 수 있습니다.
단일 거래 손실 금액을 제어하기 위해 위험 관리를 추가합니다.
이 전략은 SMA와 RSI 지표의 강점을 통합하여 소란스러운 거래 기회를 필터링합니다. 간단한 논리는 구현하기 쉽지만 여전히 파라미터 및 규칙 최적화와 함께 장기적으로 안정적으로 작동하기 위해 적절한 위험 통제가 필요합니다. 다른 지표 또는 알고리즘과 결합하여 더욱 견고함을 높이기 위해 탐구 할 가치가 있습니다.
/*backtest start: 2022-10-01 00:00:00 end: 2023-10-07 00:00:00 period: 2d basePeriod: 1d 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)