
이 전략은 이중 지표 신호를 결합하여 효율적인 반전 전략을 고안한다. 첫째, 무작위 지표에 기반한 반전 신호와 연속적으로 상승하는 일 수를 추적하는 시스템을 통합하여 두 신호가 동시에 구매 또는 판매를 유발할 때 전략이 주문된다. 이러한 다중 지표 충돌 메커니즘은 비효율적 인 신호를 효과적으로 필터링하여 전략의 승률을 높일 수 있습니다.
이 전략은 두 부분의 지표 신호로 구성된다. 첫 번째 부분은 123 역전 시스템이며, 최근 2 일간의 종결 가격 변화와 3의 표준 차이의 느린 무작위 지표 값을 관찰한다. 구체적으로, 현재 하루의 종결 가격이 전 2 일간의 종결 가격보다 낮아 오늘 종결 가격이 어제의 종결 가격보다 높고, 9 일간의 느린 무작위 지표가 50보다 낮으면 더 많은 것을 한다. 반대로, 오늘 종결 가격이 어제보다 낮아지고 빠른 무작위 지표가 50보다 높으면 더 많은 것을 한다.
두 번째 부문은 최근 n 일 동안 연속적으로 상승한 날을 추적한다. 최근 n 일 동안 상승한 경우 1을 출력하거나 0을 출력한다. 이 지표는 트렌드 형성을 식별하는 데 사용됩니다.
마지막으로, 이 전략은 123 역전 신호와 연속적으로 상승하는 날이 동시에 구매 또는 판매 상태를 나타낼 때만 거래를 수행합니다. 이 다중 지표 충돌 중화 방식은 일부 무효 신호를 필터링하여 전략 전체의 안정성을 향상시킬 수 있습니다.
이러한 다중 지표 조합 전략의 가장 큰 장점은 신호의 신뢰성을 높이고, 일부 무효 신호를 필터링하는 데 있습니다. 구체적으로 다음과 같은 몇 가지 장점이 있습니다:
123 역전 자체는 약간의 필터링 기능을 가지고 있으며, 잡음으로 인해 혼란을 피할 수 있습니다. 상승 천일 지표를 추적하는 것과 결합하면 추세를 더욱 식별하여 역전 반발을 피할 수 있습니다.
임의의 지표 파라미터를 9일과 3일 빠른 느린 선으로 설정하여 파라미터 변화를 부드럽게 하고, 단기 변동에 휘말리지 않도록 하고, 안정성을 강화한다.
사용자 정의 가능한 매개 변수, Stoch 지표 매개 변수, 상승일 수 등이 있으며, 다른 시장에 맞게 매개 변수를 조정하여 적응력을 높일 수 있다.
역전 거래 방향을 선택할 수 있고,空白 기회를 더 많이 만들 수 있으며, 역전 조작을 통해 수익을 얻을 수 있다.
이 전략에는 다음과 같은 몇 가지 측면에 초점을 맞춘 몇 가지 위험도 있습니다.
다중 지표 조합은 신호의 정확도를 향상시킬 수 있지만, 전략적 수익의 상한을 낮추는 일부 기회를 놓칠 수도 있습니다.
반전 신호 자체는 감금될 위험이 있으며, 위험을 제어하기 위해 스톱 손실을 설정해야 한다.
매개 변수 설정이 잘못되면 전략 성능에도 영향을 미치며, 다른 시장에 따라 매개 변수를 조정할 필요가 있다.
장기간 보유한 것이 적당히 상쇄되지 않거나 주식을 뒤집어 놓을 수 있는 위험도 있다.
이에 따라, 다음과 같은 조치를 취할 수 있습니다.
적절한 용이한 조건으로, 더 많은 거래 기회를 유지하십시오.
단편적 손실을 통제하기 위해 스톱로스를 설정하십시오.
최적화 매개 변수 및 각 시장에 맞는 매개 변수 규칙을 수립한다.
장기간 단일 주식을 보유하는 것을 피하고 자금 유동성을 유지하십시오.
이 다중 지표 역전 전략은 다음과 같은 몇 가지 측면에서 최적화 할 수있는 큰 여지가 있습니다.
더 많은 조합을 테스트하여 더 잘 어울리는 조합을 찾아보세요.
기계 학습 알고리즘을 사용하여 지표 변수를 자동으로 최적화하십시오.
스톱로즈, 스톱스톱 조건을 추가하여 전략을 더욱 안정화시켜야 합니다.
트렌드 지표 부분에서는 다양한 시간 주기 지표를 테스트할 수 있다.
주식 지수, 외환, 귀금속, 암호화폐와 같은 다른 시장의 적용성을 평가하십시오.
복합 전략을 설계하고, 동시에 여러 시장들을 평가하고, 역동적으로 위치를 조정한다.
이 전략은 재치있는 여러 지표의 조합을 통해 동시에 효율적이고 안정적인 역전 거래 전략을 고안합니다. 단일 지표에 비해, 이 다중 지표 충돌 메커니즘은 가짜 신호를 효과적으로 필터링 할 수 있습니다. 동시에, 이 전략은 전통적인 역전 전략을 업데이트하여 새로운 트렌드 지표를 신호 확인으로 추가합니다.
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 26/03/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
// Evaluates for n number of consecutive higher closes. Returns a value
// of 1 when the condition is true or 0 when false.
//
// 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
NBU(nLength) =>
pos = 0.0
nCounter = 0
nCounter := iff(close[1] >= open[1], nz(nCounter[1],0)+1,
iff(close[1] < open[1], 0, nCounter))
C1 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
posprice := iff(C1== 1, close, nz(posprice[1], 0))
pos := iff(posprice > 0, 1, 0)
pos
strategy(title="Combo Backtest 123 Reversal & N Bars Up", 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, "---- N Bars Up ----")
nLength = input(4, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNBU = NBU(nLength)
pos = iff(posReversal123 == 1 and posNBU == 1 , 1,
iff(posReversal123 == -1 and posNBU == -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 )