양방향 추적 반전 양적 거래 전략


생성 날짜: 2024-02-22 13:46:51 마지막으로 수정됨: 2024-02-22 13:46:51
복사: 0 클릭수: 615
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

양방향 추적 반전 양적 거래 전략

이 전략은 가격 역전 신호와 거래량 지표와 결합한 쌍방향 추적 메커니즘을 사용하여 자동화 된 양적 거래를 구현합니다. 그것의 가장 큰 장점은 신뢰할 수있는 위험 제어에 있으며, 스톱 손실을 추적하여 이익을 잠금하고 손실을 확대하지 않습니다. 동시에, 역전 거래 신호는 전략의 승률을 높입니다. 이 글은 전략의 원리, 장점, 위험 및 최적화 방향을 자세히 분석합니다.

전략 원칙

이 전략은 두 개의 자 전략으로 구성된다. 첫 번째 자 전략은 무작위 지표를 사용하여 가격 역전 신호를 결정합니다. 구체적인 논리는 다음과 같습니다:

만약 2일 연속으로 클로즈오프가 상승하고 9일에는 슬로우 K 라인이 50보다 낮으면 더 많이 한다. 만약 2일 연속으로 클로즈오프가 하락하고 9일에는 패스트 K 라인이 50보다 높으면 공백한다.

두 번째 하위 전략은 합성 거래량 지표, 판단력의 강점이다. 구체적으로, 현재 거래량을 40일 거래량 평균값과 비교하는 것이다. 현재 거래량이 평균값보다 높으면, 공격할 수 있는 양으로 간주하고, 반전 신호로, 공백을 한다. 현재 거래량이 평균값보다 작으면, 공격할 수 있는 양으로 간주하고, 반전 신호로, 더 많이 한다.

최종 거래 신호는 위의 두 개의 하위 전략 신호의 교차이다. 즉, 두 가지 전략이 동시에 신호를 발산 할 때만 포지션을 열 수 있습니다. 이러한 Intersection Targets 방법을 통해, 일부 잡음 거래를 필터링하여 신호 품질을 향상시킬 수 있습니다.

전략적 이점

  1. 이중 지표 확인을 사용하여 신호 품질을 향상시킵니다.
  2. 반전 거래 방식, 일정 시간 순서 우위를 가진
  3. 거래량 분석을 결합하여 미래의 가격 흐름을 판단합니다.
  4. 단편적 손실을 효과적으로 제어하는 신뢰할 수 있는 손해 방지 장치

전략적 위험

  1. 역전 신호가 작동하지 않아 시장 소음을 완전히 필터링 할 수 없습니다.
  2. “정치적 판단은 성과가 이상하면 무효가 됩니다”.
  3. 부적절한 정지 설정으로 인해 조기 정지 또는 과도한 정지 손실이 발생할 수 있습니다.
  4. 철수 제어 장치의 결함으로 전략의 수명이 단축될 수 있다.

다음의 몇 가지 측면에서 더 최적화할 수 있습니다.

  1. 트렌드 판단 규칙을 추가하고 역대 거래를 피하십시오.
  2. 정지 로직을 최적화하여 정지 추적과 단계적 정지를 구현합니다.
  3. 최대 인출 제한을 높이고, 막대한 손실을 방지하기 위한 폐쇄 전략
  4. 기계 학습 알고리즘과 결합하여 동적 중지 및 위치 제어 모델을 구축합니다.

일반적으로 이 전략은 양방향 추적과 가격 역전을 주요 거래 논리로 하고, 양적 판단을 보조하여, 이중 확인을 통해 신호 품질을 향상시킨다. 실제 응용에서는, 더 많은 테스트와 최적화가 필요하며, 특히, 손실 및 자금 관리에 관한 위험을 방지하고, 과다하게 초래된 파산을 회수하지 않도록 한다. 그러나 전체적으로 이 전략은 양적 거래의 여러 가지 기술을 적용하고, 아이디어가 명확하며, 깊이 있는 연구를 할 가치가 있다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Volume and SMA
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
VSAVol(Length) =>
    pos = 0.0
    xSMA_vol = sma(volume, Length)
    pos := iff(volume > xSMA_vol, -1,
    	     iff(volume < xSMA_vol, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MAVol = input(40, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posVSAVol = VSAVol(Length_MAVol)
pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1,
	   iff(posReversal123 == -1 and posVSAVol == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )