一、多周期研判进行决策交易,也称跨周期交易。是通过某个品种,采用两个及以上的K线周期进行研判的交易模式。例如,我们将股指期货 IF2003合约,将分成4个周期来进行交易,分别是 2小时、1小时、15分钟、1分钟。

多周期交易最常用的分析步骤:
1.大周期研判趋势,为定势!例如:2小时的多头趋势
2.小周期寻找适合自己交易系统的“关键点”进行交易。例如:15分钟背离,回调买入等。
示意图:

当然这仅仅是一个简单的示意图,其中还有很多的点没有展现出来。
多周期交易最大的优势:
1.顺大势,避免站错多空阵营。这一点很重要,首先做为趋势交易者来说,判断当前趋势是多头趋势还是空头趋势非常重要。但这里要提醒一点,至少要有两个周期,分别是交易周期和研判周期,如果没有确定交易周期,就无法确定你到底要做哪个周期的趋势!
2.显微镜,如果将大周期比喻成放大镜,那么小周期便是显微镜。当确定了大势到底是多头阵营还是空头阵营后,应该切换至小周期进行仔细观察其构造,例如:k线形态、浪型、指标背离等细节,跟随大趋势,伺机而动。
以上,就是对多周期分析概念、方法、优势进行简单的介绍。接下来,将分享跨周期的算法及如何利用python语言进行分析和跨周期策略的编写。
二、跨周期的算法。跨周期的算法并不难,只要理解了k线的合成规则就能轻松掌握。
一般来讲,我们都会将多个周期的指标值进行叠加在自己的主交易周期上,这样做既可以及时看清当前是多头阵营还是空头阵营,还可以捕捉到小周期中的k线形态、浪型、指标背离等细节变化。
因此,要实现这种效果,就必须遵循以下公式:
1.首先,我们应该要计算出小周期中需要多少根k线,才能算出大周期指标的一点的值。
大周期均线参数 * 大周期 = 总共k线数
2.得到了总共的k线数,就可以计算出小周期内的切序长度。
总分钟数 / 小周期 = 小周期内切序长度
3.例如:1分钟k线上,获取5分钟周期的20均线。
5分钟20均线
20 * 5 = 100分钟
100 / 1 = 100根
因此,需要1分钟周期的 200根K线才能计算出大周期的一个点均线值。然后,按照这样的长度,进行滚动求值。
效果展示:

5分钟周期20均线

1分钟获取5分钟周期20均线

1分钟获取5分钟周期均线叠加效果
三、跨周期策略编写。这一部分,带大家如何通过多周期进行跨周期策略的编写,策略仅为讲解实现过程,并没有做过多的优化,因此效果并不是很好。
1.策略逻辑:
(1)当5分钟周期收盘价大于2小时周期的20均线,判定为多头趋势。5分钟如果均线金叉,开多。
(2)5分钟如果均线死叉,平多。空头相反。
2.代码编写:
(1)导入相应的包。

from tqsdk import TqApi,TqSim,TqBacktest,TargetPosTaskfrom datetime import dateimport NJ_Finance as njfrom tqsdk.ta import MA
(2)设置参数变量。

class k_trading(): "tqsdk 跨周期案例" def __init__(self): self.symbol = "CFFEX.IF2003" # "SHFE.rb2005" self.length = 5 # 小周期 self.k_length = 120 # 大周期 self.Position_flag = 0 # 开平标志,控制开平顺序 self.api = TqApi(TqSim(), backtest=TqBacktest(start_dt=date(2019, 12, 1), end_dt=date(2020, 3, 18)), web_gui=True) # 回测账户、区间设置 self.klines = self.api.get_kline_serial(self.symbol,60*self.length,8000) self.target_pos = TargetPosTask(self.api, self.symbol) # 目标持仓 self.ma20 = 0 self.ma30 = 0
(3)开仓平仓部分,这一部分将使用牛角财经官方 模块 NJ_Finance 中的 k_ma() 方法进行跨周期均线的计算,关注头条号私聊作者即可领取。

def trading(self): while True: self.api.wait_update() self.klines = nj.k_ma(self.klines, self.length, self.k_length, 20) self.ma5 = MA(self.klines, 5) self.ma20 = MA(self.klines, 20) self.klines["ma5"] = self.ma5.ma self.klines["ma20"] = self.ma20.ma if self.api.is_changing(self.klines.iloc[-1],'datetime'): "如果当前无持仓" if self.Position_flag == 0: if self.klines['close'].iloc[-1] > self.klines['k_ma20'].iloc[-1]: if self.klines.ma5.iloc[-1]>self.klines.ma20.iloc[-1] and self.klines.ma5.iloc[-2] <= \ self.klines.ma20.iloc[-2]: self.target_pos.set_target_volume(1) self.Position_flag = 1 "如果当前持有多仓" if self.Position_flag == 1: if self.klines.ma5.iloc[-1] < self.klines.ma20.iloc[-1] and self.klines.ma5.iloc[-2] >= \ self.klines.ma20.iloc[-2]: self.target_pos.set_target_volume(0) self.Position_flag = 0
(4)策略回测。
标的:股指IF2003
周期:5分钟
回测资金:1000000
回测区间:2019-12-1 至 2020-3-18
案例只回测多头。
回测细节:

回测结果:

最近的股指行情中,价格大部分处于2小时的20均线以下,此时短线不宜做多,因按照顺空头趋势,反弹做空的方法进行操作。

总结:
文章主要讲解如何利用多周期对股指期货进行分析,并且分享了如何利用python进行代码的编写。跨周期的主要目的,是为了确定趋势然后在小周期进行顺势进行操作,这样对正确率有很大的提高。
不过,如果按照这样的方法进行分析的话,由于均线具有严重的滞后性,因此某些时候会漏掉大行情的起始部分,没关系,不能患得患失,所谓舍得,有舍才有得。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/491330
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!