3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 平台中,get_price 和 get_history 等函数返回的数据类型通常是 pandas.DataFrame。当你使用 log.info() 或 print() 打印这些数据时,如果数据行数或列数较多,pandas 默认的显示机制会将其截断,中间的数据就会用省略号(...)代替。
要解决这个问题,你只需要在策略代码中导入 pandas 库,并修改其默认的显示设置即可。
在策略的开头(或者 initialize 函数中),添加以下代码来解除 pandas 的显示限制:
import pandas as pd
# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)
# 设置显示宽度,防止数据被折行显示
pd.set_option('display.width', 1000)
import pandas as pd
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 修改 pandas 打印设置,解除省略号限制
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.width', 1000)
def handle_data(context, data):
# 获取过去 50 天的历史数据
price_df = get_price(g.security, count=50, frequency='1d')
# 此时打印的数据将完整显示,不再有省略号
log.info("\n" + str(price_df))
pd.set_option('display.max_rows', None) 改回默认值,或者仅打印头部/尾部数据(如 log.info(price_df.head(10)))。get_price 时传入 is_dict=True,这样返回的将是字典格式,取数速度更快。