MACD/ADX
回测测试
/*backtest start: 2021-06-08 09:00:00 end: 2022-06-14 15:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}] args: [["ContractType","rb888",360008]] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // Written by TradersUltimateEdge // Code provided open source, feel free to use it for any purpose except resale //@version=5 indicator("TUE ADX/MACD Confluence V1.0", overlay=true) showsignals = input(true, title="显示 买入/卖出 信号") showcandlecolors = input(true, title="显示 K线 颜色") length = input(14, title="ADX 周期") smoothing = input(10, title="ADX 平滑") macdsource = input(close, title="MACD 数据源") macdfast = input(12, title="MACD 快线 周期") macdslow = input(26, title="MACD 慢线 周期") macdsignal = input(9, title="MACD 信号 周期") colorup = input(color.green, title="向上 BAR 颜色") colordown = input(color.red, title="向下 BAR 颜色") /////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC [diplus, diminus, adx] = ta.dmi(length, smoothing) [macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal) //////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC longcheck = diplus > diminus and macdline > signalline shortcheck = diminus > diplus and signalline > macdline int trade = 0 //Open from nothing if trade == 0 and longcheck trade := 1 else if trade == 0 and shortcheck trade := -1 //Reversal else if trade == 1 and shortcheck trade := -1 else if trade == -1 and longcheck trade := 1 //Keep status quo until crossover else trade := trade[1] //////////////////////////////////////////////////////////////////////////////////////////////PLOT colors = longcheck ? colorup : shortcheck ? colordown : color.white plotcandle(open, high, low, close, color = showcandlecolors ? colors : na) plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar) plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar) ///////////////////////////////////////////////////////////////////////////////////////////// ALERTS alertcondition(trade[1] != 1 and trade == 1, "LONG") alertcondition(trade[1] != -1 and trade == -1, "SHORT") if trade[1] != 1 and trade == 1 strategy.entry("buy", strategy.long) else if trade[1] != -1 and trade == -1 strategy.entry("sell", strategy.short)