___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

zipline股票、bitcoin回測軟體介紹(python)--(中)

BY: @leoyschen | CREATED: Feb. 27, 2018, 8:25 a.m. | VOTES: 2 | PAYOUT: $0.00 | [ VOTE ]

https://steemitimages.com/DQmVAN8odahxmuMFeKnphJXuhH1jkGgZqxZ76irNs87xThS/zipline-logo-03_.png

 Zipline提供一種code的架構,讓使用者可以新增函式來完善自己的演算法。下面是zipline的基本結構:

https://steemitimages.com/DQmSrYoKVg14QMvDdNUsWqtEQ2SAxwamU1uCAJXmP7r12S6/zipline.png  

 一開始我們必須先引進一些必須的函式。每一個zipline演算法都有兩個必要的函式,且你必須要定義這兩個函式:

在開始跑寫演算法之前,zipline會先呼叫initialize()這個函式且傳遞一個全域context變數。Context是一個全域變數讓你可以儲存變數,且當你需要的時候可以呼叫它。

在演算法起始化之後,zipline會呼叫handle_data()這個函式(每次事件(event)呼叫一次)。每次呼叫函式後,它會傳遞一樣的context變數和一個事件的框架,這個框架會包含現在要交易的日期的開盤價、最高價、最低價、收盤價(OHLC)、成交量(每支股票)。

大部分的函式通常可以在Zipline.api這模組可以找到。這裡我們使用order(arg1, arg2),這裡有兩個參數:一個是股票名稱,另一個是要下單的數量(假如這個值是負的,代表要放空股票)。在下面的範例,我們想要在每次事件購買10股的Apple(蘋果股票)。

第二個函式record()讓你可以儲存一些變數在每個事件後。你可以給每個變數一個名子。在跑完演算法後你可以呼叫你儲存的變數。

要跑演算法,你必須呼叫TradingAlgorithm()。它有兩個參數,initialize()和handle_data()。然後呼叫run方法(資料是pandas dataframe,且儲存每個股票資料)run()函式會先呼叫initialize()函式,且跑過歷史股票每一天透過handle_data()。透過每次呼叫handle_data(),我們指示zipline買進10股appl股票。
 

TAGS: [ #python ] [ #trading ] [ #cn ] [ #bitcoin ]

Replies

NO REPLIES FOUND.

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>