[65 量化交易] 道琼斯指数对上证指数的影响

1、道琼斯指数与沪深股市成反比关系。道琼斯指数下跌而沪深股市上涨的情况明显。道琼斯指数下跌,沪深股市下跌情况较少。道琼斯指数对沪深股市影响不大。

2、道琼斯指数影响国内一些股份结构复杂的上市公司。尤其在美国和国内市场均上市了的上市公司,美股行情影响上市公司美股时,会波及国内股价。

3、道琼斯指数不是单独形成的。它是由具体的股票价格波动形成。面对现在全球经济一体化的局面,道琼斯指数的波动,或多或少都会影响A股市场的股票。

import tushare as ts
import pymongo
import json
import time
import random
import sys

# 初始化数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')


# 读取上证指数
def Read000001(DBname, collection, startDate, endDate):
    mongo_db = mongo_client[DBname]
    mongo_collection = mongo_db[collection]
    tradeDateList = []
    tradeCloseList = []
    tradeChange = []
    # 查找时间大于2020年的数据
    FindResult = mongo_collection.find({'trade_date': {'$lte': endDate, '$gte': startDate}})
    print(FindResult)
    for m in FindResult:
        # print(m['trade_date'])
        tradeDateList.append(m['trade_date'])
        tradeCloseList.append(m['close'])
        tradeChange.append(m['change'])
    return tradeDateList, tradeCloseList, tradeChange


# 初始化pro接口
# {'_id': ObjectId('6358d1ffd16d3474f021b348'), 'ts_code': 'DJI', 'trade_date': '20201231', 'open': 30417.64, 'close': 30606.48,
# 'high': 30637.47, 'low': 30344.5, 'pre_close': 30409.56, 'change': 196.92, 'pct_chg': 0.65, 'swing': 0.96, 'vol': None}
def ReadDJI(DBname, collection, startDate, endDate):
    mongo_db = mongo_client[DBname]
    mongo_collection = mongo_db[collection]
    tradeDateList = []
    tradeCloseList = []
    tradeChange = []
    # 查找时间大于2020年的数据
    FindResult = mongo_collection.find({'trade_date': {'$lte': endDate, '$gte': startDate}})
    print(FindResult)
    for m in FindResult:
        # print(m['trade_date'])
        tradeDateList.append(m['trade_date'])
        tradeCloseList.append(m['close'])
        tradeChange.append(m['change'])
    return tradeDateList, tradeCloseList, tradeChange


def main():
    # 读取数据 DJI道琼斯指数(类似上证指数)  和SPX标普500
    tradeDateList, tradeCloseList, tradeChange = ReadDJI('TushreDB', "DJI", '20200101', '20210101')
    print(tradeDateList)
    print(tradeCloseList)
    print(tradeChange)
    print('+++++++++++倒序++++++++++++++')
    tradeDateList.reverse()
    tradeCloseList.reverse()
    tradeChange.reverse()
    print(tradeDateList)
    print(tradeCloseList)
    print(tradeChange)

    # 获取上证指数
    tradeDateList000001, tradeCloseList000001, tradeChange000001 = Read000001('TushreDB', "000001.SH", '20200101',
                                                                              '20210101')
    tradeDateList000001.reverse()
    tradeCloseList000001.reverse()
    tradeChange000001.reverse()
    print(tradeDateList000001)
    print(tradeCloseList000001)
    print(tradeChange000001)

    # 查找两个时间列表的相同日期
    print(len(tradeDateList))
    print(len(tradeCloseList))
    print(len(tradeChange))
    print(len(tradeDateList000001))
    print(len(tradeCloseList000001))
    print(len(tradeChange000001))
    # 相同 日期  下标index
    SameDate = []
    ChangeDJI = []
    Change000001 = []
    for dji in range(len(tradeDateList)):
        for sz in range(len(tradeDateList000001)):
            if tradeDateList[dji] == tradeDateList000001[sz]:
                # print(tradeDateList[dji])
                SameDate.append(tradeDateList[dji])
                ChangeDJI.append(tradeChange[dji])
                Change000001.append(tradeChange000001[sz])

    print('筛选结果')
    print(len(SameDate))
    print(SameDate)
    print(ChangeDJI)
    print(Change000001)

    print("道琼斯指数影响后一天的A股。如10月26日道琼斯指数影响10月27日A股指数。")
    # 插入一个元素让A股数据后移动一天
    Change000001.insert(0, 1)
    print(SameDate)
    print(ChangeDJI)
    print(Change000001)

    # 进行统计
    num = 0
    for day in range(len(SameDate)):
        if ChangeDJI[day] * Change000001[day] > 0:
            num = num + 1

    print('结果: {:.2%}'.format(num / len(SameDate)))


if __name__ == '__main__':
    main()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值