ptrade上的get_cb_info函数无法使用

Ptrade李魔佛 发表了文章 • 0 个评论 • 33 次浏览 • 2024-11-20 10:32 • 来自相关话题

比如示例代码:
def initialize(context):
pass

def handle_data(context, data):
df = get_cb_info()
log.info(df)
最后跑出来的结果如下:
2024-11-20 10:22:00 - ERROR - 用户策略执行异常
2024-11-20 10:22:00 - ERROR - Exception: Traceback (most recent call last):
File /home/fly/sim_backtest/result/29fa7074-a6e6-11ef-b05b-c40778d9af27/user_strategy.py, line 6 in handle_data
df = get_cb_info()
--> data = BarDict(600570.SS)
--> context = <StrategyContext {'recorded_vars': {}, 'commission': <Commission {'cost': 0.0003, 'min_trade_cost': 5.0, 'tax': 0.001}>, 'blotter': <Blotter {'current_dt': date ...
NameError: name 'get_cb_info' is not defined

说明这个函数就根本没有做进去了。
 
目前我试的券商,国盛ptrade是无法使用的。
 
所以如果需要获取可转债的数据,需要自己写一个接口获取。我之前的很多文章里面也有写过类似的api接口。可以参考参考。
 

  查看全部
比如示例代码:
def initialize(context):
pass

def handle_data(context, data):
df = get_cb_info()
log.info(df)

最后跑出来的结果如下:
2024-11-20 10:22:00 - ERROR - 用户策略执行异常
2024-11-20 10:22:00 - ERROR - Exception: Traceback (most recent call last):
File /home/fly/sim_backtest/result/29fa7074-a6e6-11ef-b05b-c40778d9af27/user_strategy.py, line 6 in handle_data
df = get_cb_info()
--> data = BarDict(600570.SS)
--> context = <StrategyContext {'recorded_vars': {}, 'commission': <Commission {'cost': 0.0003, 'min_trade_cost': 5.0, 'tax': 0.001}>, 'blotter': <Blotter {'current_dt': date ...
NameError: name 'get_cb_info' is not defined

说明这个函数就根本没有做进去了。
 
目前我试的券商,国盛ptrade是无法使用的。
 
所以如果需要获取可转债的数据,需要自己写一个接口获取。我之前的很多文章里面也有写过类似的api接口。可以参考参考。
 

 

python django3 跨域问题解决

python李魔佛 发表了文章 • 0 个评论 • 8 次浏览 • 2024-11-22 11:53 • 来自相关话题

一个旧的项目,本来用的MVC的模式,后面需要拆分,前端换成React,所以django部分就换成只有api,不负责渲染了。
 
然后react范围django api,会有跨域问题,所以需要额外配置一下。
 
网上很多教程都是基于最新的django4或者更新。
 
本文只针对django3 解决。
 
如果用的django3.10

需要对应的版本的cors库:

pip install django-cors-headers==3.10.0不然大概率是装不上的。
 
然后在setting里面配置这个

CORS_ORIGIN_ALLOW_ALL = True

INSTALLED_APPS = [

'corsheaders',
]

MIDDLEWARE = [

'corsheaders.middleware.CorsMiddleware',
]

然后就OK了。
 
如果需要更加细致的配置,比如只要求某个IP的机子才能访问,或者只能某个GET方法运行跨域。
 
# 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
'*'
)

# 允许的请求方式
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)

# 允许的请求头
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
# 额外允许的请求头
'token',
)
就可以了 查看全部
一个旧的项目,本来用的MVC的模式,后面需要拆分,前端换成React,所以django部分就换成只有api,不负责渲染了。
 
然后react范围django api,会有跨域问题,所以需要额外配置一下。
 
网上很多教程都是基于最新的django4或者更新。
 
本文只针对django3 解决。
 
如果用的django3.10

需要对应的版本的cors库:

pip install django-cors-headers==3.10.0
不然大概率是装不上的。
 
然后在setting里面配置这个

CORS_ORIGIN_ALLOW_ALL = True

INSTALLED_APPS = [

'corsheaders',
]

MIDDLEWARE = [

'corsheaders.middleware.CorsMiddleware',
]

然后就OK了。
 
如果需要更加细致的配置,比如只要求某个IP的机子才能访问,或者只能某个GET方法运行跨域。
 
# 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
'*'
)

# 允许的请求方式
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)

# 允许的请求头
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
# 额外允许的请求头
'token',
)

就可以了