
이 전략은 주로 이동 평균선의 황금 포크 사망 포크와 K 선의 돌파 평균선을 사용하여 다공간 의사 결정을 합니다. 단기 이동 평균선에서 장기 이동 평균선보다 더 많은 것을 할 때, 단기 이동 평균선 아래에 장기 이동 평균선보다 더 많은 것을 할 때 공백을 합니다. 또한 K 선의 종결 가격 돌파 평균선을 입력 신호로 결합합니다.
두 개의 다른 주기 EMA1와 EMA2의 이동 평균을 계산한다. EMA1의 주기는 짧고, EMA2의 주기는 길다.
EMA1이 EMA2를 입는지 여부를 판단하고, 만약 그렇다면, 더 많은 것을 수행하십시오.
EMA1이 EMA2를 착용하는지 여부를 판단하고, 그렇지 않으면, 공백을 다.
EMA1을 넘어서야 하는지를 판단하는 신호로 쓰인다.
스톱로즈 탈퇴 메커니즘: 고정 스톱포인트 또는 Donchian 채널을 통해 스톱로즈를 설정한다.
주로 다음과 같은 함수를 사용한다:
전략은 간단하고 이해하기 쉬운 실행이다.
평균선 시스템의 트렌드 추적 기능을 활용하여 트렌드를 효과적으로 추적할 수 있다.
K선 종결 가격의 뚫림과 결합하여 진입 시점으로, 가짜 뚫림을 피할 수 있다.
다양한 매개 변수들의 유연한 평선 조합을 사용하여 다른 주기들에 적합하다.
리스크 컨트롤을 위한 스톱패스 메커니즘을 설정할 수 있다.
시장이 불안정할 때, 평행선은 자주 황금 포크 사다 포크 신호를 생성하여 손해가 발생할 수 있다.
고정 스톱 스포트 포인트는 너무 고정되어 시장의 변화에 따라 조정할 수 없습니다.
평균선 시스템은 지체되어 있고, 트렌드 전환점에 반전 신호를 놓치기 쉽다.
허위 돌파를 가리기 위해서는 평행선 기울기를 정확하게 판단해야 한다.
신중하게 선택해야 합니다. 너무 자주 또는 뒤늦게 조합된 파라미터는 전략의 효과에 영향을 줄 것입니다.
MACD 지표의 0축 교차를 사용하여 트렌드를 파악하고, 흔들림을 필터링할 수 있다.
Donchian 통로에 접속하여 동적 스톱 라인을 설정하여 고정 스톱 문제를 개선할 수 있다.
부린 띠 지표에 강한 경향과 약한 경향을 더할 수 있고, 흔들리는 시장에서 무효 거래를 피할 수 있다.
평균선 변수 조합을 최적화하고, 다양한 주기 전략의 실제 효과를 테스트한다.
고정 이동 평균을 추가하는 것을 고려할 수 있다.
이 전략의 전체적인 아이디어는 간단하고 명확하며, 일반적인 평선 금 포크 사망 포크 거래 전략을 활용하면서 K 라인 돌파구와 결합하여 가짜 신호를 효과적으로 필터링 할 수 있습니다. 최적화 공간은 다른 지표를 사용하여 트렌드 강점을 판단하고 동적 스톱을 설정하는 것입니다. 전체적으로 평선 기반의 트렌드 추적 전략 클래식은 이해하기 쉽고, 최적화 공간을 탐색 할 가치가 있습니다.
/*backtest
start: 2023-09-01 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='Mega crypto bot strategy', shorttitle='megacryptobot_Strategy', overlay=true, pyramiding=0, initial_capital=10000, currency=currency.USD)
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)
//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")
//============ signal Generator ==================================//
period = input('720')
ch1 = request.security(syminfo.tickerid, period, open)
ch2 = request.security(syminfo.tickerid, period, close)
longCondition = crossover(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (shortCondition)
strategy.entry("SELL", strategy.short)
///////////////////////////////////////////////////////////////////////////////////////////