VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 10
声望: 0

on_bars:
调用
for vt_symbol in self.vt_symbols:
current_pos = self.get_pos(vt_symbol)
print(f'vt_symbol:{vt_symbol},current_pos:{current_pos}')

        # 可能存在无数据情况
        if vt_symbol in bars:
            bar = bars[vt_symbol]
            if current_pos > 0:
                **self.sell(vt_symbol, bar.close_price, current_pos)**
                print(f'{bar.datetime},{vt_symbol},price:{bar.close_price},hands:{current_pos},sell')
            elif current_pos == 0:
                target_pos = self.targets[vt_symbol]
                self.buy(vt_symbol,bar.close_price,target_pos)
                self.targets[vt_symbol] = 0
    self.put_event()

第一次on_bars调用sell卖出,第二次/第三次on_bars的pos还是没变。

vt_symbol:000001.SZSE,current_pos:0
vt_symbol:000002.SZSE,current_pos:248.0
2020-07-23 00:00:00+08:00,000002.SZSE,price:3.94,hands:248.0,sell
on_bars..........................
vt_symbol:000001.SZSE,current_pos:0
vt_symbol:000002.SZSE,current_pos:248.0
2020-07-24 00:00:00+08:00,000002.SZSE,price:3.81,hands:248.0,sell
on_bars..........................
vt_symbol:000001.SZSE,current_pos:0
vt_symbol:000002.SZSE,current_pos:248.0
2020-07-27 00:00:00+08:00,000002.SZSE,price:3.82,hands:248.0,sell

Member
avatar
加入于:
帖子: 125
声望: 4

会不会是价格不满足最后无法撮合成功?整段下来都没有成交的吗?

Member
avatar
加入于:
帖子: 4684
声望: 285

建议自己结合行情打印排查看看,get_pos没有获取到pos说明策略没有收到成交回报

Member
avatar
加入于:
帖子: 10
声望: 0

谢谢两位大佬回答。
在on_bars里调用buy后,马上调用get_pos,返回持仓量为0
我的日线策略目的是以当天收盘价成交,但是打印的成交明细显示成交时间不是当天
请教buy成交的条件是什么?怎样可以立即成交?

代码如下:
class MyPortfolioStrategy(StrategyTemplate)

on_bars:
self.buy(vt_symbol,bar.close_price,target_pos)
print(f'buy :{self.get_pos(vt_symbol)}')

Member
avatar
加入于:
帖子: 125
声望: 4

buy的close_price指以收盘价挂单,需要等下一根K线过来的时候才能进行撮合。当天K线都已经走完了,是不能以当天收盘价成交的

Member
avatar
加入于:
帖子: 10
声望: 0

明白了。谢谢!

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】