用python写了一个简单的多空交易的测试代码
其中的空头部分用分级基金A,多头部分用跟踪同样指数的etf基金
测试的不是很理想。
由于刚开始接触python,所以在编写代码时已实现功能为主,还有很多可以改进的地方。十分欢迎有相同爱好的朋友一起交流。代码如下
from __future__ import division
import tushare as ts
import pandas as pd
import numpy as np
import csv
init_money=100000
def file2data(filename): #将文件中的历史数据以一个列表的形式返回
str_filename="../data/"+filename
f=open(str_filename) #打开文件
lines=f.readlines() #读取文件中的所有行
lst=[] #一个空的列表,用于存储文件数据
i=0
for line in lines:
if i==0: #跳过第一行
i+=1
continue
else:
lst.append(line)
f.close()
return lst #返回数据
def equalData(filename): #将两个投资标的的历史数据进行等长化处理,filename用于一个列表数据更好
lst=[] #空列表用于存储各标的的历史数据
lens=[] #空列表用于存储各标的历史数据的长度
for i in range(len(filename)):
lst.append(file2data(filename[i]))
lens.append(len(lst[i]))
#此时lst为一个二维列表,两个元素,每一个元素为对应投资标的的历史数据
if lens[0]==lens[1]: #如果长度相等,则返回两个列表,分别对应各自的历史数据
return lst[0],lst[1]
elif lens[0]<lens[1]: #表示投资标的0晚于投资标的1上市,所以以标的0为准进行等长化处理
data=lst[1][:lens[0]]
return lst[0],dat