您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

如何修改这个模型 [金字塔]

  • 咨询内容: # 本Python代码主要用于策略交易# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。from PythonApi import *import time# 参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)#def parameter():# input_par("myvalues1",5,1,20,1)# input_par("myvalues2",10,1,20,1)

    # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)def init(context):    # 在context中保存全局变量    context.s = get_blocks ('自选股',1)    context.n = 7    # print("策略启动") #调试打印输出    
    # before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)def before_trading(context):    pass

    # 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)def handle_bar(context):    # 开始编写你的主要的算法逻辑。        #使用buy_open、sell_close等方法下单    #下单示例:    #buy_open(context.s1, "Market", volume = 100) # 市价开多    #buy_open(context.s1, "Limit", 25.45, 100) # 限价开多    #print('开始')    #print(time.asctime( time.localtime(time.time()) ))    ZF = {}    for i in context.s:        price_now = get_dynainf(i,7)        price_last = get_dynainf(i,62)                ZF[i] = (price_now - price_last)/price_last    df = sorted(ZF.items(),key = lambda x:x[1],reverse=True)    init_num = 0    for j in df:        if init_num >= context.n:            break        code = j[0]        cond = get_indicator(code,'AAAA','ZB','','1m',1500)        if cond[-1]:            portfolio=get_portfolio (code, 0)            if portfolio.buy_quantity == 0:                buy_open(code, "Market", volume = 1)             init_num = init_num+1        else:            break        df_short = df[::-1]    init_num = 0    for j in df_short:        if init_num >= context.n:            break        code = j[0]        cond = get_indicator(code,'AAAA','ZB','','1m',1500)        if cond[-1]:            portfolio=get_portfolio (code, 0)            if portfolio.sell_quantity == 0:                sell_open(code, "Market", volume = 1)             init_num = init_num+1        else:            break    #get_indicator('sh600000','my_test','ma5','30','1d',10)        #print('结束')    #print(time.asctime( time.localtime(time.time()) ))# after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现)def after_trading(context):    pass        # order_status当委托下单,成交,撤单等与下单有关的动作时,该方法就会被调用。---(选择实现)#def order_status(context,order):# pass
    # order_action当查询交易接口信息时返回的通知---(选择实现)#def order_action(context,type, account, datas)# pass
    # exit函数会在测评结束或者停止策略运行时会被调用。---(选择实现)#def exit(context):# pass

     

     来源: CXH99.COM

  • 金字塔客服: 能不能帮我把涨幅排序改成按照指标ZB大小排序,进场是排序多头前四,而且ZB=1,做空是最小的后四位,且ZB=-10000 2018/11/16 11:28:32不用检查账户和持仓,0000 2018/11/16 11:32:01只要符合条件进场是排序多头前四,而且ZB=1,做空是最小的后四位,且ZB=-1

     

  • 用户回复: 0000(372566119) 2018/11/16 14:18:27ZB就是这里的值cond = get_indicator(code,'AAAA','ZB','','1m',1500)0000(372566119) 2018/11/16 14:19:39ZB就是我自编的一个指标AAAA在一分钟周期下的一个变动的数值

     

  • 网友回复: ?????????????????????????

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容