yy228318 2022-08-04 12:00 采纳率: 60%
浏览 143
已结题

python选股策略

import akshare as ak
import pandas as pd
def begin(kyg):
    resp_json = ak.stock_zh_a_hist(symbol=kyg, period="daily", start_date="20190301", end_date='20220729', adjust="")
    df = pd.DataFrame(resp_json)
    ma = df['收盘']
    a = ma.rolling(window=20).mean()
    b = ma.rolling(window=60).mean()
    a = list(a)
    b = list(b)
    if a[-1] > b[-1]: 
#取4个列表值,hongda,lvxiao,hongxiao,lvda。
#有两条线,a绿线MA20,b红线MA60。
#当线在a>b金叉到a< b死叉(绿色云)区间时,取a的最大值添加到(lvda)里,b的最小值添加到( hongxiao)里。
#当线在a< b死叉到a<b金叉(红色云)区间时,取b的最大值添加到(hongda)里,a的最小值添加到(lvxiao)里。
#当a[-1]>lvda[-1] and b[-1]>hongda[-1]:
#print(有个提醒)
#当a[-1]<lvxiao[-1] and b[-1]<hongxiao[-1]:
#print(有个提醒)

        return True
gpc = []
gp=['000001', '000002', '000004', '000005', '000006', '000007', '000008', '000009', '000010', '000011', '000012', '000014', '000016', '000017', '000019']
for bb in gp:
    try:
        if begin(bb):
            gpc.append(bb)
            print(bb)
    except:
        print("cuowu" + bb)
print(gpc)

img

#取4个列表值,hongda,lvxiao,hongxiao,lvda。
#有两条线,a绿线MA20,b红线MA60。
#当线在a>b金叉到a< b死叉(绿色云)区间时,取a的最大值添加到(lvda)里,b的最小值添加到( hongxiao)里。
#当线在a< b死叉到a<b金叉(红色云)区间时,取b的最大值添加到(hongda)里,a的最小值添加到(lvxiao)里。
#当a[-1]>lvda[-1] and b[-1]>hongda[-1]:
#print(有个提醒)
#当a[-1]<lvxiao[-1] and b[-1]<hongxiao[-1]:
#print(有个提醒)

  • 写回答

4条回答 默认 最新

  • 脚踏南山 2022-08-05 09:14
    关注

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 创建了问题 8月4日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题