확률적 지표 교차를 기반으로 한 양방향 손절매 및 손절매 전략


생성 날짜: 2024-03-08 15:12:42 마지막으로 수정됨: 2024-03-08 15:12:42
복사: 1 클릭수: 568
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

확률적 지표 교차를 기반으로 한 양방향 손절매 및 손절매 전략

개요

이 전략은 무작위 지표 (Stochastic Oscillator) 의 교차 신호를 이용하여 매매를 촉발한다. 무작위 지표의 %K 선이 아래에서 위쪽으로 %D 선을 통과하고 %K 값이 20보다 낮으면, 포지션을 오픈한다. %K 선이 위쪽에서 아래로 %D 선을 통과하고 %K 값이 80보다 높으면, 포지션을 오픈한다. 동시에, 이 전략은 중지 (Take Profit) 과 중지 (Stop Loss) 거리를 설정하여 손실을 확대하지 않도록 포지션을 관리한다. 또한, 이 전략은 논리적인 조건을 설정하여 포지션을 청산합니다.

전략 원칙

  1. 14주기 무작위 지표의 %K값과 %D값을 계산하고, 간단한 이동 평균을 사용하여 그것들을 부드럽게 처리한다.
  2. %K선과 %D선이 교차하는지 판단하기:
    • %K 라인이 아래에서 D 라인을 가로질러 올라갈 때, 그리고 %K 값이 20보다 낮으면, 구매 신호를 유발하고, 더 많은 위치를 열는다.
    • %K 라인이 %D 라인을 위아래로 통과하고 %K 값이 80보다 높을 때, 팔기 신호를 트리거하고, 포지션을 공백하게 한다.
  3. 스톱 및 스톱 손실 거리를 설정 (Ticks 단위로), 오픈 된 위치를 관리하기 위해:
    • 다중 상점 포지션의 경우, 중지 가격을 포지션 개시 가격 위에 TP Ticks로 설정하고, 중지 가격을 포지션 개시 가격 아래에 SL Ticks로 설정합니다.
    • 빈 상점 포지션의 경우, 중지 가격을 포지션 개시 가격 아래 TP Ticks로 설정하고, 중지 가격을 포지션 개시 가격 위 SL Ticks로 설정합니다.
    • 가격이 스톱 스톱 또는 스톱 로스 가격에 도달하면 해당 포지션을 청산하십시오.
  4. 논리적 조건 평평을 설정합니다:
    • %K 라인이 %D 라인을 위아래로 통과하고 %K 값이 80보다 작으면 모든 다중 상위 포지션을 평행한다.
    • %K 라인이 %D 라인을 아래에서 위로 통과하고 %K 값이 20보다 크면 모든 빈 상점 포지션을 평행한다.

우위 분석

  1. 이 전략은 무작위 지표를 주요 거래 신호 지표로 사용하며, 무작위 지표는 양적 거래에서 널리 사용되며, 시장의 과매매 상태를 더 잘 포착할 수 있다.
  2. 전략은 동시에 스톱스톱과 논리적인 조건 평점을 설정하여 위험을 어느 정도 제어하고 손실을 확대하지 않도록합니다.
  3. 전략 논리는 명확하고, 이해하기 쉽고, 구현하기 쉬우며, 초보자들도 배울 수 있고, 사용할 수 있습니다.

위험 분석

  1. 무작위 지표는 불안한 시장에서 오류 신호를 더 많이 발산하여 거래 빈도가 너무 높게 거래 비용을 증가시킬 수 있습니다.
  2. 이 전략은 포지션에 동적으로 조정되지 않으며, 시장이 급격하게 변동할 때 고정된 스톱 스톱 손실 거리는 위험을 효과적으로 제어할 수 없습니다.
  3. 전략의 매개 변수 (예를 들어, 무작위 지표 주기, 스톱 스톱 리스 거리 등) 는 고정되어 있으며, 다양한 시장 상황에 최적화되어 있지 않으며, 전략의 적응성에 영향을 줄 수 있다.

최적화 방향

  1. 거래 신호의 신뢰성을 높이고 오류 신호를 줄이기 위해 다른 기술 지표 또는 시장 감정 지표를 도입하여 무작위 지표와 함께 사용할 수 있습니다.
  2. 포지션 관리를 최적화하여, 시장의 변동 상황에 따라 스톱 스톱 손실 거리를 조정하거나, 케일리 공식과 같은 더 고급 자금 관리 방법을 채택한다.
  3. 유전 알고리즘, 격자 검색과 같은 최적화 방법을 사용하여 전략 매개 변수를 최적화하여 다른 시장 상황에 맞는 최적의 매개 변수 조합을 찾습니다.
  4. 불리한 시장 환경에서의 거래를 줄이기 위해 거래 기간, 거래 품종의 변동성 등과 같은 필터 조건을 추가하는 것을 고려하십시오.

요약하다

무작위 지표의 교차를 기반으로 한 쌍방향 스톱 스톱 전략은 간단하고 이해하기 쉬운 양적 거래 전략으로, 무작위 지표의 교차 신호를 통해 매매를 촉발하고, 논리적 조건 평정 포지션을 설정하여 위험을 관리합니다. 이 전략의 장점은 논리적으로 명확하고 초보자 학습 및 사용에 적합합니다. 그러나 동시에 몇 가지 위험이 있습니다.

전략 소스 코드
/*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")