Chiến lược này được gọi làChiến lược theo dõi trung bình động kép MACDNó sử dụng chỉ số MACD Golden Cross và death cross của hai đường trung bình động như là tín hiệu giao dịch, kết hợp với giá thấp nhất của ngày trước như là điểm dừng lỗ để theo dõi chuyển động giá ngắn hạn.
Chiến lược này sử dụng chỉ số kết hợp trung bình động MACD để xác định các vùng mua quá mức và bán quá mức, tạo ra các tín hiệu giao dịch, trong khi giới thiệu kích thước vị trí năng động và giá thấp nhất ngày trước như thiết kế điểm dừng lỗ để nắm bắt biến động giá ngắn hạn.
/*backtest start: 2023-12-10 00:00:00 end: 2023-12-13 02:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // macd/cam v1 strategizing Chris Moody Macd indicator https://www.tradingview.com/script/OQx7vju0-MacD-Custom-Indicator-Multiple-Time-Frame-All-Available-Options/ // macd/cam v2 changing to macd 5,8,3 // macd/cam v2.1 // Sell when lower than previous day low. // Initial capital of $2k. Buy/sell quantity of initial capital / close price // Quitar short action // Note: custom 1-week resolution seems to put AMD at 80% profitable strategy(title="MACD/CAM 2.1", shorttitle="MACD/CAM 2.1") // source = close //get inputs from options useCurrentRes = input(true, title="Use Current Chart Resolution?") resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60") smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below") sd = input(true, title="Show Dots When MacD Crosses Signal Line?") sh = input(true, title="Show Histogram?") macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?") hist_colorChange = input(true,title="MacD Histogram 4 Colors?") venderLowerPrev = input(true,title="Vender cuando closing price < previous day low?") res = useCurrentRes ? timeframe.period : resCustom fastLength = input(5, minval=1), slowLength=input(8,minval=1) signalLength=input(3,minval=1) // find exponential moving average of price as x and fastLength var as y fastMA = ema(source, fastLength) slowMA = ema(source, slowLength) macd = fastMA - slowMA // simple moving average signal = sma(macd, signalLength) hist = macd - signal outMacD = request.security(syminfo.tickerid, res, macd) outSignal = request.security(syminfo.tickerid, res, signal) outHist = request.security(syminfo.tickerid, res, hist) histA_IsUp = outHist > outHist[1] and outHist > 0 histA_IsDown = outHist < outHist[1] and outHist > 0 histB_IsDown = outHist < outHist[1] and outHist <= 0 histB_IsUp = outHist > outHist[1] and outHist <= 0 //MacD Color Definitions macd_IsAbove = outMacD >= outSignal macd_IsBelow = outMacD < outSignal plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray macd_color = macd_colorChange ? macd_IsAbove ? lime : red : red signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime circleYPosition = outSignal plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4) plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2) plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4) circleCondition = sd and cross(outMacD, outSignal) // Determine long and short conditions longCondition = circleCondition and macd_color == lime redCircle = circleCondition and macd_color == red redCirclePrevLow = redCircle or low<low[1] shortCondition = redCircle if (venderLowerPrev) shortCondition = redCirclePrevLow strategy.initial_capital = 20000 // Set quantity to initial capital / closing price cantidad = strategy.initial_capital/close // Submit orders strategy.entry(id="long", long=true, qty=cantidad, when=longCondition) strategy.close(id="long", when=shortCondition) plot(circleCondition ? circleYPosition : na, title="Cross", style=cross, linewidth=10, color=macd_color) // hline(0, '0 Line', linestyle=solid, linewidth=2, color=white)