# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
from datetime import datetime
def init(context):
context.hh = 0
# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
year = context.now.year
month = context.now.month
day = context.now.day
#print((year,month,day))
if year==2018 and month==12 and day==3:
buy_open("SQRB00", "Market",0 ,1)
portfolio = get_portfolio ("RB00", 2)
bar_close = history_bars('SQRB00',1,'1d','CLOSE')
if portfolio.buy_quantity>0 and bar_close>context.hh:
context.hh = bar_close
#print((context.hh,bar_close))
if portfolio.buy_quantity>0 and (context.hh - bar_close)/context.hh >0.1:
sell_close("SQRB00", "Market",0 ,1)
context.hh = 0
从螺纹钢18年12月1号测试到现在,为了方便对照图形我特意做了一个信号在12月3号进行下单,局部一个低点然后行情上升,然后在8月份左右达到条件中设定的回落10%
方法就是用context.hh来记录我们有持仓以来的最高价,然后做一个判断就行了。
至于空头大家可自行完成,如果是多品种的话建议构造一个记录最高价 的字典,根据不同的品种作为key记录。
如果考虑多个品种get_portfolio ("股票", 2) 要用for 循环,这是返回的portfolio 怎么区别各个品种?