In [3]:
%load_ext rqalpha
In [2]:
%%rqalpha -h
""
In [3]:
%%rqalpha -s 20100101 -e 20170505 -p -bm 000001.XSHG --account stock 100000
def init(context):
context.stocks = ['000300.XSHG', '000905.XSHG', '000012.XSHG']
def handle_bar(context, bar_dict):
[hs, zz, gz] = context.stocks
hs_history20 = history_bars(hs, 20, '1d', 'close')
zz_history20 = history_bars(zz, 20, '1d', 'close')
hsIncrease = hs_history20[-1] - hs_history20[0]
zzIncrease = zz_history20[-1] - zz_history20[0]
positions = context.portfolio.positions
[hsQuality, zzQuality, gzQuality] = [positions[hs].quantity, positions[zz].quantity, positions[gz].quantity]
if hsIncrease < 0 and zzIncrease < 0:
if hsQuality > 0: order_target_percent(hs, 0)
if zzQuality > 0: order_target_percent(zz, 0)
order_target_percent(gz, 1)
elif hsIncrease < zzIncrease:
if hsQuality > 0: order_target_percent(hs, 0)
if gzQuality > 0: order_target_percent(gz, 0)
order_target_percent(zz, 1)
else:
if zzQuality > 0: order_target_percent(zz, 0)
if gzQuality > 0: order_target_percent(gz, 0)
order_target_percent(hs, 1)
#logger.info("positions hs300: " + str(hsQuality) + ", zz500: " + str(zzQuality) + ", gz: " + str(gzQuality))
In [4]:
results.keys()
Out[4]:
In [5]:
report.keys()
Out[5]:
In [6]:
report.trades[:5]
Out[6]:
In [7]:
report.portfolio[:5]
Out[7]:
In [8]:
report.stock_positions[:5]
Out[8]:
In [9]:
config = {
"base": {
"start_date": "2010-01-01",
"end_date": "2017-05-05",
"benchmark": "000001.XSHG",
"accounts": {
"stock": 100000
}
},
"extra": {
"log_level": "info",
},
"mod": {
"sys_analyser": {
"enabled": True,
"plot": True,
},
}
}
from rqalpha.api import *
from rqalpha import run_func
def init(context):
context.stocks = ['000300.XSHG', '000905.XSHG', '000012.XSHG']
def handle_bar(context, bar_dict):
[hs, zz, gz] = context.stocks
hs_history20 = history_bars(hs, 20, '1d', 'close')
zz_history20 = history_bars(zz, 20, '1d', 'close')
hsIncrease = hs_history20[-1] - hs_history20[0]
zzIncrease = zz_history20[-1] - zz_history20[0]
positions = context.portfolio.positions
[hsQuality, zzQuality, gzQuality] = [positions[hs].quantity, positions[zz].quantity, positions[gz].quantity]
if hsIncrease < 0 and zzIncrease < 0:
if hsQuality > 0: order_target_percent(hs, 0)
if zzQuality > 0: order_target_percent(zz, 0)
order_target_percent(gz, 1)
elif hsIncrease < zzIncrease:
if hsQuality > 0: order_target_percent(hs, 0)
if gzQuality > 0: order_target_percent(gz, 0)
order_target_percent(zz, 1)
else:
if zzQuality > 0: order_target_percent(zz, 0)
if gzQuality > 0: order_target_percent(gz, 0)
order_target_percent(hs, 1)
results = run_func(init=init, handle_bar=handle_bar, config=config)
In [10]:
report = results["sys_analyser"]
In [11]:
report["trades"][:5]
Out[11]:
In [ ]: