“Bottom and top hunter”,"顶部和底部猎人"指标。它结合了两个流行的技术分析工具,斐波那契回撤水平和相对强度指数(RSI),用来识别市场的潜在交易机会。
/*backtest start: 2023-05-08 09:00:00 end: 2023-08-01 15:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_CTP","currency":"FUTURES","depthDeep":20}] args: [["symbol","i888,rb888,hc888"]] */ function main() { $.CTA(symbol, function(st) { var r = st.records if (r.length < rsi_length) { return } var fib_range = TA.Highest(r, range, 'High') - TA.Lowest(r, range, 'Low') var fib_level_0 = TA.Highest(r, range, 'High') - (fib_range * fib_0) var fib_level_1 = TA.Highest(r, range, 'High') - (fib_range * fib_1) var rsi_value = TA.RSI(r, rsi_length) $.PlotMultRecords("期货合约" + st.symbol, "k线", r, {layout: 'single', col: 12, height: '600px'}) $.PlotMultLine("期货合约" + st.symbol, "斐波那契顶部", fib_level_0, r[r.length - 2].Time) $.PlotMultLine("期货合约" + st.symbol, "斐波那契底部", fib_level_1, r[r.length - 2].Time) var buy_condition = r[r.length-2].Close > fib_level_1 && rsi_value[rsi_value.length - 3] < rsi_oversold && rsi_value[rsi_value.length - 2] > rsi_oversold; var sell_condition = r[r.length-2].Close < fib_level_0 && rsi_value[rsi_value.length - 3] > rsi_overbought && rsi_value[rsi_value.length - 2] < rsi_overbought; if (st.position.amount <= 0 && buy_condition) { Log("当前持仓", st.position); return st.position.amount < 0 ? 2 : 1 } else if (st.position.amount >= 0 && sell_condition) { Log("当前持仓", st.position); return st.position.amount > 0 ? -2 : -1 } }); }