이 전략은 간단한 이동 평균 ((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)