最近太忙了,进度很慢。要抓紧。
今天解决了一个小问题。因为外汇是分钟级别居多,那么,需要做到分钟级别的交易测试。
经过研究发现yahoofeed,好像不能设置FrequencyMinutes的设置。于是用csvfeed.GenericBarFeed来做。
代码很粗糙,暂时先不管了。跑完再说。
from pyalgotrade.barfeed import csvfeed
feed = csvfeed.GenericBarFeed("Frequency.MINUTE", None, None)
这样,就可以用分钟线进行交易了。
我用的是5分钟线。
一般从MT4下载数据以后,通过以下脚本format一下。这样,pyalgotrade就可以直接使用。
#Read CSV and format the code.
import pandas as pd
n_list=["Date","Time","Open","High","Low","Close","Volume"]
fss=".\\tmp\XAUUSD5.csv" #原始文件
data=pd.read_csv(fss, names=n_list)
data["Date Time"]=data["Date"]+" "+ data["Time"]
data["Date Time"]=pd.to_datetime(data["Date Time"],format='%Y-%m-%d %H:%M:%S')
new_data=data[["Date Time","Open","High","Low","Close","Volume"]]
new_data["Adj Close"]=data["Close"]
tss=".\dat\XAUUSD.csv" #输出文件
new_data.tail(50).to_csv(tss);print(tss);
参考了如下blog。谢谢大佬。