[025量化交易] python跌了就买涨了就卖策略

# http://localhost:8888/lab
# jupyter lab
import tushare as ts
import numpy as np
# 导入画图工具matplotlib
import matplotlib.pyplot as plt
import pandas as pd

# 初始化pro接口
pro = ts.pro_api('')

print("获取股票数据.")
zgpa = pro.daily(ts_code='000006.SZ', start_date='20190101', end_date='20190301')

# print(zgpa.head)

# 下面我们来创建交易信号
# 为了不影响原始数据,这里创建一个新的数据表
# 只保留原始数据中的日期index
zgpa_signal = pd.DataFrame(index=zgpa.index)
# 为了更能体现股票的真实价值
# 使用Adj Close调整价格作为股票价格
zgpa_signal['price'] = zgpa['pre_close']
# 增加一个字段,来存储股价的变化  diff()现价与昨天价格差值
zgpa_signal['diff'] = zgpa_signal['price'].diff()
# 增加diff字段后,第一行会出现空值,我们使用0来进行填补  fillna补充缺失值
zgpa_signal = zgpa_signal.fillna(0.0)

# 如果股价上涨或不变,则标记为0 如果股价下跌,则标记为1
zgpa_signal['signal'] = np.where(zgpa_signal['diff'] >= 0, 0, 1)
# 接下来,根据交易信号的变化进行下单
# 一般情况下,在A股市场,买入或卖出至少为100股,即1手  买卖信号转换连续的买入或连续卖出信号只变化一次 涨跌
zgpa_signal['order'] = zgpa_signal['signal'].diff() * 100
# zgpa_signal['lcbh'] = zgpa_signal['signal'].diff()
# 检查一下下单的情况
zgpa_signal.head()

# 考虑到股价较高,我们初始给小瓦2万块钱让她去交易
initial_cash = 20000.00
# 增加一个字段,代表小瓦交易的股票的市值
zgpa_signal['stock'] = zgpa_signal['order'] * zgpa_signal['price']
zgpa_signal['order_diff'] = zgpa_signal['order'].diff()
# 两次买卖的订单变化之差就是某一时刻小瓦仓位的变化情况
# 持仓股票的数量变化乘以现价,就是代表小瓦交易产生的现金流
# 用初始资金减去现金流变化的累加,就是小瓦剩余的现金
print("+++++++cumsum 当前列之前的和加到当前列上+++")
zgpa_signal['cash'] = initial_cash - \
                      (zgpa_signal['order'].diff() * zgpa_signal['price']).cumsum()
zgpa_signal['cha'] = zgpa_signal['order'].diff() * zgpa_signal['price']
# 而最股票的市值加上剩余的现金,就是小瓦的总资产
zgpa_signal['total'] = zgpa_signal['stock'] + initial_cash - (zgpa_signal['order'].diff() * zgpa_signal['price']).cumsum()

print("打印价格 差值 信号 买入............")
print(zgpa_signal)
print("*****************")

# 为了让小瓦直观看到自己的总资产变化
# 我们用图形来进行展示
# 设置图形的尺寸是10*6
plt.figure(figsize=(10, 6))
# 分别绘制总资产和持仓股票市值的变化
plt.plot(zgpa_signal['total'])
plt.plot(zgpa_signal['order'].cumsum() * zgpa_signal['price'], '--',
         label='stock value')
# 增加网格,调整一下图注的位置,就可以显示图像了
plt.grid()
plt.legend(loc='center right')
plt.show()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
期货量化交易策略是利用计算机程序和统计模型来进行交易决策的一种交易方式。Python是一种常用的编程语言,也被广泛应用于量化交易领域。下面是一些常见的期货量化交易策略和使用Python实现的方法: 1. 均值回复策略:该策略基于价格的均值回复特性,当价格偏离均值时进行交易。可以使用Python中的pandas和numpy库进行数据处理和计算,使用matplotlib库进行可视化。 2. 动量策略:该策略基于价格的趋势特性,当价格呈现明显的上升或下降趋势时进行交易。可以使用Python中的talib库进行技术指标计算,使用matplotlib库进行可视化。 3. 统计套利策略:该策略基于不同期货品种之间的价格关系,通过建立统计模型来进行套利交易。可以使用Python中的statsmodels库进行统计建模和回归分析。 4. 事件驱动策略:该策略基于特定事件的发生来进行交易,例如公司公告、经济数据发布等。可以使用Python中的新闻爬虫库和自然语言处理库来获取和分析相关信息。 5. 机器学习策略:该策略基于机器学习算法来进行交易决策,例如使用支持向量机、随机森林等算法进行价格预测和交易信号生成。可以使用Python中的scikit-learn库进行机器学习建模。 以上只是一些常见的期货量化交易策略和使用Python实现的方法,实际应用中还可以根据具体需求和市场情况进行策略的选择和开发

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值