
이 전략은 이중 인자 모델에 기반한 조합 역전 거래 전략이다. 123 형태 역전과 인수 지수의 두 인자를 통합하여 전략 신호의 부가 효과를 실현한다. 두 인자가 동시에 구매 또는 판매 신호를 발신할 때만 이 전략은 그에 따른 더하거나 더 적은 작업을 수행한다.
이 인자는 가격의 123 형태에 기초하여 동작한다. 현재 2 일간의 종결 가격 관계가 낮은-높은 그리고 스토흐 지표가 50보다 낮으면 하위 반전 신호로 판단하고, 더 많이 한다. 현재 2 일간의 종결 가격 관계가 높은-낮은 그리고 스토흐 지표가 50보다 높으면 상위 반전 신호로 판단하고, 공백한다.
이 인자는 가격 변동 범위의 증가 또는 감소에 기초하여 트렌드 반전을 판단한다. 변동 범위가 커지면 지수가 상승하고, 범위가 줄어들면 지수가 감소한다. 지수가 특정 한값을 통과하면 하위 신호가 발생하고, 상하가 통과하면 다수 신호가 발생한다.
이중 인자 동방향 신호가 포지션을 열고, 전략적 이윤을 실현하고, 단일 인자가 가져오는 잘못된 신호 위험을 피한다.
훈련 세트 확장, 엄격한 정지, 다인자 조합 필터링 등의 방법으로 위험을 줄일 수 있다.
이 전략은 가격 형태와 변동성 지표의 두 가지 요소를 결합하여 쌍인자가 동방향 신호를 발산할 때만 포지션을 열고, 단일 인자가 가져오는 가짜 신호 위험을 피하여 전략의 전반적인 안정성을 향상시킵니다. 그러나 특정 확률 쌍인자가 동시에 잘못된 신호를 발산할 위험이 있습니다. 훈련 세트, 설정, 손실 인자 조합 최적화 등의 방법을 통해 전략 성능과 위험 조정 수익률을 더욱 향상시킬 수 있습니다.
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 22/02/2021
// 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
// The Mass Index was designed to identify trend reversals by measuring
// the narrowing and widening of the range between the high and low prices.
// As this range widens, the Mass Index increases; as the range narrows
// the Mass Index decreases.
// The Mass Index was developed by Donald Dorsey.
//
// 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
MASS(Length1,Length2,Trigger) =>
pos = 0.0
xPrice = high - low
xEMA = ema(xPrice, Length1)
xSmoothXAvg = ema(xEMA, Length1)
nRes = sum(iff(xSmoothXAvg != 0, xEMA / xSmoothXAvg, 0), Length2)
pos := iff(nRes > Trigger, -1,
iff(nRes < Trigger, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & MASS Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- MASS Index ----")
Length1 = input(9, minval=1)
Length2 = input(25, minval=1)
Trigger = input(26.5, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMASS = MASS(Length1,Length2,Trigger)
pos = iff(posReversal123 == 1 and posMASS == 1 , 1,
iff(posReversal123 == -1 and posMASS == -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 )