이 전략은 123 반전 전략, DMI 전략 및 이동 평균 전략을 결합하여 다양한 유형의 전략을 효과적으로 집약하여 강력한 조합 전략을 형성합니다. 이 전략은 트렌드 반전 지점에서 역행할 수 있으며, 트렌드가 지속될 때 수동 동작을 할 수 있으며, 이동 평균을 사용하여 필터링을 수행하여 시장의 경향 방향을 효과적으로 식별하여 전략의 승률을 높일 수 있습니다.
123 역전 전략: 2일 연속으로 종결값이 전날 종결값보다 낮아져서 전날 종결값보다 높게 전환될 때, 9일 연속으로 느린 K선이 50보다 낮아지면 더 많은 돈을 벌고, 2일 연속으로 종결값이 전날 종결값보다 높아져서 전날 종결값보다 낮게 전환될 때, 9일 연속으로 빠른 K선이 50보다 높으면 공백을 한다.
DMI 전략: +DI 라인에서 DI 라인을 통과할 때 더 많이; -DI 라인에서 +DI 라인을 통과할 때 공백을 다.
이동 평균 전략: 마감 가격 위에 이동 평균을 통과 할 때 더 많이; 마감 가격 아래 이동 평균을 통과 할 때 공백을 .
세 가지 전략 신호가 동방향 신호를 발산하면 포지션을 열고, 그렇지 않으면 평지한다.
이 전략은 트렌드 전략과 반전 전략을 결합하여 가격 반전 기회를 잡을 수 있으며 트렌드 실행 기회를 놓치지 않습니다. 이동 평균 필터는 가짜 신호를 줄일 수 있습니다. 여러 가지 전략은 상호 검증되어 신호의 신뢰성을 높일 수 있습니다.
여러 가지 전략과 결합하여 승률을 높인다. 123 역전 전략은 전환점을 잡을 수 있고, DMI 전략은 추세를 잡을 수 있으며, 이동 평균은 신호를 필터링 할 수 있다.
역전 전략과 트렌드 전략이 결합되어 역전과 트렌드를 모두 포착할 수 있으며, 탄력적인 거래가 가능하다.
이동 평균 필터링을 사용하면 단기 변동으로 인해 발생하는 잘못된 신호를 줄일 수 있습니다.
다중 전략 조합은 상호 검증 신호를 제공하며, 단일 전략이 특정 시장 환경에 의해 실패하는 것을 방지합니다.
전략의 변수가 많고, 최적화하여 최적의 변수 조합을 찾아서 전략의 안정성을 높일 수 있다.
역전 전략은 흔들림 트렌드에 쉽게 갇혀 있다. 트렌드 전략과 결합하여 피할 수 있다.
DMI 전략은 트렌드 초기의 기회를 놓칠 수 있습니다. DMI의 매개 변수를 적절히 줄여서 민감성을 높일 수 있습니다.
이동 평균에는 지연성이 존재하여 생성 신호를 지연시킬 수 있다. 반응 속도를 높이기 위해 주기들을 적절히 줄일 수 있다.
다중 전략 조합은 승률을 높일 수 있지만, 전략 복잡성을 증가시킨다. 각 매개 변수 설정을 주의 깊게 테스트해야 한다.
거래 비용에 민감한 전략. 적절한 휴식 범위가 권장되며, 너무 빈번하게 포지션을 열지 않는 것이 좋습니다.
각 전략의 매개 변수를 최적화하여 최적의 매개 변수 조합을 찾습니다.
다른 지표의 필터 신호를 추가하여 전략의 안정성을 더욱 향상시킵니다.
트렌드 스톱, 쇼크 스톱과 같은 손실을 막는 전략을 추가하여 위험을 통제하십시오.
고정 포지션, 동적 포지션 등 포지션 관리를 최적화하여 전략 수익률을 높여라.
특정 품종에 대한 파라미터 조정, 전략 적응성을 향상 시키십시오.
더 많은 역사 데이터를 활용하여 전략적 성과를 향상시키기 위해 의사 결정에 도움이되는 기계 학습 모델을 추가하십시오.
이 전략은 반전 전략, 트렌드 전략 및 이동 평균 필터를 효과적으로 결합하여 유연한 다변화 집약 전략을 형성한다. 그것은 가격 전환점을 포착 할 수 있고, 트렌드의 지속을 포착 할 수 있으며, 다중 전략 조합을 통해 신호의 안정성과 신뢰성을 향상시킵니다. 최적화 파라미터 설정, 스톱 손실 전략, 포지션 관리 등에서 더 많은 개선이 가능합니다.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 15/10/2019
// 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 related article is copyrighted material from Stocks & Commodities Aug 2009
//
// 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
fFilter(xSeriesSum, xSeriesV, Filter) =>
iff(xSeriesV > Filter, xSeriesSum, 0)
DMIMA(Length_MA, Length_DMI) =>
pos = 0.0
xMA = sma(close, Length_MA)
up = change(high)
down = -change(low)
trur = rma(tr, Length_DMI)
xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
nPDI = xPDI
nNDI = xNDI
nMA = xMA
nPDI_1 = xPDI[1]
nNDI_1 = xNDI[1]
nMA_1 = xMA[1]
bMDILong = iff(nPDI > nNDI and nPDI_1 < nNDI_1, true,
iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false))
bMDIShort = iff(nPDI > nNDI and nPDI_1 < nNDI_1, false,
iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false))
bMALong = iff(close > nMA and close[1] < nMA_1, true,
iff(close < nMA and close[1] > nMA_1, false, false))
bMAShort = iff(close > nMA and close[1] < nMA_1, false,
iff(close < nMA and close[1] > nMA_1, true, false))
pos := iff(bMDILong and bMALong, 1,
iff(bMDIShort and bMAShort, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & DMI & Moving Average", 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_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDMIMA = DMIMA(Length_MA,Length_DMI)
pos = iff(posReversal123 == 1 and posDMIMA == 1 , 1,
iff(posReversal123 == -1 and posDMIMA == -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 )