金融量化-金叉和死叉

金融量化分析-金叉和死叉


```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts

#从tushare库中获取闻泰科技股票K信息,从20190101至今,并保存为csv
df = ts.get_k_data('600745',start='2019-01-01')#
df.to_csv('600745.csv')
#利用pandas读取csv,将date列作为索引导入,并选取所需要的列
df = pd.read_csv("600745.csv", index_col='date',parse_dates=['date'])[['open','close','low','high']]
#创建两列为控制
df['ma5'] = np.nan
df['ma30'] = np.nan
# 计算5日均线和30日均线值
#方法一
# for i in range(4,len(df)):
#    df.loc[df.index[i],'ma5'] = df['close'][i-4:i+1].mean()
    
# for i in range(29,len(df)):
#    df.loc[df.index[i],'ma30'] = df['close'][i-29:i+1].mean()
#方法二,以开盘价为计算标准
df['ma5'] = df['open'].rolling(5).mean()
df['ma30'] = df['open'].rolling(30).mean()
#截取相应的值,进行绘图
df = df[:]
df[['close','ma5','ma30']].plot()
#plt.show()
#获取金叉日期和死叉日期,今天的值与昨天的值进行对比
#故先删除没有值的行
df = df.dropna()
#本处利用两种方法,第一种循环比较,将比较好的值传入列表当中
golden_cross = []
death_cross = []
for i in range(1,len(df)):
    if df['ma5'][i] >= df['ma30'][i] and df['ma5'][i-1] < df['ma30'][i-1]:
        golden_cross.append(df.index[i])
    if df['ma5'][i] <= df['ma30'][i] and df['ma5'][i-1] > df['ma30'][i-1]:
        death_cross.append(df.index[i])
#方法二 布尔值方法,shift移动列表后进行比较,得到对应的日期
#str1 = df['ma5'] < df['ma30']
#str2 = df['ma5'] >= df['ma30']

#death_cross = df[str1 & str2.shift(1)].index
#golden_cross = df[~(str1 | str2.shift(1))].index
#golden_cross

#策略目标,在出现金叉的时候按当日最高价格买入,出现死叉的日期按当日最低价卖出。
first_money = 10000
money = first_money
hold = 0 #持有多少股
# 将金叉日期与死叉日期进行合并,从新排序后,对其进行循环
sr1 = pd.Series(1, index=golden_cross)
sr2 = pd.Series(0, index=death_cross)
sr = sr1.append(sr2).sort_index()

for i in range(0, len(sr)):
    p = df['high'][sr.index[i]]
    if sr.iloc[i] == 1:
        #金叉
        buy = (money // (100*p))
        hold += buy*100
        money -= buy*100*p
    else:
        money += hold * p
        hold = 0

p = df['low'][-1]
now_money = hold * p + money

print(now_money - first_money)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
量化金融是指利用数学和统计方法来分析和预测金融市场的方法。Python是一种流行的编程语言,因其简单易用和丰富的数据分析工具而广泛应用于量化金融领域。 TF Quant Finance是一个高性能的TensorFlow库,专门用于量化金融。它提供了一系列功能强大的工具和模型,可以帮助开发者进行金融数据的处理、计算和建模。该库支持硬件加速,并且利用TensorFlow的自动区分功能,使得模型的训练和优化更加高效和精确。 安装TF Quant Finance非常简单,只需按照官方文档提供的安装指南进行操作即可。安装完成后,你可以使用TF Quant Finance提供的各种函数和类来进行量化金融分析和建模。官方文档也提供了一些示例代码,可以帮助你入门和理解如何使用这个库。 如果你对TF Quant Finance感兴趣并希望贡献代码,你可以参考开发路线图和贡献指南,了解如何参与到这个开源项目中来。同时,也可以加入TF Quant Finance的社区,与其他开发者进行交流和分享经验。 需要注意的是,TF Quant Finance库是一个开源项目,使用时请遵守相应的许可证和免责声明。这样才能确保你的使用是合法的并保护你的权益。 总之,量化金融-python是指利用Python编程语言来进行量化金融分析和建模。TF Quant Finance是一个基于TensorFlow的高性能库,为开发者提供了丰富的工具和模型来支持量化金融。你可以通过安装和使用TF Quant Finance来加快你的量化金融工作流程,并参与到这个开源项目中来贡献代码。<span class="em">1</span> #### 引用[.reference_title] - *1* [高性能TensorFlow库,用于量化金融。-Python开发](https://download.csdn.net/download/weixin_42179184/19055785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值