SMA와 RSI 조합 거래 전략


생성 날짜: 2023-10-08 11:40:49 마지막으로 수정됨: 2023-10-08 11:40:49
복사: 0 클릭수: 993
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 단순 이동 평균 (SMA) 과 상대적으로 강한 지수 (RSI) 지표에 기반하며, RSI 값이 설정된 입수 신호선을 통과하고 마감 가격이 SMA보다 낮을 때 공백을 뚫어 스톱 손실을 추적하거나 RSI가 다시 출구 신호 스톱 손실을 유발합니다. 이 전략은 트렌드를 따라가는 것과 오버 바이 오버 세 지표를 결합하여 중간에 짧은 선 반전 기회를 잡기 위해 고안되었습니다.

전략 원칙

  1. SMA ((200주기) 를 사용하여 큰 트렌드 방향을 판단하고, 가격이 SMA보다 낮을 때 포잉 기회가 발생합니다.

  2. RSI ((14주기) 를 사용하여 과매매 상황을 판단하십시오. RSI가 51을 넘으면 판매자의 힘이 증가하여 상장 할 수 있습니다.

  3. 포지션을 상장한 후, 최저 폐쇄 가격으로 손실을 추적하는 스톱 지점으로. RSI가 54을 넘거나 32을 넘으면 손실이 사라집니다.

  4. 3가지의 손실을 막는 방법: 가격 손실, RSI 손실, 수익 손실.

우위 분석

  1. 트렌드 추적과 오버 바이 오버 셀 지표의 결합으로, 진입 시점의 정확성을 향상시킬 수 있다.

  2. 트래킹 스톱은 가격의 실시간 변화에 따라 수익을 보호하고 너무 많은 스톱을 방지할 수 있습니다.

  3. RSI의 양방향 트리거는 수익을 고정시키고 과도한 반동으로 인한 손실을 방지합니다.

  4. 간단한 지표와 매개 변수가 고정되어 있으며, 중단선 조작에 적합하며, 쉽게 습득할 수 있다.

위험 분석

  1. SMA 및 RSI 파라미터 설정은 모든 품종과 주기에는 적합하지 않을 수 있으며 최적화가 필요합니다.

  2. 실제 수익과 손실은 지점과 수수료와 같은 거래 비용을 고려하지 않고 영향을 받는다.

  3. 거래량과 시장 구조와 같은 다른 요소를 종합적으로 고려하지 않으면 신호가 신뢰할 수 없습니다.

  4. 지표에 너무 의존하고 가격 자체를 무시하면 전환점을 놓칠 수 있습니다.

  5. 하지만, 그 중에서도 가장 중요한 것은, 상쇄금융은 상대적으로 고정적이고, 엄청난 시장변동에 대응할 수 없다는 것입니다.

최적화 방향

  1. SMA 주기와 RSI 파라미터를 테스트하고 최적화하여 최적의 파라미터 조합을 찾습니다.

  2. 거래량 지표를 추가하는 것을 고려하여 낮은 양의 가짜 돌파구를 피하십시오.

  3. MACD, 브린 밴드 등과 같은 다른 지표의 조합을 테스트할 수 있다.

  4. 기계 학습 알고리즘을 추가하고, 역사 데이터 훈련을 활용하여 신호의 정확도를 향상시킵니다.

  5. 손실을 줄이는 방법을 최적화하여 더 탄력적이고, 변화하는 상황에 적응할 수 있도록 한다.

  6. 위험 관리 장치에 가입하여 단독 손실을 통제하십시오.

요약하다

이 전략은 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)