程序員的金融市場分析框架:Prophet
Prophet是一個程序員的金融市場分析框架。它讓程序員專注于金融策略模型,投資組合管理和分析backtests。
Prophet 兼容Python 2 和 3 。查看文檔詳細了解: documentation
Quickstart
from datetime import datetimefrom prophet import Prophet from prophet.data import YahooCloseData from prophet.analyze import default_analyzers from prophet.orders import Orders
class OrderGenerator(object):
def __init__(self): super(OrderGenerator, self).__init__() self._data = dict() def run(self, prices, timestamp, cash, **kwargs): symbol = "AAPL" orders = Orders() if (prices.loc[timestamp, symbol] * 100) < cash: orders.add_order(symbol, 100) return orders
prophet = Prophet() prophet.set_universe(['AAPL', 'XOM'])
prophet.register_data_generators(YahooCloseData()) prophet.set_order_generator(OrderGenerator()) backtest = prophet.run_backtest(start=datetime(2010, 1, 1))
prophet.register_portfolio_analyzers(default_analyzers) analysis = prophet.analyze_backtest(backtest) print(analysis)
+--------------------------------------+
| sharpe | 1.09754359611 |
| average_return | 0.00105478425027 |
| cumulative_return | 2.168833 |
| volatility | 0.0152560508189 |
+--------------------------------------+
Generate orders for you to execute today
Using Nov, 10 2014 as the date because there might be no data for today's
date (Market might not be open) and we don't want examples to fail.
today = datetime(2014, 11, 10) print(prophet.generate_orders(today))
Orders[Order(symbol='AAPL', shares=100)]</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!