리소스 로딩... 로딩...

SMA RSI 이중 필터 단기 거래 전략

저자:차오장, 날짜: 2023-10-08 12:14:36
태그:

전반적인 설명

이 전략은 간단한 이동 평균 (SMA) 및 상대적 강도 지수 (RSI) 인디케이터를 기반으로 합니다. RSI가 엔트리 레벨을 넘고 클로즈 가격이 SMA 이하일 때 단축됩니다. 스톱 로스 또는 영업 신호가 나타날 때 포지션을 닫습니다. 이중 필터는 비효율적인 거래를 피하는 데 도움이됩니다.

원칙

이 전략은 두 가지 지표에 기초하여 시장을 평가합니다.

  1. SMA: 지난 200일 동안의 폐쇄 가격의 단순한 이동평균을 기반으로 계산되며 중장기 트렌드를 나타냅니다.

  2. RSI: 최근 14일 동안의 폐쇄 가격의 상대적 강도에 기초하여 계산되며, 단기적인 과잉 구매/ 과잉 판매 수준을 나타냅니다.

RSI가 51을 넘어서 과잉 매수 구역으로 넘어가고 SMA 라인을 넘으면 단기 및 중장기 트렌드가 분분하고 있음을 나타냅니다. 그래서 단기 지점이 열립니다.

그 후, 스톱 로스 및 트레이프 라인이 설정됩니다. 포지션은 스톱 로스에 대한 RSI가 32 이하로 떨어지거나 RSI가 54 이상으로 넘어지거나 스톱 로스에 대한 스톱 로스가 맞을 때 닫습니다.

강점

  1. 이중 필터 지표는 입시 신호의 정확성을 높인다. RSI는 단기 과반 매수 수준을 결정하고 SMA는 중장기 하락 신호를 결정하며, 둘을 결합하면 신호가 더 신뢰할 수 있다.

  2. 트레일링 스톱은 가격 움직임에 따라 수익을 잠금하고 수익을 반환하는 것을 피합니다.

  3. 이 논리는 간단하고 직설적이며 이해하기 쉽고 수정하기 쉽습니다.

위험성

  1. 거래량이나 변동성 같은 요소를 고려하지 않습니다.

  2. RSI 매개 변수는 고정되어 있으며 모든 제품과 시간 프레임에 맞지 않을 수 있습니다.

  3. 슬라이드 및 수수료와 같은 거래 비용을 고려하지 않습니다.

  4. 전략은 매우 간단하고 확장할 수 있는 여지가 제한적입니다.

개선 할 수 있는 분야

  1. 가장 좋은 조합을 찾기 위해 RSI와 SMA 매개 변수를 테스트하고 최적화합니다.

  2. 트레일링 스톱, 비율 기반 스톱과 같은 더 많은 종류의 스톱 손실/이익 취득 방법을 추가합니다.

  3. 트렌드 필터 지표 MACD를 추가하여 트렌드에 반대하는 거래를 피합니다.

  4. 부피 지표를 고려하여 부피가 낮은 거짓 브레이크를 필터링합니다.

요약

이 전략은 명확한 논리와 약간의 실용적 가치를 가지고 있습니다. 그러나 그 매개 변수는 고정되어 있으며 시장 변화에 적응하지 않습니다. 또한 개선 될 수있는 몇 가지 세부 사항이 있습니다. 전반적으로, 이중 지표 필터링 전략을 배우기 위해 초보자에게 예로 사용될 수 있지만 실제 거래에 대한 추가 테스트와 향상이 필요합니다.


/*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)




더 많은