VeighNa量化社区
你的开源社区量化交易平台
Member
离线
81 帖子
声望: 0

xiaohe wrote:

5min。交易逻辑写在哪个函数下就在哪个频率下执行。

谢谢了。但是是按照下一个5min bar 的 Open Price 来执行吧?

xiaohe wrote:

回测的停止单的话,可以去vnpy.app.cta_strategy.backtesting下的cross_limit_order函数中打印排查看看

如果单看下面这个code。在回测的时候,short 的的单,是在下1min 还是下5min 还是下个tick 执行呀?

def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
    """"""
    super().__init__(cta_engine, strategy_name, vt_symbol, setting)

    self.bg5 = BarGenerator(self.on_bar, window = 5, on_window_bar = self.on_5min_bar, interval = Interval.MINUTE)


def on_tick(self, tick: TickData):
    """
    Callback of new tick data update.
    """
    self.bg5.update_tick(tick)

def on_bar(self, bar: BarData):
    """
    Callback of new bar data update.
    """
    self.bg5.update_bar(bar) 

def on_5min_bar(self, bar: BarData):

    am = self.am
    am.update_bar(bar)

if *** some logic ***:
    self.short(bar.close_price+10, 5)

charlesttt wrote:

在回测环境下,请问如果挂单的话,是按照下一个 tick 的价格成交么?还是下一分钟Bar 的开盘价格?

另外在回测过程中出现了明明我的limit price 比市场价格低很多,但依然short 指令发出去不能trade 的情况。这种情况应该检查哪里呢?

在回测环境下,请问如果挂单的话,是按照下一个 tick 的价格成交么?还是下一分钟Bar 的开盘价格?

请问修改策略Python 代码之后需要删除策略再重新加入吗? 我尝试不删除,感觉好像系统并没有拿到最新版的.py 文件

charlesttt wrote:

charlesttt wrote:

如何计算loadbar()里面最少要load 几天的数据呢?因为数据短,想尽可能少的load 数据,但是又要保证load 足够多的数据能确保当天马上可以交易。

另外如何判断出 实盘不能交易 是因为loadbar()没有足够数据呢?

请问如何判断实盘不能交易 是loadbar()没有足够的数据呢?

就是在我点击“策略初始化”的时候,如何能够有一个弹出信息说数据不够交易之类的?

charlesttt wrote:

如何计算loadbar()里面最少要load 几天的数据呢?因为数据短,想尽可能少的load 数据,但是又要保证load 足够多的数据能确保当天马上可以交易。

另外如何判断出 实盘不能交易 是因为loadbar()没有足够数据呢?

请问如何判断实盘不能交易 是loadbar()没有足够的数据呢?

用的默认数据库设置SQLite
我发现数据录制程序有一行数据录制有误,我想把这一行从数据库中删掉。有没有Python 的代码可以 直接进到数据库删掉 某一个 时间的 数据呢? 或者其他手动方法也可以。谢谢

xiaohe wrote:

用的哪个接口?

CTP

如果删除一个策略,但是还有头寸的话,是不是需要手动平头寸。还是可以让新的策略继承之前的头寸?

在实盘中,如果出现交单以后被拒单的情况,如何查看 拒单的原因呢?

如何计算loadbar()里面最少要load 几天的数据呢?因为数据短,想尽可能少的load 数据,但是又要保证load 足够多的数据能确保当天马上可以交易。

另外如何判断出 实盘不能交易 是因为loadbar()没有足够数据呢?

charlesttt wrote:

打开CTA 策略的时候出现下面 异常报错。
没有办法打开CTA 策略模块。请问应该如何处理呀?

Traceback (most recent call last):
File "c:\vnstudio\lib\site-packages\vnpy\trader\ui\mainwindow.py", line 281, in open_widget
widget = widget_class(self.main_engine, self.event_engine)
File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\ui\widget.py", line 37, in init
self.cta_engine.init_engine()
File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 110, in init_engine
self.load_strategy_data()
File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 800, in load_strategy_data
self.strategy_data = load_json(self.data_filename)
File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 99, in load_json
data = json.load(f)
File "c:\vnstudio\lib\json__init.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "c:\vnstudio\lib\json\
init__.py", line 348, in loads
return _default_decoder.decode(s)
File "c:\vnstudio\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\vnstudio\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 29 column 38 (char 633)

我找到原因了。是不是不需要自己存储strategy data?我自己又写了代码在策略结束时存里面的变量,这就会和VNPY 自己的储存冲突了?

打开CTA 策略的时候出现下面 异常报错。
没有办法打开CTA 策略模块。请问应该如何处理呀?

Traceback (most recent call last):
File "c:\vnstudio\lib\site-packages\vnpy\trader\ui\mainwindow.py", line 281, in open_widget
widget = widget_class(self.main_engine, self.event_engine)
File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\ui\widget.py", line 37, in init
self.cta_engine.init_engine()
File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 110, in init_engine
self.load_strategy_data()
File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 800, in load_strategy_data
self.strategy_data = load_json(self.data_filename)
File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 99, in load_json
data = json.load(f)
File "c:\vnstudio\lib\json__init.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "c:\vnstudio\lib\json\
init__.py", line 348, in loads
return _default_decoder.decode(s)
File "c:\vnstudio\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\vnstudio\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 29 column 38 (char 633)

在UI界面 CTA 回测里,有一个参数是 合约乘数。

但是如果通过Python 跑的话,
engine = BacktestingEngine()
engine.set_parameters(。。。)这里面对应应该设置哪个参数呀?貌似找不到。

我看到很多代码里面都有self.put_event(). 请问这个的用途是什么呢?什么时候需要加这行呢?

用Python的交易员 wrote:

下单的时候,价格必须是pricetick的整数倍,否则就会被拒单

请问老师,在CTA 回测里,如果输入不同的价格跳动 数值 作为参数,会产生不同的回测结果。这个原理是什么呢?谢谢

xiaohe wrote:

是的 ,记得导入的是5分钟的应该就行

但是如果我有两个数据源。不同时间段的。一个是5分钟一个数据。一个是1分钟一个数据。两个都上传到数据库。那样是不是就跑不了回测了呀?因为历史数据有的时候是5 min 一个数据,有时候是1 min 一个数据。

我自己找到一个方法。
在策略代码中加入
import sys
sys.path.append('C:/Users/XXXXX/strategies')
可以解决。但不知道是不是正确的解决方法

用Python的交易员 wrote:

后者,BarGenerator就是用来合成各种不同周期K线的

请问如我我只有5min 的数据,没有1min 的数据,如何回测呢?也是选K线是1分钟么?

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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