以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 求把python版本的银行股轮动策略改写成普通金字塔策略 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=174046) |
-- 作者:qf7171 -- 发布时间:2020/1/18 16:06:25 -- 求把python版本的银行股轮动策略改写成普通金字塔策略 #板块偏离度定在0.5% g.inter = 0.005 # 每天交易前调用 def before_trading_start(context): #每天开盘前,抓取“中、农、工、建”昨天收盘价格 g.df_last = history(1, unit=\'1d\', field=\'close\', security_list=bank_stocks, df=False, skip_paused=True, fq=\'pre\') # 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次 def handle_data(context, data): raito = [] for code in bank_stocks: raito.append( data[code].close / g.df_last[code][-1] )
#rotio就是每分钟收盘价与昨日收盘价的比值,也就是实时涨幅 #某只银行股现在价格与昨天收盘价比较 if not context.portfolio.positions.keys():
#当没有持仓时 if max(raito) - min(raito) > g.inter:
#最大涨幅大于最小涨幅0.5%以上的时候,买入最小涨幅股票 min_index = raito.index(min(raito)) order_value(bank_stocks[min_index], context.portfolio.total_value) log.info("空仓买入 %s",bank_stocks[min_index]) else:
#当有持仓时 code = context.portfolio.positions.keys()[0] index = bank_stocks.index(code)
#index就是持仓股票的股票代码 if raito[index] - min(raito) > g.inter:
#持仓股票涨幅大于最小涨幅0.5%以上时,卖出持仓股票,买入最小涨幅股票 order_target(code, 0) log.info("卖出 %s",code) min_index = raito.index(min(raito)) order_value(bank_stocks[min_index], context.portfolio.total_value) log.info("调仓买入 %s",bank_stocks[min_index])
|
-- 作者:qf7171 -- 发布时间:2020/1/18 16:09:02 -- 我想在普通金字塔(也就是PEL语言的金字塔里)回测以上Python策略,请问如何改写呢?求各位高手帮忙 |
-- 作者:yukizzc -- 发布时间:2020/1/20 11:15:29 -- 代码无法实现,要配合股票池和后台程序来做 |