【D30】模组化#5:执行讯号灯程序

前言

把写入资料、制作讯号灯的功能模组化了,接着要整合整个程序,所以制作了run_get_data.py作为把所有讯号灯呈现出来的模组。

本日程序码使用:run_get_data.py


制作module: daily_transaction

在做出讯号灯之前,当然要先有资料罗~因此先把资料汇入资料库,这边用daily_transaction进行处理。

这边就很简单,直接把先前做好的三个模组时做出来,并且呼叫他们的get_and_save(),把资料汇入MySQL中。中间多加个判断,来通知资料没有新增成功。

legal_daily = legal_daily_future_option()
    market_data = daily_market_info()
    stock_trans_data = stock_transaction()

    r = legal_daily.get_and_save()
    if r is False:
        print(f"error:{legal_daily.__str__}")

    r = market_data.get_and_save()
    if r is False:
        print(f"error:{market_data.__str__}")

    r = stock_trans_data.get_and_save()
    if r is False:
        print(f"error:{stock_trans_data.__str__}")

制作module: signal

接着建立的module是signal,这是要从资料库取得资料,并且把讯号印出来 。这边仅进行出印出的格式处理,至於要印什麽讯号,则是在前日的module-fin_signal来决定的。

最主要的实作是包在中:

def _show_singnal(self, signal_list) -> None:
    """Do showing the signal function"""
    print(f"时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
    print("==讯号灯==")
    for title, signal in signal_list:
        print(f"* {title}: {signal}")

结果

执行汇入资料以及印出讯号灯。

# 汇入资料
worker = daily_transaction()
worker.save_to_db()

# 讯号灯印出
signal = signal()
signal.show_signal()

最後结果如下:

时间:2021-09-30 23:47:41
==讯号灯==
* 最近交易日是近期六天最大的交易金额: False
* 最近的一个交易日比前五日平均金额更大: False
* 外资期货留仓是多单: False
* 自营商期货留仓是多单: True
* 投信商期货留仓是多单: False
* 外资期货留仓数量是否增加: True
* 自营商期货留仓数量是否增加: True
* 投信期货留仓数量是否增加: True
* 外资期货留仓数量变化量: 6908
* 自营商期货留仓数量变化量: 1832
* 投信期货留仓变化量: 534
* 外资期货留仓数变动率: 0.02532202370915596
* 自营商期货留仓数量变化率: 0.05245676325735884
* 投信期货留仓数变动率: 0.1395713538944067
* 台积电是否5MA > 20MA: True

这样,这些讯号灯就可以简单地印出来,是不是很间单呢?


後记

这讯号灯其实仅仅「堪用」而已,因为里面的资料还能更清楚的整理,并且做出趋势。现在只有显示这几天的状况,过去短期的变化趋势没有明显的显示出来,因此这些的讯号灯仍须持续优化。从众多的资讯中找出一些线索让我们可以比较清楚的了解市场,这就是讯号灯遥远的路罗~

希望最终,可以看到100/100个绿灯就all in,0/100个绿灯就all in放空 (=V=~/images/emoticon/emoticon12.gif


<<:  [Day 15]呐呐,还有一半别想跑(後端篇)

>>:  VoK Grid 各种资料型态过滤器 - day15

Swift 新手-Design pattern 软件开发设计模式

什麽是设计模式? 在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反覆...

升级AD树系及网域等级

各位先进好 如果网域中所有DC作业系统皆为Windows Server 2012 R2 standa...

数位转型

在疫情的情况之下,所有的节奏都被打乱了,在全球都在这样的情况之下,大家都在求新求变,不论是办公还是教...

DAY 14 资料库-透过pgAdmin4管理Heroku PostgreSQL

在上篇有透过psycopg2对PostgreSQL进行一连串的操作,在透过psycopg2人工创建资...

B+树索引实战篇-Part3(索引用於排序与分组、回表的代价、进一步创建与使用索引)

前情提要-我们前面为了方便解释,建了个表还有索引 mysql> create table si...