斐波那契数列策略
一种基于斐波那契数列的交易策略,主要通过结合移动平均线、KDJ指标和斐波那契数列来确定买卖点和风险管理。
交易逻辑思维
1. 多指标结合:
- 移动平均线:使用34期指数移动平均线(Em)和8期简单移动平均线(Sm)来判断短期和长期趋势。
- KDJ指标:通过计算K线和D线来识别趋势和买卖信号。K线代表快速线,D线代表慢速线,K线由下向上穿过D线形成金叉,通常视为买入信号。
- 斐波那契数列:利用斐波那契回撤和扩展水平来设定止损和止盈点,以实现动态的风险控制。
2. 趋势判断:
- 短期均线(Sm)大于长期均线(Em)时,表明短期趋势向上。
- K线由下向上穿过D线形成金叉,结合短期趋势向上,作为买入信号。
3. 突破确认:
- 在K线和D线交叉后的四个周期内,如果价格能够突破交叉时的高点(Tp),则认为是有效的突破信号,确认开仓时机。
4. 下单逻辑:
- 当满足开仓条件且当前没有持仓时,以市价单买入指定数量的合约。
特点
1. 动态风险管理:
- 幅度止损:
根据开仓时记录的前一轮高低点以及斐波那契回撤比例设定多个止损点,当价格触及这些回撤水平时,将全部卖出平仓。
- 幅度止盈:
当价格上涨达到前一轮行情最低价上方的1.272倍斐波那契扩展水平时,卖出一半持仓;当价格达到1.618倍扩展水平时,卖出剩余全部持仓,实现盈利锁定。
2. 多周期分析:
- 使用不同周期的移动平均线和KDJ指标来捕捉不同时间框架下的市场信号。
- 通过识别前一轮行情的高点和低点,结合斐波那契数列进行更精确的买卖点判断。
3. 综合指标应用:
- 结合了移动平均线的趋势判断能力、KDJ指标的买卖信号指示以及斐波那契数列的风险管理功能,形成了一套完整的交易系统。
4. 灵活性和适应性:
- 参数设置具有一定的灵活性,用户可以根据市场情况调整参数以适应不同的市场环境。
- 策略设计考虑了多种市场情况,旨在捕捉趋势性行情并实施动态的风险控制。
该策略通过综合运用移动平均线、KDJ指标和斐波那契数列,形成了一套完整的交易系统。
其核心在于多指标结合的趋势判断和动态风险管理,旨在捕捉趋势性行情并实施有效的风险控制。
策略的设计考虑了多种市场情况,具有较高的灵活性和适应性。
然而,用户在实际应用时应充分验证策略的有效性,避免直接实盘操作带来的风险。
本策略主要交易逻辑如下:
1. 参数设置:
- N: 参考周期,默认值为81,范围从1到100,步长为10。
- P1和P2: 分别用于计算K线和D线的周期,默认都是14,范围从2到40,步长为4。
- P3: 用来识别前一轮行情高点的周期,默认值为36,范围从10到100,步长为2。
- Num: 每次交易的手数或股数,默认为2。
2. 技术指标计算:
- 计算34期指数移动平均线(Em)和8期简单移动平均线(Sm)。
- 使用N周期内的最低价和最高价计算相对强弱值(Rsv)。
- 基于Rsv计算K线和D线,分别代表快慢线,用以识别趋势和买卖信号。
- Tp: 记录最近一次K线与D线交叉时的最高价。 - Gj: 记录前一轮行情的最高价。
- Dj: 记录前一轮行情的最低价。
3. 交易条件:
- Cond1: 当短期均线(Sm)大于长期均线(Em),表明短期趋势向上。
- Cond2: K线由下向上穿过D线,形成金叉,通常视为买入信号。
- Cond3: 在K线和D线交叉后的四个周期内,如果价格能够突破交叉时的高点(Tp),则认为是有效的突破信号。
- 开仓条件(BuyCond): 结合上述三个条件,当短期趋势向上、K线位于D线上方,并且价格有效突破,即为开仓时机。
4. 下单逻辑:
- 当满足开仓条件且当前没有持仓时,以市价单买入指定数量的合约。
5. 止损与止盈策略:
- 幅度止损: 根据开仓时记录的前一轮高低点(Gl和Dl)以及斐波那契回撤比例设定多个止损点,当价格触及这些回撤水平时,将全部卖出平仓。
- 幅度止盈: 当价格上涨达到前一轮行情最低价(Dl)上方的1.272倍斐波那契扩展水平时,卖出一半持仓;当价格达到1.618倍扩展水平时,卖出剩余全部持仓,实现盈利锁定。
该策略综合运用了移动平均线、KDJ指标和斐波那契数列来确定买卖点和风险管理,旨在捕捉趋势性行情并实施动态的风险控制。
策略信号代码:
/定义参数
Input:N(81,1,100,10),P1(14,2,40,4),P2(14,2,40,4),P3(36,10,100,2);
//中间变量
Variable:ls=0,Gl=0,Dl=0;
Num:=2;
Em:Ema(Close,34);//收盘价34期EMA
Sm:Sma(Close,8,1);//收盘价8期SMA
Rsv:=(Close-Llv(Low,N))/(Hhv(High,N)-Llv(Low,N))*100;
K:Sma(RSV,P1,1),NOAXIS;
D:Sma(K,P2,1),noaxis;
Tp:=Valuewhen(Cross(k,d),High);//KD交叉时对应高点
Gj:=Valuewhen(H>=HHV(High,P3),High);//前一轮行情最高价
Cond4:=Barslast(H>=HHV(High,P3));//前一轮行情高点到现在的周期数
Dj:=Llv(Low,Cond4);//前一轮行情最低价
Cond1:=Sm>Em;
Cond2:=Cross(K,D);//K、D交叉
Cond3:=Barslast(COND2)<=4 AND High>Tp;//KD交叉以后四个周期内,价格突破
BuyCond:Cond1 And K>D And Cond3 ;//开仓条件
//下单语句
If BuyCond And Holding=0 Then
Begin
Buy(1,Num,Market);
Gl:=Gj;//开仓时前一轮行情高价
Dl:=Dj;//开仓时前一轮最低价
ls:=Gl-Dl;//区间幅度
End
//幅度止损部分
If Enterprice>=Gl And Close<=Dl+0.618*ls Then Sell(1,Num,Market);
If Enterprice>=Dl+0.786*ls And Enterprice<=Gl And Close<=Dl+0.5*ls Then Sell(1,Num,Market);
If Enterprice>=Dl+0.5*ls And Enterprice<=Dl+0.786*ls And Close<=Dl+0.236*ls Then Sell(1,Num,Market);
If Enterprice>=Dl+0.236*ls And Enterprice<Dl+0.5*ls And Close<=Dl Then Sell(1,Num,Market);
//幅度止盈部分
If Close>=Dl+1.272*ls Then Sell(1,Intpart(Num/2),Market);
If Close>=Dl+1.618*ls Then Sell(1,0,Market);
●借鉴学习使用,请勿实盘。应充分验证!