스톱 로스와 영업 취득을 가진 이중 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2024-02-22 17:30:38
태그:

img

전반적인 설명

스톱 로스 (Stop Loss) 와 취리 (Take Profit) 를 가진 이중 이동 평균 크로스오버 전략 (Dual Moving Average Crossover Strategy) 은 트렌드를 따르는 전략이다. 이 전략은 엔트리 및 출구 신호를 결정하기 위해 스토카스틱 지표의 두 이동 평균 K 및 D 라인의 황금 십자가와 죽음의 십자가를 사용합니다. 또한 위험을 제어하기 위해 스톱 로스 (Stop Loss) 와 취리 (Take Profit) 를 사용합니다.

전략 논리

이 전략의 핵심 지표는 스토카스틱의 빠른 라인 K와 느린 라인 D이다. 빠른 라인 K는 원형 스토카스틱 값의 3 기간 간단한 이동 평균이다. 느린 라인 D는 빠른 라인 K의 3 기간 간단한 이동 평균이다. K 라인이 D 라인의 위를 넘을 때 상승 추세와 긴 진입을 나타내는 황금 십자가가 생성된다. K 라인이 D 라인의 아래를 넘을 때 하락 추세와 짧은 진입을 나타내는 죽음의 십자가가 생성된다.

또한, 이 전략은 스토카스틱 값이 과판된 영역 (20 이하) 또는 과반된 영역 (80 이상) 에 있을 때만 거래 신호가 활성화되는 조건을 설정합니다. 이것은 일부 잘못된 신호를 필터링하는 데 도움이됩니다.

시장에 진입한 후, 이 전략은 위험을 제어하기 위해 스톱 로스를 사용하고 이익을 취합니다. 이윤을 취하는 것은 입시 가격에서 120 틱 떨어져 있으며 스톱 로스는 입시 가격에서 60 틱 떨어져 있습니다. 가격이 어느 수준에 도달하면 포지션은 닫힐 것입니다.

장점

  • 트렌드 방향을 정확하게 결정하기 위해 스토카스틱 지표를 사용
  • 과반 판매 및 과반 구매 상태는 잘못된 신호를 필터로
  • 스톱 손실 및 수익 제한 단일 거래 손실 및 전체 위험을 제어

위험성

  • 스토카스틱은 범위에 묶인 시장에서 잘못된 신호를 생성할 수 있습니다.
  • 고정 스톱 손실 및 수익 취득은 동적인 시장 변화에 적응하지 못합니다.
  • 최대 사용량을 제한할 수 없습니다.

위험 해결 방법:

  • 콤보 확인을 위해 MACD, KDJ와 같은 다른 지표를 추가
  • 동적 스톱 로스 및 수익 레벨을 설정
  • 최대 마감 출구 메커니즘을 추가

최적화 방향

  • 신호 정확성을 향상시키기 위해 MACD, KDJ 등과 결합
  • ATR에 동적 스톱 로스/프로프트 취득 기준을 설정합니다.
  • 최대 채용 출출 기준을 추가합니다.
  • 최적의 매개 변수를 위해 스톱 로스/프로피트 취득 계수를 최적화

요약

스톱 로스 (Stop Loss) 와 영리 (Take Profit) 를 가진 이중 이동 평균 크로스오버 전략은 트렌드를 따르는 간단하고 실용적인 전략이다. 이 전략은 엔트리 타이밍과 위험 통제를 위해 스토카스틱의 이중 이동 평균 시스템을 사용한다. 이 효과적이고 구현하기 쉬운 전략은 알고리즘 거래에 적합하다. 추가 최적화는 안정적인 수익성있는 거래 전략으로 바꿀 수 있다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategy alerts workaround", overlay=true) 
// disclaimer: this content is purely educational, especially please don't pay attention to backtest results on any timeframe/ticker

// Entries logic: based on Stochastic crossover
k = ta.sma(ta.stoch(close, high, low, 14), 3)
d = ta.sma(k, 3)
crossover = ta.crossover(k,d)
crossunder = ta.crossunder(k,d)

if (crossover and k < 20)
	strategy.entry("Buy", strategy.long, alert_message="buy")
if (crossunder and k > 80)
	strategy.entry("Sell", strategy.short, alert_message="sell")

// StopLoss / TakeProfit exits:
SL = input.int(60, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(120, title="TakeProfit Distance from entry price (in Ticks)")
strategy.exit("xl", from_entry="Buy", loss=SL, profit=TP, alert_message="closebuy")
strategy.exit("xs", from_entry="Sell", loss=SL, profit=TP, alert_message="closesell")

// logical conditions exits:
if (crossunder and k <= 80)
	strategy.close("Buy", alert_message="closebuy")
if (crossover and k >= 20)
	strategy.close("Sell", alert_message="closesell")

더 많은