全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
老师麻烦帮忙为什么有时候没有等收盘就发出平仓委托
zhi368 分享到
2024-07-30 22:40

老师,麻烦帮忙看看这个策略,有时候正常,有时候距离收盘还有好长时间就发出平仓委托

Params

   Numeric FastLength(20);  // 短期指数平均线参数

   Numeric SlowLength(60);  // 长期指数平均线参数


Vars

   Series<Numeric> AvgValue1;  // 短期指数平均线

   Series<Numeric> AvgValue2;  // 长期指数平均线


Events

   OnReady()

   {

       SetBackBarMaxCount(1 + Max(FastLength, SlowLength));

   }


   OnBar(ArrayRef<Integer> indexs)

   {

       // 计算短期和长期指数平均线

       AvgValue1 = AverageFC(Close, FastLength);

       AvgValue2 = AverageFC(Close, SlowLength);

       PlotNumeric(\"MA1\", AvgValue1);

       PlotNumeric(\"MA2\", AvgValue2);


       // 只做空头的开仓条件

       if (MarketPosition == 0 && AvgValue1[1] < AvgValue2[1] && Open < AvgValue2[1])

       {

           SellShort(0, Open);  // 在新的Bar的开盘价卖出做空

       }


       // 平仓条件

       if (MarketPosition == -1 && Close > AvgValue2[1])

       {

           BuyToCover(0, Close);  // 在Bar结束时如果收盘价高于长期均线,则平掉空头仓位

       }

   }

zhi368

交易的是60分钟周期,然后在22.32分的时候价格突破长期均线没等60分钟收盘就被平仓了,策略是不是写错了?data-href=

2024-07-30 22:44
kyover

data-href=

close在盘中代表最新价

你好像对运行机制有一点误解

建议看看这个

https://www.bilibili.com/video/BV1zV411G7Pw/?spm_id_from=333.999.0.0&vd_source=148cb1d807933f47bb50c46ed69d3c82

2024-07-31 09:22
zhi368
@kyover

// 平仓条件

       if (MarketPosition == -1 && Close[BarCount] > AvgValue2[BarCount])

       {

           BuyToCover(0, Close[BarCount]);  // 在Bar结束时如果收盘价高于长期均线,则平掉空头仓位

这样改可以吗?

2024-07-31 10:20
kyover
@zhi368

在bar结束时 那你得写到onbarclose域里

或者在onbar里判断 如果上一根bar收盘价高于指标,当前bar开盘价平仓

2024-07-31 10:23
zhi368
@kyover

老师,这样改可以吗

2024-07-31 10:58
zhi368

data-href=老师,这样改可以吗?

2024-07-31 10:55
kyover

为什么回溯参数是barcount

一头雾水

这是想干嘛?

2024-07-31 14:15
zhi368
@kyover

自己搞复杂了,直接Close[1]模拟测试了一下好像问题解决,谢谢老师

2024-07-31 16:46
您未登录,请先 登录注册 后发表评论
顶部