求一个TB指标公式

各位大神,能不能帮忙写个代码公式啊?要求:1、当K线收盘价格站上60均线时开多单,随后K线收盘价跌破10均线,平仓多单。随后收盘价再次站上10均线,开多单,K线收盘价跌破10均线,平仓多单。2、当K线收盘价格跌破60均线时开空单,随后K线收盘价站上10均线,平仓空单。随后收盘价再次跌破10均线,开空单,随后K线收盘价再次站上10均线,平仓空单。

这个策略代码很简单,只需看官基网视频双均线教程就能照葫芦画瓢写出来。今帮您写了基础代码仅供学习参考,切切不可实盘否则后悔终生。//------------------------------------------------------------------------ // 简称: jimi101811 // 名称: // 类别: 策略应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params Numeric FastLength(10); // 短期均线参数(10周期) Numeric SlowLength(60); // 长期均线参数(60周期) Vars Series<Numeric> AvgValue1; // 10周期指数均线值 Series<Numeric> AvgValue2; // 60周期指数均线值 Events OnReady() { // 确保均线计算有足够数据 SetBackBarMaxCount(1 + Max(FastLength, SlowLength)); Range[0:DataSourceSize() - 1] { setPlotOption("MA10", "begin-bar", FastLength); // 10均线绘制 setPlotOption("MA60", "begin-bar", SlowLength); // 60均线绘制 } } OnBar(ArrayRef<Integer> indexs) { // 计算10周期和60周期指数均线 AvgValue1 = AverageFC(Close, FastLength); // 10均线 AvgValue2 = AverageFC(Close, SlowLength); // 60均线 // 绘制均线 PlotNumeric("MA10", AvgValue1); PlotNumeric("MA60", AvgValue2); // ---------------------- 多头策略逻辑 ---------------------- // 1. 首次开多:收盘价站上60均线,且当前无多头持仓 If(MarketPosition != 1 // 无多头持仓 && CrossOver(Close[1], AvgValue2 [1])// 收盘价站上60均线 ) { Buy(1, Open); // 以当前K线开盘价开多 } // 2. 多单平仓:持有多头时,收盘价跌破10均线 If(MarketPosition == 1 // 持有多头 && CrossUnder(Close[1], AvgValue1[1]) // 收盘价跌破10均线 ) { Sell(0, Open); // 以当前K线开盘价平多 } // 3. 后续开多:收盘价再次站上10均线,且无多头持仓 If(MarketPosition != 1 // 无多头持仓(确保已平仓) && AvgValue1[1] > AvgValue2[1] // 10均线>60均线 && CrossOver(Close[1], AvgValue1 [1]) // 收盘价站上10均线 ) { Buy(1, Open); // 以当前K线开盘价再次开多 } // ---------------------- 空头策略逻辑 ---------------------- // 1. 首次开空:收盘价跌破60均线,且当前无空头持仓 If(MarketPosition != -1 // 无空头持仓 && CrossUnder(Close[1], AvgValue2[1]) // 收盘价跌破60均线 ) { SellShort(0, Open); // 以当前K线开盘价开空(0表示全仓) } // 2. 空单平仓:持有空头时,收盘价站上10均线 If(MarketPosition == -1 // 持有空头 && CrossOver(Close[1], AvgValue1[1]) // 收盘价站上10均线 ) { BuyToCover(0, Open); // 以当前K线开盘价平空(0表示全平) } // 3. 后续开空:平仓后,收盘价再次跌破10均线,且无空头持仓 If(MarketPosition != -1 // 无空头持仓(确保已平仓) && AvgValue1[1] < AvgValue2[1] // 10均线<60均线 && CrossUnder(Close[1], AvgValue1[1]) // 收盘价跌破10均线 ) { SellShort(0, Open); // 以当前K线开盘价再次开空 } } //------------------------------------------------------------------------ // 编译版本 2025/10/19 162800 // 版权所有 kunger // 更改声明 TradeBlazer Software保留对TradeBlazer平台 // 每一版本的TradeBlazer策略修改和重写的权利 //------------------------------------------------------------------------代码运行如下图: