返回列表 发布新帖

用get_market_data_ex取得的数据是错的,而用get_local_data是正确的

1035 1
发表于 2024-2-23 11:18:30 | 显示全部楼层 阅读模式

coding:gbk

导入常用库

import pandas as pd import numpy as np import talib

示例说明:本策略,通过计算快慢双均线,在金叉时买入,死叉时做卖出

def init(C):

#line1和line2分别为两条均线期数
C.lined1=14   #日快线参数
C.lined2=156  #日慢线参数
C.accountid = "testS"  

def handlebar(C):

当前k线日期

sk=['300308.SZ'] bar_date = timetag_to_datetime(C.get_bar_timetag(C.barpos), '%Y%m%d%H%M%S')

回测不需要订阅最新行情 使用本地数据速度更快. 如果回测多个品种 需要手动下载对应周期历史数据 主图品种显示在界面时已经订阅了行情 直接取就可以

local_data = C.get_market_data_ex(['close'], stock_code=sk, period='1d', start_time='20220101', end_time='20240222', count=156, dividend_type='front', fill_data=True, subscribe=True)

close_list =list(sorted_keys)

close_list=local_data[sk[0]]['close']


print (close_list)

lined1_mean = close_list.rolling(window=C.lined1).mean()

lined2_mean = close_list.rolling(window=C.lined2).mean()

lined1_mean = round(np.mean(close_list[-C.lined1:]),2)
lined2_mean = round(np.mean(close_list[-C.lined2:]),2)
print(f"{bar_date} 短均线{lined1_mean} 长均线{lined2_mean}")
print (len(close_list))

得到的156均线119.03,而实际应为113.41

评论1

*******6914
发表于 2024-3-6 21:49:29 | 显示全部楼层
看看复权方式是不是一样

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 蜀ICP备19002686号-2
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表