
쌍평평선 뒤 역전 가격 돌파 전략은 더 높은 품질의 진입 시기를 찾기 위해 쌍무 거래 신호를 조합한다. 이 전략은 먼저 9일 이동 평균과 그 상하의 궤도를 이용하여 기본적인 돌파구 프레임워크를 구축하고, 그 다음에는 123 형태 판단 기회의 방향을 이용하여 무작위 지표 필터링 신호를 도입한다. 결국은 비교적 엄격한 진입 규칙을 형성한다. 이 조합 필터링 방법은 거래 빈도를 효과적으로 낮추는 동시에 신호 품질을 보장하며, 중장선 보유에 적합하다.
쌍평평선과 역전 가격 돌파 전략은 두 가지 하위 전략의 조합으로 구성된다.
첫 번째 하위 전략은 123 형태를 판단한다. 이 전략은 전날의 종결 가격 관계를 사용하여 미래의 가격의 가능한 돌파 방향을 판단한다. 오늘의 종결 가격이 전날의 종결 가격보다 상승하고 전날의 전날의 종결 가격보다 하락하면, 구매 신호로 간주한다. 오늘의 종결 가격이 전날의 종결 가격보다 하락하고 전날의 전날의 전날의 종결 가격보다 상승하면, 판매 신호로 간주한다. 이 형태는 단기간의 정서가 낙관주의에서 낙관주의로 전환하거나 낙관주의에서 낙관주의로 전환하는 중요한 전환점을 반영한다고 여겨진다.
두 번째 하위 전략은 이동 평균 라인 채널을 돌파한다. 이 전략은 먼저 지정된 주기 (예: 9일) 의 지수 이동 평균을 계산하고, 그 위에 아래 각각 특정 비율을 채널 상하로 추가한다. 가격이 상하로 넘어간다면 판매 신호를 생성하고, 가격이 하하로 넘어간다면 구매 신호를 생성한다. 상하로 넘어간다면 구매 신호를 생성한다. 상하로 넘어간다면 구매 신호를 생성한다.
결국, 실제 거래를 안내하는 진정한 신호를 최종적으로 생성할 수 있는 것은 두 개의 하위 전략의 신호 방향이 일치하는 경우에만, 즉 123 형태 반전 신호와 채널 돌파 신호 동향이다. 이 듀얼 필터링 메커니즘은 많은 가짜 신호를 필터링하여 거래 빈도를 낮추고 동시에 거래마다 높은 신뢰도를 보장 할 수 있다.
쌍평준선과 반전 가격 돌파 전략은 여러 가지 분석 방법을 통합하여 다음과 같은 장점을 가지고 있습니다.
이중 신호 필터링 메커니즘은 유효하지 않은 신호를 효과적으로 줄여서 각 거래를 더 높은 품질로 만듭니다.
123 형태 판단은 단기간에 반전 전략에 속하며, 이동 통로 돌파는 중장선 트렌드 추적 전략에 속하며, 조합을 사용하면 중장선 협력과 더 나은 수익 효과를 얻을 수 있다.
채널의 상하 궤도 폭을 조정함으로써 신호 주파수를 자유롭게 조절할 수 있으며, 다양한 거래 선호도에 적합하다.
9일평균선을 통로 중축선으로 사용하여, 파라미터 선택이 더 합리적이며, 신호가 너무 자주 발생하지 않는다.
무작위 지표의 과매매 지역 판단을 적용하면, 위기 상황에서는 을 피할 수 있다.
이중 평행선과 역전 가격 돌파 전략에는 다음과 같은 몇 가지 측면에 초점을 맞추는 몇 가지 위험도 있습니다.
이중 필터링 신호 메커니즘은 일방적인 전략이 포착할 수 있는 기회를 놓칠 수 있고, 일방적인 전략이 포착할 수 있는 기회를 놓칠 수 있다.
123 매매점에서는 모든 가짜 돌파구를 완전히 필터링할 수 없으며, 잘못 사용하면 손실이 발생할 수 있습니다.
시장이 급격하게 변하면, 잘못된 스톱로즈 위치 설정으로 인해 큰 손실이 발생할 수 있습니다.
ifft 조건 논리는 복잡하고, 변수가 적절하지 않으면 논리 오류가 발생하기 쉽고, 신호 판단이 실패한다.
외 샘플 데이터는 파라미터의 안정성에 영향을 미치며, 파라미터에 대한 동적 최적화가 필요합니다.
이중 평행선과 반전 가격 돌파 전략에는 최적화할 수 있는 여지가 있습니다:
다른 평균선 유형을 테스트할 수 있으며, 신호 품질이 더 우수하고 안정적인 성질을 생성하는 파라미터 조합을 선택할 수 있다.
특정 품종 데이터 특성에 맞게 매칭된 채널 대역폭을 선택할 수 있다.
동태 중지 손실을 결합하여 최대 손실 비율을 제어 할 수 있습니다.
기계학습 모델의 동적 최적화 파라미터를 도입하여 전략을 더 거칠게 만들 수 있다.
거래량이나 변동률 필터를 추가하여, 불안정한 상황에서 너무 자주 출입을 방지할 수 있다.
쌍평평선과 반전 가격 돌파 전략은 쌍증명 스피커 메커니즘을 통해 단기 반전과 중장기 트렌드 추적을 성공적으로 결합하여 효율적인 거래 시스템을 형성하고, 무효 신호를 효과적으로 필터링하고, 고품질의 기회를 선택하고, 강력한 사용자 정의 공간을 갖는다. 이 전략은 범용적인 프레임워크로서, 파라미터 조정과 기계 학습 최적화 하에서 큰 사용 잠재력을 가지고 있다.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/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
// Moving Average Displaced Envelope. These envelopes are calculated
// by multiplying percentage factors with their displaced expotential
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and
// quality of the signals. If a previous high goes above the envelope
// a sell signal is generated. Conversely, if the previous low goes below
// the envelope a buy signal is given.
//
// 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
MADE(Price,Period, perAb, perBl, disp) =>
pos = 0.0
sEMA = ema(Price, Period)
top = sEMA[disp] * ((100 + perAb)/100)
bott = sEMA[disp]* ((100 - perBl)/100)
pos := iff(close < bott , 1,
iff(close > top, -1, pos[1]))
pos
strategy(title="Combo Backtest 123 Reversal & MA Displaced Envelope", 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, "---- MA Displaced Envelope ----")
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMADE = MADE(Price,Period, perAb, perBl, disp)
pos = iff(posReversal123 == 1 and posMADE == 1 , 1,
iff(posReversal123 == -1 and posMADE == -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 )