이 전략은 K선 다중 머리 형 선 신호를 식별하여 MACD 지표와 결합하여 트렌드 방향을 판단하여 주식 가격의 추적 거래를 구현한다. 황소 시장에서 다중 머리 형 선 형태가 나타나고 MACD 배경에 다중 머리 상태일 때 더 많은 입력을 한다. MACD가 공백으로 바뀌면 평점 상태에서 퇴출한다.
실물 라인 부분 크기의 비율을 계산하고, 다중 헤드 형 라인을 결정한다. MACD 지표를 계산하여 트렌드 방향을 판단한다. MACD가 다중 헤드일 때, 다중 헤드 형 라인 신호가 발생하면, 더 많은 입장을 한다.
적절히 형상 인식 조건을 완화하고 MACD 파라미터를 줄여서 다른 지표를 보조하여 위험을 제어 할 수 있습니다.
이 전략은 형태와 지표를 통합하여 트렌드 판단을 통해 안정적인 수익을 달성할 수 있다. 파라미터 조정 등으로 더욱 개선되어 실용적인 정량화 거래 전략이 될 수 있다.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FenixCapital
//@version=4
strategy("Starbux", overlay=true)
//VARIABLES
//Candlestick Variables
body=close-open
range=high-low
middle=(open+close)/2
abody=abs(body)
arange=abs(range)
ratio=abody/range
longcandle= (ratio>0.6)
bodytop=max(open, close)
bodybottom=min(open, close)
shadowtop=high-bodytop
shadowbottom=bodybottom-low
//Closing Variables
macd=macd(close,12,26,9)
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
//plot(macdLine, color=color.blue)
//plot(signalLine, color=color.orange)
//plot(histLine, color=color.red, style=plot.style_histogram)
rsi=rsi(close,14)
sma50= sma(close,50)
sma200= sma(close,200)
exitrsi=rsi > 76
exitmacd=macdLine >0 and signalLine>0
//exitmacd=crossunder(macdLine,signalLine)
stopprice= crossunder(sma50,sma200)
//Candlestick Plotting
blh = (arange*0.33>=abody and close>open and shadowbottom>=abody*2 and shadowtop<=arange*0.1)
plotshape(blh, title= "Bullish Hammer", location=location.belowbar, color=color.lime, style=shape.arrowup, text="Bull\nHammer")
//beh = (arange*0.25>=abody and close<open and shadowtop>=abody*2 and shadowbottom<=arange*0.05)
//plotshape(beh, title= "Bearish Hammer", color=color.orange, style=shape.arrowdown, text="Bear\nHammer")
//bpu = (open>close and close>low and shadowbottom>2*abody)
//plotshape(bpu, title= "Black Paper Umbrella", color=color.red, style=shape.arrowdown, text="Black\nPaper\nUmbrella")
//Trend Signal
bull5= sma50 > sma200
bullmacd=macdLine>=0 and signalLine>=0
bearmacd=macdLine<= 0 and signalLine<=0
//Trading Algorithm
longCondition = blh and bearmacd and volume>volume[1]
if (longCondition)
strategy.order("Buy", true, 1, when=longCondition)
strategy.risk.max_position_size(10)
//strategy.risk.max_drawdown(25,strategy.percent_of_equity)
exitlong = exitmacd
if (exitlong)
strategy.close_all()