VeighNa量化社区
你的开源社区量化交易平台
chwei2ch's Avatar
Member
离线
36 帖子
声望: 7

什么时间段运行的?

C:\Users\Administrator\strategies

IO2006-C-3900.CFFEX的命名规则好像不一样,自己查阅米筐的手册。

图片评论

description

策略没有放在指定的文件夹里

退出VN Station,重新登录。

Lucien wrote:

python run.py 按照文章来运行无界面模式,出错
错误产生在 main_engine.connect(exchange_setting,exchange_name) 连接接口 这里。

错误内容: 个人理解是gateway产生的
gateway.connect(setting)
session_number, proxy_host, proxy_port)
self.start(session_number)
self._pool = Pool(n)
return ThreadPool(processes, initializer, initargs)
Pool.init(self, processes, initializer, initargs)
if processes < 1:
TypeError: '<' not supported between instances of 'str' and 'int'

这要怎么解决呢? 有界面模式是能正常运行的。

你设置的问题吧

配置VN Trader的时候需要勾上CTP接口那个选项。

description

我这样写是可以直接命令行运行的

from time import sleep

from vnpy.app.script_trader import init_cli_trading
from vnpy.gateway.ctp import CtpGateway
from vnpy.gateway.xtp import XtpGateway

# CTP接口连接设置
ctp_setting = {

}

# XTP接口连接设置
xtp_setting = {

}

engine = init_cli_trading([CtpGateway, XtpGateway])
engine.connect_gateway(ctp_setting, "CTP")
engine.connect_gateway(xtp_setting, "XTP")

sleep(10)

vt_symbols = ["IC2012.CFFEX", "rb2009.SHFE", "601990.SSE"]
engine.subscribe(vt_symbols)

# 获取合约信息
for vt_symbol in vt_symbols:
    contract = engine.get_contract(vt_symbol)
    msg = f"合约信息,{contract}"
    engine.write_log(msg)

# 持续运行,使用strategy_active来判断是否要退出程序
engine.strategy_active = True
while engine.strategy_active:
    # 轮询获取行情
    for vt_symbol in vt_symbols:
        tick = engine.get_tick(vt_symbol, use_df=True)
        msg = f"最新行情, {tick}"
        engine.write_log(msg)

    # 等待3秒进入下一轮
    sleep(3)

但这个代码通过VNTrader加载就不行,命令行可以运行。后来发现是 def run(engine: ScriptEngine)函数已经集成了底层的CTP和XTP的接口,所以需要在VNTrader里面登录CTP和XTP的接口才能正常运行,如果没有登录CTP和XTP接口,是无法获取Tick数据的。
我也希望能够有一个详细的Demo来说明脚本策略模式的编写格式和要求。

KTer wrote:

class_name = "DemoMaStrategyCTP", 这里我自己写的策略类py文件放在哪个目录下呢

默认路径是:C:\Users\Administrator\strategies

miles wrote:

chwei2ch wrote:

正在维护
我在交易时间登录也一直这样,难道它一直维护下去?什么时候可以登录上去呢?

昨天上午10点多就可以正常登录了。

正在维护

李怡然 wrote:

我的想法是:

  1. BarData增加一个floating_share字段,用来计算市值。或在策略外维护一个带有时间戳的储存个股流通股数的数据容器。(目的是方便你拿到流通股数)
  2. 为策略设置一个类属性 self.target_pool: List 来存放你的目标股票
  3. vt_symbols 设置为包括A股所有股票和股指期货合约的 List
  4. on_bars函数内实现一个筛选市值最小的10只股票的逻辑,并将选出的股票放入`self.target_pool'
  5. 利用self.get_pos 来获得目标池股票的持仓情况,方便你进行动态调仓。

该方法的弊端:
载入的数据太多,回测应该会很慢。

多谢版主这么详细的回复。目前我们考虑在每天盘前对昨天的市值进行排名,然后在on_bars里面每隔1min对排名进行刷新,根据已有持仓,获取调入调出的股票List,然后进行决策和下单交易。

日期格式要跟csv一样,不一样的可以修改成匹配的就可以了 %Y-%m-%d %H:%M:%S

我的策略逻辑很简单,就是每天对A股所有股票进行市值排序,由策略给出市值排名最小的10只股票作为交易标的,每天盘中实时更新股票市值排名,排名小于10的就调入,大于10的就调出,另外在期货市场买入1手股指期货合约进行对冲,到期交割后重新买入1手新的合约。
portfolil strategy给出的sample都是需要事先指定若干交易合约标的代码才能进行交易,如何能够不事先指定而由策略给出信号后确定交易标的呢?

鋕桦 wrote:

chwei2ch wrote:

杨大鑫 wrote:

大佬,现在最新版的vnpy目录下一直没找到no_ui这个目录啊

在examples目录下的no_ui
那样是不是要手动安装,而不能用vnstudio安装?

可以用vnstudio安装,然后直接运行那个run.py就可以了

liang wrote:

能否贴个sample?急着开发啊~~~

我这边也需要用到组合策略,比你的还要复杂。

用Python的交易员 wrote:

下个版本我们会提供DEMO代码的

版主,下个版本什么时候发布啊?

cross_below = (self.fast_ma0 <= self.slow_ma0 and self,fast_ma1 > self.slow_ma1)
是self.fast_ma1而你的代码是self,fast_ma1,逗号错了。

用Python的交易员 wrote:

没有提供,CTA策略中的算法交易请自行在代码逻辑中实现了

有CTA策略使用算法交易(如TWAP)的示例吗?

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

沪公网安备 31011502017034号

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