赞
踩
chatGPT:趋势跟踪策略的量化交易程序可能会因语言和框架而异,下面是一个简单的Python代码示例,用于演示如何通过量化编程来实现趋势跟踪策略。
这段代码是一个简单的策略实现,它读取股票数据并计算移动平均线,然后遍历每天的数据并根据短期移动平均线上穿长期移动平均线进行买入,短期移动平均线下穿长期移动平均线进行卖出。
ma20_ma60.py
- # coding: utf-8
- import os, sys
- import pandas as pd
- import numpy as np
- import math
-
- # 写一个趋势跟踪策略 量化交易程序
- if len(sys.argv) ==2:
- code = sys.argv[1]
- else:
- print('usage: python ma20_ma60.py stockcode ')
- sys.exit(1)
-
- if len(code) !=6:
- print('stock code length: 6')
- sys.exit(2)
-
- # 读取股票数据
- df = pd.read_csv(f'{code}.csv')
-
- # 计算移动平均线
- df['ma20'] = df['close'].rolling(window=20).mean()
- df['ma60'] = df['close'].rolling(window=60).mean()
- df = df[ df['date'] > '2020-01-01']
-
- # 初始化持仓和资金
- cost = 100000
- cash = cost
- stock = 0
- # 假设每一次交易费为万分之五
- fee = 0.0005
- # 遍历每天的数据
- for index, row in df.iterrows():
- # 如果短期移动平均线上穿长期移动平均线,则买入
- if row['ma20'] > row['ma60'] and stock == 0:
- date = row['date']
- price = row['close']
- stock = math.floor(cash*(1-fee)/price/100)*100
- cash = cash - stock*price*(1+fee)
- print(f'{date}: cash= {cash:.2f} , stock= {stock} x {price:.2f}')
- # 如果短期移动平均线下穿长期移动平均线,则卖出
- elif row['ma20'] < row['ma60'] and stock > 0:
- date = row['date']
- price = row['close']
- cash = cash + stock*price*(1-fee)
- stock = 0
- print(f'{date}: cash= {cash:.2f} , stock= {stock} x {price:.2f}')
-
- # 计算最终收益
- price = df.iloc[-1]['close']
- profit = cash + stock*price - cost
- print(f'profit= {profit:.2f} , stock= {stock} x {price:.2f}')

运行 python ma20_ma60.py 000776
获取股票价格信息 stock1.py
- # coding: utf-8
- import os, sys
- import time
- #import matplotlib.pyplot as plt
- import pandas as pd
- import tushare as ts
-
- if len(sys.argv) ==2:
- code = sys.argv[1]
- else:
- print('usage: python stock1.py stockcode ')
- sys.exit(1)
-
- if len(code) !=6:
- print('stock code length: 6')
- sys.exit(2)
-
- # help(ts.get_k_data) 了解参数
- df = ts.get_k_data(code, start='2018-01-01')
- if len(df) <10:
- print(" len(df) <10 ")
- sys.exit(2)
-
- df.to_csv(code+'.csv')
- # 数据基本统计量
- df['close'].describe().to_csv(code+'.tsv', sep='\t')

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。