공격적 인 바닥 스니핑 양적 전략

저자:차오장, 날짜: 2024-01-18 16:25:33
태그:

img

전반적인 설명

이 전략은 하락 추세에서 탁월한 볼륨을 감지하여 단기 바닥을 식별하고 과판 상태에서 긴 포지션을 취합니다. 공격적인 단기 거래 전략입니다.

전략 원칙

매출액이 SMA 기반 평균 매출액보다 2 표준편차를 초과하면 매출액이 부채로 간주됩니다. 한편, 30 이하의 RSI는 과잉 판매 상태를 나타냅니다. 두 조건이 충족되면 단기 바닥으로 판단되며 곧장 장기 포지션을 취합니다. 포지션은 일정 기간 (예를 들어 10 바) 후에 닫을 것입니다.

이 전략의 논리는 간단합니다.

  1. 기준으로 볼륨의 20bar SMA를 계산합니다
  2. 20bar 부피의 2개의 표준편차를 부채 부피의 기준으로 계산합니다.
  3. 초판 상태 판단을 위해 20 바 RSI를 계산합니다.
  4. 부피가 기준값 + 2 표준편차와 RSI < 30을 초과하면 단기 바닥으로 판단합니다.
  5. 아래쪽에서 바로 긴 위치를 취하라
  6. 10 바 후에 자동으로 닫기 위치

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 간단한 논리, 이해하기 쉽고 최적화
  2. 단기 전환점을 감지하기 위해 부채를 활용
  3. RSI는 오버셀드 영역에서만 장점을 취하고 상위권에 쫓아가는 것을 피합니다.
  4. 자동 스톱 손실은 바닥에서 위험 회피를 극대화합니다.

요약하자면, 이 전략은 트렌드 반전을 포착하기 위해 부피 파업의 이점을 이용하면서 위험을 엄격히 통제합니다. 그것은 신뢰할 수있는 공격적인 장기 전략입니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 부피와 RSI는 잘못된 브레이크오웃 신호를 생성하여 잘못된 로그와 손실을 유발할 수 있습니다.
  2. 고정된 스톱 러스 시간은 상당한 시장 반전 시 손실을 멈추지 못하거나 너무 일찍 손실을 멈추지 못할 수 있습니다.
  3. 최저 파라미터 조정이 너무 적은 신호 또는 너무 많은 신호로 이어질 수 있습니다.

이러한 위험을 해결하기 위해 최적화는 다음과 같은 측면에서 수행 될 수 있습니다.

  1. 다른 지표들을 추가해서 잘못된 신호를 필터링해
  2. 동적 후속 스톱 손실을 고정된 바의 숫자를 대신 설정합니다.
  3. 견고성을 보장하기 위해 포괄적인 매개 변수 테스트와 조정

최적화 방향

이 전략은 다음과 같은 측면에서 더 이상 최적화 될 수 있습니다.

  1. 거짓 신호를 피하기 위해 볼륨 브레이크의 신뢰성을 판단하기 위해 ML 모델을 추가
  2. 고정 바 대신 적응 스톱 손실 메커니즘을 추가
  3. 미결 된 볼륨 매개 변수를 위한 다차원 데이터 세트 최적화
  4. ML 스크리닝을 사용하여 과판 신호의 정확도를 높여
  5. 알파를 개선하기 위해 감정 분석을 포함

더 진보된 기술을 도입하면 안정성, 알파 및 샤프 비율에 상당한 개선이 가능합니다.

결론

요약하자면, 이것은 매우 간단하고 직설적이고 논리적 인 단기 브레이크아웃 전략입니다. 트렌드 역전을 감지하기 위해 부피를 적절히 활용하고 위험을 엄격하게 제어하면 탄탄한 성과를 얻을 수 있습니다. 그러나 잘못된 신호 및 매개 변수 안정성의 위험이 있습니다. 이러한 것들은 전략을 더 개선하기 위해 더 진보된 기술을 도입함으로써 점차적으로 해결 될 수 있습니다.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
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/
// © footlz

//@version=4
strategy("Bottom catch strategy", overlay=true)

v_len = input(20, title="Volume SMA Length")
mult = input(2)
rsi_len = input(20, title="RSI Length")
oversold = input(30, title="Oversold")
close_time = input(10, title="Close After")

v = volume
basis = sma(v, v_len)
dev = mult * stdev(v, v_len)
upper_volume = basis + dev

rsi = rsi(close, rsi_len)

long = v > upper_volume and rsi < oversold

strategy.entry("Long", true, when=long)

passed_time = 0.0
if strategy.position_size != 0
    passed_time := 1
else
    passed_time := 0

if strategy.position_size != 0 and strategy.position_size[1] != 0
    passed_time := passed_time[1] + 1

if passed_time >= close_time
    strategy.close_all()

// If want to enable plot, change overlay=false.
v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0)

// plot(v, title="volume", color=v_color, style=plot.style_columns)
// plot(upper_volume, title="Threshold", color=color.aqua)

더 많은