SMA 기반의 이중 추진 전략

저자:차오장, 날짜: 2023-11-22 15:42:29
태그:

img

전반적인 설명

이 전략은 SMA 지표에 기반한 간단한 이중 추진 전략을 구축합니다. 가격이 20 기간 최고 SMA를 넘을 때 길게 가고 가격이 20 기간 최저 SMA를 넘을 때 짧게됩니다. 스톱 손실 출구도 설정됩니다.

전략 논리

이 전략은 거래 방향을 결정하기 위해 가장 높은 가격과 가장 낮은 낮은 가격의 20 기간 SMA를 사용합니다. 가격이 가장 높은 SMA를 넘으면 상승 추세로 간주되므로 길게 이동합니다. 가격이 가장 낮은 SMA를 넘으면 하락 추세로 간주되므로 짧게 이동합니다.

구체적으로, 전략은 먼저 최고 최고 및 최저 낮은 가격의 20 기간 SMA를 계산하고 지표 라인을 그래프화합니다. 다음 거래 논리를 설정합니다.

롱 엔트리: 마이너스 마이너스 마이너스
긴 출구: 0.99 * 가장 높은 SMA 이하의 폐쇄 가격 교차

단기 진입: 마감 가격은 최저 SMA 아래로 넘어갑니다.
짧은 출구: 1.01 * 최저 SMA 이상의 닫기 가격 교차

따라서 이중 추진 전략을 따르는 경향이 형성됩니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 트렌드 방향을 결정하기 위해 SMA를 사용하는 것은 간단하고 실용적입니다.
  2. 가장 높은 SMA와 가장 낮은 SMA는 지원/저항 라인으로 작용합니다.
  3. 큰 손실으로부터의 보호를 극대화하기 위해 합리적인 스톱 손실 설계
  4. 좋은 적응력, 다른 제품과 시간 프레임에 사용할 수 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. SMA는 지연 효과, 트렌드 전환점을 놓칠 수 있습니다.
  2. 갑작스러운 시장 사건으로부터 보호되지 않습니다.
  3. 거래 비용 영향은 고려되지 않았습니다.

이러한 위험은 다른 지표를 결합, 중지 손실 설정, 매개 변수 조정 등으로 제어 및 감소 할 수 있습니다.

개선 방향

이 전략은 다음 측면에서도 개선될 수 있습니다.

  1. 추세를 결정하기 위해 MACD, KDJ와 같은 다른 지표를 결합
  2. 중단, 가격 제한 등과 같은 갑작스러운 사건에 대한 보호를 추가합니다.
  3. SMA 기간을 최적화하고 가장 좋은 매개 변수 조합을 찾습니다
  4. 다른 제품과 시간 프레임에 대한 최적의 매개 변수를 찾아
  5. 거래 비용의 영향을 추정하고 최적의 스톱 로스를 설정하고 수익을 취합니다.

결론

이 전략의 전반적인 논리는 명확하고 구현하기 쉽습니다. 트렌드 방향을 결정하고 합리적인 입출입 규칙을 설정하는 데 SMA를 사용하여 좋은 결과를 얻을 수 있습니다. 추가 최적화에 대한 여지가 있으며 다른 기술과 결합하면 장기적으로 추적 할 가치가있는 유망한 전략이 될 수 있습니다.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 10m
basePeriod: 1m
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/
// © AlanAntony

//@version=4


strategy("ma 20 high-low",overlay=true)

//compute the indicators

smaH = sma(high, 20)
smaL = sma(low, 20)


//plot the indicators
plot(smaH,title="smaHigh", color=color.green, linewidth=2)


plot(smaL,title="smaLow", color=color.red, linewidth=2)


//trading logic
enterlong = crossover(close,smaH) //positive ema crossover
exitlong = crossunder(close,0.99*smaH)  //exiting long


entershort = crossunder(close,smaL) //negative EMA Crossover
exitshort = crossover(close,1.01*smaH) //exiting shorts


notintrade = strategy.position_size<=0
bgcolor(notintrade ? color.red:color.green)

//execution logic

start = timestamp(2015,6,1,0,0)
//end = timestamp(2022,6,1,0,0)

if time >= start
    strategy.entry( "long", strategy.long,1, when = enterlong)
    strategy.entry( "short", strategy.short,1, when = entershort) 
    
    strategy.close("long", when = exitlong)
    strategy.close("short", when = exitshort)

//if time >= end
   // strategy.close_all()

더 많은