以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  【zzc_python】移动止损范例  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=172571)

--  作者:yukizzc
--  发布时间:2019/10/23 10:01:23
--  【zzc_python】移动止损范例
# 本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
    


--  作者:yukizzc
--  发布时间:2019/10/23 10:06:03
--  
从螺纹钢18年12月1号测试到现在,为了方便对照图形我特意做了一个信号在12月3号进行下单,局部一个低点然后行情上升,然后在8月份左右达到条件中设定的回落10%

方法就是用context.hh来记录我们有持仓以来的最高价,然后做一个判断就行了。
至于空头大家可自行完成,如果是多品种的话建议构造一个记录最高价 的字典,根据不同的品种作为key记录。

--  作者:jinkai76
--  发布时间:2020/12/10 9:26:24
--  问个细节
如果考虑多个品种get_portfolio ("股票", 2) 要用for 循环,这是返回的portfolio 怎么区别各个品种?