回测相关
Q:为什么我的策略代码无法运行?
A:代码无法可能有很多原因,请查看您的系统日志翻到最后,看看日志中的提示。
Q:为什么我在OnBar或者OnQuote中下单,但是没有任何成交?
A:这可能是因为没有订阅行情导致的,请检查有没有通过SubscribeQuote或者SubscribeBar订阅对应的行情或K线
Q:为什么我在OnBar或者OnQuote中下一次单,实际提交了多次?
A:这可能是因为订阅了多个行情导致的,对于每个订阅的行情都会进一次OnBar和OnQuote函数。可以将不需要的行情退订或者在OnBar、OnQuote中过滤,例如:
Q:为什么我的回测策略只在某一段时间有成交,其他时间就没有了?
A:这可能是因为只订阅了一次合约行情,当这个合约到期了,没有订阅新的合约。建议在OnMarketQuotationInitialEx事件中重新订阅合约行情。
Q:为什么回测中我的下单没有成功?
A:下单不成功可能是有很多原因,例如下单价格不是最小变动价位的整数倍,下单时间是非交易时间,下单时资金不足,下单的手数非整数等,您可以检查下单条件或者打开系统日志查看具体的下单失败原因。
Q:为什么我明明有仓位但是下平仓单时提示平仓失败,可平数量不足?
A:可能是您只有10手仓位而试图平11手,也可能是因为您的仓位是今仓,而您没有使用平今指令————上期所对平仓分为平今和平昨,必须分别使用。
Q:OnQuote事件在回测时的触发频率是怎样的?
A:OnQuote事件是根据您订阅的行情进行触发,回测时行情的频率跟您选择的回测方式有关,每天的回测,OnQuote在每天15:00触发一次,分钟回测在交易时间段每分钟触发一次,tick回测则是每个tick触发一次。
Q:如果我订阅了K线,OnBar事件会怎么触发?
A:如果订阅的是日线,会在每个交易日收盘时(基本都是15:00)触发;如果订阅的是分钟线会在交易时间段每个整分钟触发。例如9:00、9:01、14:48、14:59。
Q:回测时该如何设置滑点?
A: 日线和分钟回测的滑点可以通过在下单价格上追加点位实现,例如采用PriceType(PbPriceType.Limit,limit_price_type=16,limit_price_offset=2),调整这里的limit_price_offset,采用超价下单成交。
Q:要是一不小心把整个代码删了,有办法撤销么?
A: 还没有推出编辑页面的话可以通过ctrl+z撤销,如果退出保存的话,目前是无法撤销的,请及时保存好您的代码。之后将推出代码版本管理功能。
Q:如果我下单要求下一个类似1314.159265的价单,真格会自动按照最小变动价位调准么?
A:不会,这个下单会被拒绝,请您注意下单价格需要是最小变动价位的整数倍。
Q:为何我用GetVarietyInfo获取到的结果,打印出来是一些乱码。
A:这是python内部转码问题,不影响访问,但是如果需要打印日志,可以通过如下代码将其打印出来(需要import json)
info = GetVarietyInfo2('m')
print json.dumps(info, encoding="UTF-8", ensure_ascii=False)
Q:真格平台分钟K线的时间是怎么划分的?
A:真格平台,分钟K线的时间是往前计的,K线的时间可以通过”GetHisDataAsDF”函数返回的数据的”datetime”字段看到,例如9:05分的分钟线,表示的是9:04:01秒到9:05:00秒的K线.
Q:系统报错“委托价格不对,价格超出涨跌停价范围!”是怎么回事?
A:先检查下下单价位是用的实际数字还是PriceType类,用PriceType类的情况下,可以从系统日志里看到委托的具体价格,是否是在没有行情或者挂单的情况下单,没有行情的情况下,可能会发生对手价为0之类的情况,建议在需要下单时,对行情数据做一个判断。
Q:为什么有时候在GetQuote里获取不到合约的最新价?
A:当合约不活跃,当天没有发生成交的时候,GetQuote里的最新价将会是0。
Q:我自己有一些计算出来的数据,真格量化能读入这个数据然后应用么?
A:可以的,您可以通过附件将您的文件上传至服务器,然后在策略中读取文件,上传的文件默认在当前路径下。
Q:可以用大商所和郑商所的套利指令么?
A:目前回测暂时不支持套利指令,模拟的话,上期技术simnow柜台也不支持套利指令,但是在量化平台上实盘是可以支持的。
Q:在OnBar或者OnQuote中,可以获取不是这个合约的行情数据么?
A:可以的,OnBar和OnQuote的主要作用是通知到您有新行情,并不影响您获取行情数据。 .
Q:下单以后持仓查询不到?我下单开仓以后查我的持仓为什么查不到?
A:真格量化的策略运行和下单是异步的,您可以理解为,您刚下完单,您的下单信息还未提交到交易所,当然不可能发生成交,也不可能会有持仓。如果您希望查询持仓,推荐您下一次下单之前查持仓,或者在委托回报和成交回报中查询持仓。
Q:为什么我设置的止盈止损没有触发?
A:目前止盈止损的触发需要对合约的行情进行订阅,也就是需要SubscribeQuote合约才能生效。
Q:为什么我获取期货主力对应的期权,用GetAtmOptionContract无法获取到?
A:因为商品期货期权,会比对应的期货提前到期,例如5月的白糖期权,到期日可能会在三月底,如果您在3月底以后去获取,就会无法获取到对应的期权,因为它们都已经到期了。
模拟/实盘相关
Q:模拟运行提示“交易账号登录失败”,这是为什么?
A:请注意下您的账户是否用的回测账户登陆,模拟运行时需要将账号换成您对应的模拟账户
Q: 策略回测效果不错,我想要上模拟/实盘,需要改动么?
A:将回测的策略上架之前需要注意几个地方(不限于这些地方):将账户改成模拟/实盘账户;注意模拟/实盘每天开盘以后需要对账户进行重新登陆处理;注意账户资金对开仓量的影响。
Q:在架上运行的策略,平台升级或者断线后,那些g.这种全局变量会清空吗?
A:如果进程仍在执行就不会,但若涉及到需要停止模拟或实盘进程的升级,就会清空,需要重新下架上架运行。这种升级我们会保证在盘后进行,同时会通过博易app消息通知到您,为了及时得知消息,推荐下载我们的真格量化app。
Q:我的策略在实盘/模拟时,我手动对账号进行开仓操作,策略会收到成交回报么?
A:会的,或者您一个账号在运行两个策略,两个策略都会受到成交回报和委托回报,所以请您注意在处理回报时做好筛选。
请问下,回测环境可以正常下单,为啥模拟环境一直报错?
两套代码一致,且模拟环境账户登录成功
报错33是什么原因啊?文档也找不到相关说明
2024-05-10 09:50:06.478 - INFO - 下突破开空:AP410.CZCE
2024-05-10 09:50:08.915 - INFO - OrderChanged on AP410.CZCE volume: 1 status: 33 on test01
2024-05-10 09:51:02.952 - INFO - 分时K线盘中运行===========
2024-05-10 09:52:02.045 - INFO - 分时K线盘中运行===========
2024-05-10 09:52:03.370 - INFO - 下突破开空:AP410.CZCE
2024-05-10 09:52:07.199 - INFO - OrderChanged on AP410.CZCE volume: 1 status: 33 on test01
2024-05-10 09:53:02.690 - INFO - 分时K线盘中运行===========
2024-05-10 09:53:06.497 - INFO - 下突破开空:AP410.CZCE
2024-05-10 09:53:09.413 - INFO - OrderChanged on AP410.CZCE volume: 1 status: 33 on test01
2023-12-28 14:50:01.409 - WARN - Warning VAccount 实体账号 汇点期权模拟 没有登录!
总是这个问题,汇点期权模拟账户就没有成交。
023-09-22 21:44:48.208 - INFO - 策略参数: {}
2023-09-22 21:44:48.219 - INFO - OnStart事件触发
2023-09-22 21:44:49.042 - WARN - Warning EAccount 连接中间件OK ,m_pTraderApi:0x562e0f0
2023-09-22 21:44:49.069 - INFO - Info EAccount 开始登录请求, NetIP:1.30.74.241
2023-09-22 21:45:20.002 - WARN - Warning EAccount 6011 客户登录应答失败, rsp:FuncNo:6011, ItemNum:0, Requestno:3, ErrorNo:-1, ErrorInfo:发送请求超时(6011,3,3)!
两个平台的模拟账号都登录不成功。请问怎么解决呢?
请教一下,OnBar与OnQuote有什么区别?感觉他们两个可以相互替代?
GetSampleInfo('000016.SHSE','600000.SHSE')
获取样本权重函数为何会返回空字典?函数是不是有问题
如何让到期的合约自动交割,成交记录里到期的股指期货合约并没有自动交割
已经订阅行情的情况下ETF无法下单
QuickInsertOrder(context.etfacc,g.etf_code,'buy','open',etf_now,100)
用户系统
最新全部
下载全部日志
2022-03-17 16:49:12.314 - INFO - 策略[106677]回测[99 340 2]进程[ 23 499]启动,运行器版本 1.7.9.6
2022-03-17 16:49:14.140 - 2021-01-01 20:30:00.000 - ERROR - Traceback (most recent call last):", line 1
File "./Envelop.py", line 22, in
import Main
File "
#!/usr/bin/env python
^
SyntaxError: invalid character in identifier
2022-03-17 16:49:14.140 - 2021-01-01 20:30:00.000 - ERROR - 策略脚本加载报错
2022-03-17 16:49:14.140 - 2021-01-01 20:30:00.000 - ERROR - 回测过程中出现无法继续的错误, 错误信息: Module[300], Func[DoAction], ErrCode[-3001]
2022-03-17 16:49:14.140 - 2021-01-01 20:30:00.000 - ERROR - 回测过程因出现错误而终止, ErrCode[-3]
# coding:utf-8
from PoboAPI import *
import datetime
import numpy as np
#Python3Preview
#开始时间,用于初始化一些参数
def OnStart(context) :
print("I\'m starting...")
#登录交易账号,需在主页用户管理中设置账号,并把期货测试替换成您的账户名称
context.myacc = None
if "回测期货" in context.accounts:
print("登录交易账号[回测期货]")
if context.accounts["回测期货"].Login():
context.myacc = context.accounts["回测期货"]
g.code_position = GetMainContract('DCE', 'm',20)
g.code = GetMainContract('DCE', 'm',20)
print((g.code))
INFO - 策略[100405]回测[92 822 7]进程[ 30 322]启动,运行器版本 1.7.8.1
INFO - 系统参数读取...
ERROR - 回测过程中出现无法继续的错误, 错误 信息: M od ule[0], Func[Init], ErrCode[-1]
ERROR - 回测服务初始化失败, ErrC ode [-1]
1
onbar收盘不触发,开盘不触发,那怎么交易啊?
开盘第一根K线数据出来就触发了,比如期货的上午9:00整
申请了汇点的期权模拟账户,然后在账户管理里面,添加账户,选择的也是汇点期权模拟柜台,就是显示登录不成功。
提示:交易账号登录失败。Resp:FuncNo:6011, ItemNum:0, Requestno:3, ErrorNo:-1, ErrorInfo:发送请求超时(6011,3,3)!
请问怎么解决
这两天不知道为何无法修改代码里的变量,前两天还可以的,现在一回测下单的数量和我代码写的不一样,是个凭空产生的数量这个是什么情况
登录一直报错;
交易账号登录失败。Resp:FuncNo:6011, ItemNum:0, Requestno:3, ErrorNo:-9, ErrorInfo:CTP:不合法的登录
请问是什么原因呢。
查最新k线的话,就会返回生成中的那根k线,这里会和回测周期有关
GetHisDataByFieldAsDF(g.future,["datetime", "open", "high", "low", "close"],bar_type = BarType.Min15,count = 5)
获取15分钟K线,使用这个函数按分钟回测时,为什么返回的datetime时间差为1分钟? 应该间隔15分钟吗?而且获取历史数据,应该也与回测周期无关啊。