zoukankan      html  css  js  c++  java
  • 钉钉机器人自动推送股票信息

    项目时间和要求

    马上五一了,估计很多小伙伴会休假!我们时间稍晚长一点 ,4/29-5/11.给大家两周的时间完成。

    这虽然是一个小系统,但是玩好了,可以做各种好玩的东西。

    为了照顾新手同学,我把这个项目进行分解:

    -------新手----------

    Step0:

    安装钉钉的环境,并且获取Token

    Step1:

    用钉钉的api接口给自己的手机上发一条消息 这里用到的代码改10行左右,新手应该能完成

    -------老手----------

    Step2:

    利用Tushare接口,获取某一只股票的数据,比如招商银行的当日的实时的股票数据。

    然后你设定一个止盈价格 和止损价格,

    若高于则给钉钉发出卖出信号。如低于则发出买入信号!

    这个信号可以是推送的一段消息,比如:

    股票 xxx ,现价大于xxx,可以卖出

    股票 xxx ,现价低于xxx,可以买入

    Step3:

    把上面的止盈和止损 和股票的编码,写入一个配置文件中,比如config.ini ,

    然后把上面的代码进行类的封装

    class Stock

    class Dingding

    class Warning

    然后在Warning中读取config,ini文件,这样整个提醒系统在跑的时候,我们只需要改变config.ini就可以动态的修改我们的提醒系统。

    -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

    只完成了前两个要求

    # !/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:Hiuhung Wan
    
    from time import sleep
    from dingtalkchatbot.chatbot import DingtalkChatbot
    import tushare as ts
    
    ts_code = "600036"  # 招商银行
    webhook_prefix = "https://oapi.dingtalk.com/robot/send?access_token="
    access_token = "这里输入自己钉钉机器人的access_token"
    webhook = webhook_prefix + access_token
    
    
    def send_msg(msg):
        ding_robot = DingtalkChatbot(webhook)
        ding_robot.send_text(msg, is_at_all=0)
    
    
    def get_real_price(code):
        df = ts.get_realtime_quotes(code)
        name = df.name[0]
        price = df.price[0]
        price = round(float(price), 2)
        return name, price
    
    
    def price_comparison(profit_ceiling_price, stop_price, realtime_price, name):
        """
        若高于则给钉钉发出卖出信号。如低于则发出买入信号!
        :param profit_ceiling_price: 止盈价格
        :param stop_price:           止损价格
        :param realtime_price:       实时价格
        :param name:                 股票名称
        :return: None
        """
        if realtime_price > profit_ceiling_price:
            msg = "股票:%s ,现价:%s,看好就收,快抛!!" % (name, realtime_price)
            # print(msg)
            send_msg(msg)
        elif realtime_price < stop_price:
            msg = "股票:%s ,现价:%s,买买买!" % (name, realtime_price)
            send_msg(msg)
            # print(msg)
    
    
    def run2():
        msg = "因股市下班,价格不更新,为了达到价格有变,预先设置了几个价格"
        print(msg)
        # send_msg(msg)
        profit_ceiling_price = 34.0  # 止盈价格
        stop_price = 32.0            # 止损价格
        for i in [
                32.32,
                31.55,
                32.66,
                33.68,
                34.12,
                34.99,
                35.36,
                34.20,
                33.50,
                31.57,
                30.86]:
            name, price = get_real_price(ts_code)
            price = i
            price_comparison(profit_ceiling_price, stop_price, price, name)
            # msg = "股票:%s ,现价:%s" % (name, price)
            # send_msg(msg)
            # print(msg)
            for j in range(10):
                sleep(1)
    
    
    def run():
        profit_ceiling_price = 33.0  # 止盈价格
        stop_price = 32.0            # 止损价格
        while True:
            name, price = get_real_price(ts_code)
            # msg = "股票:%s ,现价:%s" % (name, price)
            # send_msg(msg)
            # print(msg)
            price_comparison(profit_ceiling_price, stop_price, price, name)
            for j in range(10):
                sleep(1)
    
    
    if __name__ == '__main__':
        run()  # 正常就用这个
        # run2()  # 股市下班就用这个
    

      

  • 相关阅读:
    HDU4758 Walk Through Squares(AC自动机+状压DP)
    HIT2543 Stone IV(一定费用内的最大流)
    HIT2715 Matrix3(最小费用最大流)
    COGS738 [网络流24题] 数字梯形(最小费用最大流)
    HDU3157 Crazy Circuits(有源汇流量有上下界网络的最小流)
    ZOJ3229 Shoot the Bullet(有源汇流量有上下界网络的最大流)
    BZOJ 1834 [ZJOI2010]network 网络扩容(费用流)
    BZOJ 1475 方格取数(二分图最大点权独立集)
    BZOJ 4236 JOIOJI(前缀和)
    HZAU 1201 Friends(树形DP)
  • 原文地址:https://www.cnblogs.com/hiuhungwan/p/10846717.html
Copyright © 2011-2022 走看看