mirror of https://github.com/midoks/mdserver-web
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
61 lines
1.4 KiB
# coding:utf-8
|
|
|
|
import pandas as pd
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
from catalyst import run_algorithm
|
|
from catalyst.api import order, record, symbol
|
|
|
|
'''
|
|
cd /Users/midoks/Desktop/mwdev/server/mdserver-web && source bin/activate
|
|
|
|
|
|
cd /www/server/mdserver-web && source bin/activate && source activate catalys
|
|
|
|
cd /Users/midoks/Desktop/mwdev/server/mdserver-web && python3 plugins/cryptocurrency_trade/ccxt/test/p_test.py
|
|
catalyst ingest-exchange -x binance -i btc_usdt -f minute
|
|
|
|
cd /www/server/mdserver-web && python3 plugins/cryptocurrency_trade/ccxt/test/p_test.py
|
|
'''
|
|
|
|
|
|
def initialize(context):
|
|
# 初始化
|
|
context.asset = symbol('btc_usdt')
|
|
|
|
|
|
def handle_data(context, data):
|
|
# 循环策略
|
|
order(context.asset, 1)
|
|
record(btc=data.current(context.asset, 'price'))
|
|
|
|
|
|
def analyze(context, perf):
|
|
|
|
print(perf.portfolio_value)
|
|
|
|
ax1 = plt.subplot(211)
|
|
perf.portfolio_value.plot(ax=ax1)
|
|
|
|
ax1.set_ylabel('portfolio value')
|
|
|
|
ax2 = plt.subplot(212, sharex=ax1)
|
|
perf.btc.plot(ax=ax2)
|
|
ax2.set_ylabel('bitcoin value')
|
|
plt.show()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_algorithm(
|
|
capital_base=10000,
|
|
data_frequency='daily',
|
|
initialize=initialize,
|
|
handle_data=handle_data,
|
|
analyze=analyze,
|
|
exchange_name='binance',
|
|
quote_currenty='usdt',
|
|
start=pd.to_datetime("2018-01-01", utc=True),
|
|
end=pd.to_datetime("2018-10-01", utc=True),
|
|
)
|
|
|