
이 전략은 가격 역전 신호와 거래량 지표와 결합한 쌍방향 추적 메커니즘을 사용하여 자동화 된 양적 거래를 구현합니다. 그것의 가장 큰 장점은 신뢰할 수있는 위험 제어에 있으며, 스톱 손실을 추적하여 이익을 잠금하고 손실을 확대하지 않습니다. 동시에, 역전 거래 신호는 전략의 승률을 높입니다. 이 글은 전략의 원리, 장점, 위험 및 최적화 방향을 자세히 분석합니다.
이 전략은 두 개의 자 전략으로 구성된다. 첫 번째 자 전략은 무작위 지표를 사용하여 가격 역전 신호를 결정합니다. 구체적인 논리는 다음과 같습니다:
만약 2일 연속으로 클로즈오프가 상승하고 9일에는 슬로우 K 라인이 50보다 낮으면 더 많이 한다. 만약 2일 연속으로 클로즈오프가 하락하고 9일에는 패스트 K 라인이 50보다 높으면 공백한다.
두 번째 하위 전략은 합성 거래량 지표, 판단력의 강점이다. 구체적으로, 현재 거래량을 40일 거래량 평균값과 비교하는 것이다. 현재 거래량이 평균값보다 높으면, 공격할 수 있는 양으로 간주하고, 반전 신호로, 공백을 한다. 현재 거래량이 평균값보다 작으면, 공격할 수 있는 양으로 간주하고, 반전 신호로, 더 많이 한다.
최종 거래 신호는 위의 두 개의 하위 전략 신호의 교차이다. 즉, 두 가지 전략이 동시에 신호를 발산 할 때만 포지션을 열 수 있습니다. 이러한 Intersection Targets 방법을 통해, 일부 잡음 거래를 필터링하여 신호 품질을 향상시킬 수 있습니다.
다음의 몇 가지 측면에서 더 최적화할 수 있습니다.
일반적으로 이 전략은 양방향 추적과 가격 역전을 주요 거래 논리로 하고, 양적 판단을 보조하여, 이중 확인을 통해 신호 품질을 향상시킨다. 실제 응용에서는, 더 많은 테스트와 최적화가 필요하며, 특히, 손실 및 자금 관리에 관한 위험을 방지하고, 과다하게 초래된 파산을 회수하지 않도록 한다. 그러나 전체적으로 이 전략은 양적 거래의 여러 가지 기술을 적용하고, 아이디어가 명확하며, 깊이 있는 연구를 할 가치가 있다.
/*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 )