金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2370|回复: 9

请问如何将PRINT内容保存到EXCEL

[复制链接]

145

主题

412

帖子

412

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
发表于 2023-1-12 22:18 | 显示全部楼层 |阅读模式
#获取20180901至20180910区间的日线收盘价序列bar_close=history_bars_date('SQRB00','20180901','20180910','1d','close')#对返回值k线数量进行检查print(bar_close)


请问如何将PRINT内容保存到EXCEL,能否请老师帮忙写一个完整代码?
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-1-13 10:55 | 显示全部楼层
本帖最后由 技术009 于 2023-1-16 09:28 编辑

首先你必须引入pandas
import pandas as pd
然后 具体代码如下:

nda = bar_close=history_bars_date('SQRB00','20180901','20180910','1d','close')
df = pd.DataFrame(nda,columns=['close'])
df.to_csv('path_to_file.csv')

上面是写入csv里 你可以以excel形式打开,直接写excel是需要你本地有excel 相关组件的,否则会报错。
下面这种写法会因为缺少相关excel组件报错,你可以运行试下 不缺组件就不报错

pd.to_excel('path_to_file.xls', sheet_name='Sheet1')

最后文件目录是默认在金字塔根目录里。

参考文档:https://www.pypandas.cn/docs/use ... -%E6%96%87%E4%BB%B6
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

145

主题

412

帖子

412

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-14 19:56 | 显示全部楼层
受教了,非常感谢。
回复

使用道具 举报

145

主题

412

帖子

412

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-14 21:28 | 显示全部楼层
老师好,请问上述代码改写后,不能导出数据是何原因?麻烦老师帮我看看是不是文件路径不对(已在D盘手工建testpandas.csv),还是期权格式表示方式不对,是不是放在init不能运行,必须放行情触发里运行?
# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
import pandas as pd



#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    context.s1 = "QQ10004876"   #上海期权10004876
   
    # print("策略启动") #调试打印输出
    #获取20180901至20180910区间的日线收盘价序列
    nda=bar_close=history_bars_date('QQ10004876','20221201','20230110','5M','close')


    df = pd.DataFrame(nda,columns=['close'])
    df.to_csv('D:\testpandas.CSV')
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-1-16 09:35 | 显示全部楼层
放init里没问题,但是要启动下运行池才会触发。
然后你确认下本地磁盘有没有对应品种的数据呢。

你这个路径 这里多了个空格啊。 df.to_csv('D:\testpandas.CSV') 这种路径运行会直接报错的吧。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

145

主题

412

帖子

412

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-3-20 18:23 | 显示全部楼层
# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
import pandas as pd



#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    context.s1 = "510050"   #上海510050
   
    # print("策略启动") #调试打印输出
    #获取20180901至20180910区间的日线收盘价序列
    nda=bar_close=history_bars_date('510050','20221201','20230110','5M','close')
    print(nda)

    df = pd.DataFrame(nda,columns=['close'])
    df.to_csv('D:\test.CSV')

    老师好,上述代码可以打印DF数据,但不能导出到D盘文件中,请问何故,请指教
截图202303201823347277.png
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-21 17:21 | 显示全部楼层
你这个df定义呢。都没定义 怎么行
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

145

主题

412

帖子

412

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-3-22 16:31 | 显示全部楼层
df = pd.DataFrame(nda,columns=['close'])

这句是赋值呀,行不?
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-22 17:30 | 显示全部楼层
问题是 你这个df定义在啥地方呀。你这个是你这个函数执行时候报错的吧。 它在这个函数内部没找到这个df。自然报错了。

你要么把df作为参数传递到这个函数里 再执行。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

145

主题

412

帖子

412

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-3-22 20:57 | 显示全部楼层
谢谢老师,我再试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 05:34 , Processed in 0.296175 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表