本教程的目標是快速介紹PyAlgoTrade。PyAlgoTrade的目標是幫助您實現股票交易策略。假設您有一個交易策略的想法,而且您但願使用歷史數據進行評估,並查看其行爲方式,那麼PyAlgoTrade應該容許您以最小的努力來作到這一點。python
PyAlgoTrade有6個主要組件:測試
這些是您定義的實現交易邏輯的類。什麼時候購買,什麼時候出售等優化
這些是提供抽象的數據。例如,您將使用CSV提要,從CSV(逗號分隔值)格式化的文件中加載條來將數據提供給策略。飼料不限於酒吧。例如,有一個Twitter Feed能夠將Twitter事件歸入交易決策。spa
經紀人負責執行訂單。code
數據系列是用於管理時間序列數據的抽象。教程
這些是用於在DataSeries之上進行計算的一組過濾器。例如SMA(簡單移動平均),RSI(相對強度指數)等。這些過濾器被建模爲DataSeries裝飾器。進程
這些是一組容許您在不一樣計算機或在同一臺計算機中運行的不一樣進程之間進行回測的方法,或二者的組合。它們使水平縮放變得容易。
說完這一切,咱們須要測試咱們的策略的第一件事是一些數據。讓咱們使用Oracle 2000年的股票價格,咱們將使用如下命令下載:事件
from pyalgotrade.tools import yahoofinance; yahoofinance.download_daily_bars('orcl',2000,'orcl-2000.csv') dw = pd.read_csv("orcl-2000.csv") dw
Date Open High Low Close Volume Adj Close 0 2000-12-29 30.875000 31.312500 28.6875 29.062500 31702200 26.469546 1 2000-12-28 30.562500 31.625000 30.3750 31.062500 25053600 28.291106 2 2000-12-27 30.375000 31.062500 29.3750 30.687500 26437500 27.949563 3 2000-12-26 31.500000 32.187500 30.0000 30.937500 20589500 28.177258 4 2000-12-22 30.375000 31.984301 30.0000 31.875000 35568200 29.031115 5 2000-12-21 27.812500 30.250000 27.3125 29.500000 46719700 26.868012 6 2000-12-20 28.062500 29.812500 27.5000 28.500000 54440500 25.957232 7 2000-12-19 31.812500 33.125000 30.1250 30.625000 58653700 27.892640 8 2000-12-18 30.000000 32.437500 29.9375 32.000000 61640100 29.144962 9 2000-12-15 29.437500 30.078100 28.1875 28.562500 120004000 26.014156 10 2000-12-14 29.250000 29.937500 27.2500 27.500000 45894400 25.046452 11 2000-12-13 31.937500 32.000000 28.2500 28.375000 37933600 25.843385 12 2000-12-12 31.875000 32.500000 30.4062 30.750000 26481200 28.006487 13 2000-12-11 30.500000 32.250000 30.0000 31.937500 50279700 29.088039 14 2000-12-08 30.062500 30.625000 29.2500 30.062500 40052600 27.380326 15 2000-12-07 29.625000 29.937500 28.1250 28.312500 41088300 25.786461 16 2000-12-06 31.187500 31.625000 29.3125 30.187500 42125600 27.494173 17 2000-12-05 29.437500 31.500000 28.8750 31.500000 59754700 28.689572 18 2000-12-04 26.250000 28.875000 26.1875 28.187500 40710400 25.672613 19 2000-12-01 26.375000 27.875000 25.5000 26.437500 48663500 24.078748 20 2000-11-30 21.750000 27.625000 21.5000 26.500000 84386200 24.135672 21 2000-11-29 23.187500 23.625000 21.8125 22.875000 75409600 20.834094 22 2000-11-28 23.500000 23.812500 22.2500 22.656200 43075300 20.634816 23 2000-11-27 25.437500 25.812500 22.8750 23.125000 45665200 21.061789 24 2000-11-24 23.312500 24.250000 23.1250 24.125000 22443900 21.972569 25 2000-11-22 23.625000 24.062500 22.0625 22.312500 53315300 20.321780 26 2000-11-21 24.812500 25.625000 23.5000 23.875000 58647400 21.744874 27 2000-11-20 24.312500 25.875000 24.0000 24.750000 89778400 22.541807 28 2000-11-17 26.937500 29.250000 25.2500 28.812500 59636000 26.241851 29 2000-11-16 28.750000 29.812500 27.2500 27.375000 37986600 24.932604 ... ... ... ... ... ... ... ... 222 2000-02-14 60.875000 62.250000 58.6250 62.187500 37599800 28.319568 223 2000-02-11 62.500000 64.750000 58.7500 59.687500 55774000 27.181093 224 2000-02-10 60.000000 62.625000 58.0000 62.312500 45288600 28.376492 225 2000-02-09 60.062500 61.312500 58.8125 59.937500 52471600 27.294940 226 2000-02-08 60.750000 61.437500 59.0000 59.562500 55718000 27.124169 227 2000-02-07 59.312500 60.000000 58.8750 59.937500 44691200 27.294940 228 2000-02-04 57.625000 58.250000 56.8125 57.812500 40916000 26.327236 229 2000-02-03 55.375000 57.000000 54.2500 56.687500 55533200 25.814923 230 2000-02-02 54.937500 56.000000 54.0000 54.312500 63933000 24.733371 231 2000-02-01 51.250000 54.312500 50.0000 54.000000 57105600 24.591062 232 2000-01-31 47.937500 50.125000 47.0625 49.953098 68148000 22.748143 233 2000-01-28 51.500000 51.937500 46.6250 47.375000 86394000 21.574103 234 2000-01-27 55.812500 56.687500 50.0000 51.812500 61054000 23.594896 235 2000-01-26 56.750000 58.937500 55.0000 55.062500 47569200 25.074914 236 2000-01-25 55.062500 57.500000 54.8750 56.437500 53059200 25.701075 237 2000-01-24 60.250000 60.375000 54.0000 54.187500 50022400 24.676448 238 2000-01-21 61.500000 61.500000 59.0000 59.687500 50891000 27.181093 239 2000-01-20 59.000000 60.250000 58.1250 59.250000 54526800 26.981860 240 2000-01-19 56.125000 58.250000 54.0000 57.125000 49198400 26.014156 241 2000-01-18 107.875000 114.500000 105.6250 111.250000 66780000 25.331071 242 2000-01-14 109.000000 111.375000 104.7500 106.812500 57078000 24.320674 243 2000-01-13 108.500000 109.875000 103.5000 105.062500 55779200 23.922208 244 2000-01-12 112.250000 112.250000 103.6875 105.625000 83443600 24.050286 245 2000-01-11 112.625000 114.750000 109.5000 112.375000 86585200 25.587228 246 2000-01-10 108.000000 116.000000 105.5000 115.750000 91518000 26.355698 247 2000-01-07 95.000000 103.500000 93.5625 103.375000 91755600 23.537972 248 2000-01-06 100.156197 105.000000 94.6875 96.000000 109880000 21.858722 249 2000-01-05 101.625000 106.375000 96.0000 102.000000 166054000 23.224892 250 2000-01-04 115.500000 118.625000 105.0000 107.687500 116824800 24.519907 251 2000-01-03 124.625000 125.187500 111.6250 118.125000 98114800 26.896
做者:readilen
連接:http://www.jianshu.com/p/18ee2e9a99c0
來源:簡書
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。開發