스토카스틱 크로스오버를 기반으로 한 양방향 스톱-러스-프로프트 전략

저자:차오장, 날짜: 2024-03-08 15:12:42
태그:

img

전반적인 설명

이 전략은 구매 및 판매 작전을 촉발하기 위해 스토카스틱 오시레이터의 크로스오버 신호를 이용한다. %K 라인이 %D 라인의 위를 넘어서서 %K 값이 20보다 낮을 때, 긴 포지션을 개척한다. %K 라인이 %D 라인의 아래를 넘어서서 %K 값이 80보다 높을 때, 짧은 포지션을 개척한다. 또한, 전략 세트는 포지션을 관리하고 손실의 확장을 방지하기 위해 이익과 스톱 손실 거리를 취하고 있다. 게다가, 전략은 또한 포지션을 닫기 위한 논리적 조건을 설정한다. 스토카스틱 오시레이터가 개시 신호에 반대되는 크로스오버 신호를 표시할 때, 이익 또는 스톱 손실 가격에 도달하지 않았더라도 해당 긴 또는 짧은 포지션을 닫을 것이다.

전략 원칙

  1. 14주기 스토카스틱 오시레이터의 %K와 %D 값을 계산하고 간단한 이동 평균을 사용하여 평평화합니다.
  2. 직선 %K와 직선 %D가 교차했는지 확인합니다:
    • %K 라인이 %D 라인의 위를 넘어서고 %K 값이 20보다 낮으면 구매 신호가 발생하고 긴 포지션을 개척합니다.
    • %K 라인이 %D 라인의 아래를 넘어가고 %K 값이 80보다 높으면 판매 신호가 발생하고 짧은 포지션을 개척합니다.
  3. 오픈 포지션을 관리하기 위해 수익을 취하고 손실을 멈추는 거리를 설정합니다.
    • 긴 포지션의 경우, 영업 가격 TP를 입시 가격보다 높게 설정하고, 스톱 로스 가격 SL를 입시 가격보다 낮게 설정합니다.
    • 짧은 포지션의 경우, 영업 가격 TP를 입시 가격 아래로 설정하고, 스톱 로스 가격 SL를 입시 가격 위로 설정합니다.
    • 가격이 이윤을 취하거나 손해를 막는 가격에 도달하면 해당 포지션을 닫습니다.
  4. 포지션 폐쇄에 대한 논리적 조건을 설정합니다.
    • %K 선이 %D 선 아래를 넘어서면 %K 값이 80보다 작거나 같으면 모든 긴 포지션을 닫습니다.
    • %K 라인이 %D 라인의 위를 넘어서면 %K 값이 20보다 크거나 같으면 모든 단편 포지션을 닫습니다.

이점 분석

  1. 이 전략은 양적 거래에서 널리 사용되는 주 거래 신호 지표로 스토카스틱 오시레이터를 사용하며 과잉 구매 및 과잉 판매 시장 조건을 효과적으로 파악 할 수 있습니다.
  2. 이 전략은 수익/손실 중단과 합리적 조건으로 포지션을 닫을 수 있도록 설정하여 어느 정도 위험을 통제하고 손실의 확장을 방지할 수 있습니다.
  3. 전략 논리는 명확하고 이해하기 쉽고 적용하기 쉽고 초보자도 배울 수 있고 사용할 수 있습니다.

위험 분석

  1. 스토카스틱 오시레이터는 불안정한 시장에서 많은 잘못된 신호를 생성하여 높은 거래 빈도와 거래 비용을 증가시킬 수 있습니다.
  2. 이 전략은 포지션을 동적으로 조정하지 않으며, 고정된 수익 및 스톱 손실 거리는 심각한 시장 변동 중에 위험을 효과적으로 제어하지 않을 수 있습니다.
  3. 전략의 매개 변수 (주상주변기 기간, 수익을 취하고 손실을 멈추는 거리 등) 는 고정되어 있으며 다른 시장 조건에 최적화되어 있지 않으며, 이는 전략의 적응력에 영향을 줄 수 있습니다.

최적화 방향

  1. 거래 신호의 신뢰성을 높이고 잘못된 신호를 줄이기 위해 스토카스틱 오시레이터와 함께 사용할 다른 기술적 지표 또는 시장 정서 지표를 도입하는 것을 고려하십시오.
  2. 시장의 변동성 조건에 따라 수익을 취하고 손실을 멈추는 거리를 동적으로 조정함으로써 포지션 관리를 최적화하거나 켈리 기준과 같은 더 진보된 자금 관리 방법을 채택하십시오.
  3. 유전자 알고리즘과 그리드 검색과 같은 최적화 방법을 사용하여 전략 매개 변수를 최적화하고 다른 시장 조건에 적응하는 최적의 매개 변수 조합을 찾습니다.
  4. 불리한 시장 조건에서 거래를 줄이기 위해 거래 시간 및 거래 도구의 변동성과 같은 필터링 조건을 추가하는 것을 고려하십시오.

요약

스토카스틱 크로스오버를 기반으로 한 양방향 스톱-러스 (stop-loss) 취리 전략은 간단하고 이해하기 쉬운 양적 거래 전략이다. 스토카스틱 오시일레이터의 크로스오버 신호를 통해 구매 및 판매 작전을 유발하고 위험을 관리하기 위해 수익/손실 취리 및 포지션 폐쇄의 논리적 조건을 설정합니다. 이 전략의 장점은 논리가 명확하고 초보자도 배우고 사용할 수 있도록 적합하다는 것입니다. 그러나 스토카스틱 오시일레이터가 불안정한 시장에서 많은 잘못된 신호를 생성 할 수 있으며 고정 포지션 관리 방법이 다른 시장 조건에 적응하지 않을 수 있습니다. 전략의 성능을 더욱 향상시키기 위해 다른 지표를 도입하고 포지션 관리를 고려하고 매개 변수 최적화 및 필터링 템플릿 조건을 추가 할 수 있습니다. 일반적으로이 전략은 기본적인 양적 거래 전략으로 사용될 수 있으며 실제 최적화 및 지속적인 개선을 통해 좋은 거래 결과를 얻을 수 있습니다.


/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("How to force strategies fire exit alerts not reversals", initial_capital = 1000, slippage=1, commission_type = strategy.commission.cash_per_contract, commission_value = 0.0001, 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(600, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(1200, 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")

더 많은