
쌍선 교차 역전 전략은 트렌드 추적 전략으로, 123 역전 전략과 DiNapoli 역전 진동기 전략을 결합하여 쌍선 교차를 통해 거래 신호를 생성하여 시장 추세를 추적하는 기능을 구현한다.
이 전략은 두 부분으로 구성되어 있습니다.
123 역전 전략: 이 전략은 스토카스틱 지표를 사용하여 신호를 발생시킨다. 상장 가격이 2일 연속으로 하락한 후 상승하고, 스토카스틱 패스트 라인이 상장선보다 낮고, 패스트 라인이 50보다 낮으면 구매 신호를 발생시킨다. 상장 가격이 2일 연속으로 하락한 후 하락하고, 상장 라인이 상장선보다 높고, 패스트 라인이 50보다 높으면 판매 신호를 발생시킨다.
디나폴리 역 트렌드 진동기 전략: 이 전략은 가격의 이동 평균을 활용하여 가격이 이동 평균보다 높거나 낮을 때 거래 신호를 발생시킨다. 구체적으로, 가격이 이동 평균을 초과하면 구매 신호를 발생시키고, 가격이 이동 평균을 초과하면 판매 신호를 발생시킨다.
위의 두 가지 전략이 각각 독립적인 거래 신호를 생성한 후, 이 전략은 그것들을 통합합니다. 두 가지의 거래 신호가 일치하면, 즉 쌍선 교차가 동방향 신호를 형성하면, 이 전략은 실제 거래 지시를 생성합니다. 그렇지 않으면 어떤 작업도 수행하지 않습니다.
이 전략은 쌍선 거래 신호와 결합하여 시장 추세를 효과적으로 추적할 수 있으며 다음과 같은 장점이 있습니다:
스토카스틱 지표의 판단력과 경향성의 장점을 최대한 활용하여 단일 지표 신호의 오류로 인한 손실을 피하십시오.
DiNapoli 지표는 트렌드를 효과적으로 식별하여 무작위적인 변동으로 인해 불필요한 입장을 피합니다.
이중선 교차는 가짜 신호를 효과적으로 줄이고 신호 품질을 향상시켜 거래 방향을 판단하는 데 강력한 근거를 제공합니다.
전략의 매개 변수는 사용자 개인 취향에 따라 매개 변수 조합을 선택할 수 있으며, 다양한 시장 환경에 유연하게 적응할 수 있다.
이 전략에는 다음과 같은 위험도 있습니다.
황소 시장에서, 전략은 지표 매개 변수가 너무 신중하게 설정되어 구매 기회를 놓치게 될 수 있습니다. 적절한 매개 변수는 전략을 더 적극적으로 조정할 수 있습니다.
곰 시장에서 쌍선 교차 신호는 지연되어 과매매 현상을 초래할 수 있으므로 평균 주기를 적절히 줄여서 전략을 더 민감하게 해야 한다.
거대한 일방적인 경우, 쌍선 교차 신호가 느려질 수 있으며, 손실을 제어하기 위해 스톱로스를 설정한다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
스토카스틱 지표와 디나폴리 지표의 변수를 테스트하고 최적화하여 최적의 변수 조합을 찾습니다.
볼륨 지표와 같은 다른 보조 판단 지표를 추가하여 전략 내의 논리를 풍부하게하고 신호 정확도를 향상시킵니다.
기계 학습 방법을 사용하여 전략 변수와 신호 생성 규칙을 훈련하고 최적화하여 시장 변화에 더 완벽하게 적응하십시오.
고도의 기술 지표와 함께 지역 구조를 판단하고, 중단계와 중장선 신호를 구분하여, 전략이 다중 시간 프레임으로 작동하도록 한다.
쌍선 교차 역전 전략은 쌍선 교차 거래 신호를 형성하는 두 가지 지표를 통합하여 시장 동향을 효과적으로 추적하고 위험을 통제하는 전제에서 더 나은 수익을 얻을 수 있으며, 신뢰할 수있는 트렌드 추적 전략입니다. 이 전략은 파라미터 최적화 및 보조 지표 추가 등의 방법으로 지속적으로 개선 및 업그레이드 될 수 있으며, 광범위한 응용 전망을 가지고 있습니다.
/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/02/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
// DiNapoli Detrended Oscillator Strategy
//
// 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
DiNapoli(Length, Trigger) =>
pos = 0.0
xSMA = sma(close, Length)
nRes = close - xSMA
pos := iff(nRes > Trigger, 1,
iff(nRes <= Trigger, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & DiNapoli Detrended Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDiN = input(14, minval=1)
TriggerDiN = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDiN = DiNapoli(LengthDiN, TriggerDiN)
pos = iff(posReversal123 == 1 and posDiN == 1 , 1,
iff(posReversal123 == -1 and posDiN == -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 )