该指标实际是一个全自动化的量化交易系统,其核心能力在于:通过多维度技术面分析精准定位买入时机,并借助动态风控机制自动执行止盈与止损操作。
在具体执行层面,系统内置四种入场信号——超跌反弹抄底、趋势回踩确认、横盘区间突破以及放量启动上涨。开仓后,双重止损策略立即生效:一方面依据真实波动幅度(ATR)设置动态防线,另一方面固定比例止损线作为硬性保护。止盈方面,采用阶梯式移动跟踪机制,随盈利增加逐步收紧回撤容忍度;一旦达到目标收益则直接平仓锁定利润。此外,若长期趋势发生破位,系统同样会触发卖出指令。
{ 第一部分:参数区(按需调整) }
{==============================================}
投入金额:=5;
最小持仓天数:=2;
止损比例:=8;
止盈比例:=60;
移动止盈回撤1:=15;
移动止盈回撤2:=12;
移动止盈回撤3:=10;
移动止盈回撤4:=8;
ATR周期:=14;
ATR止损倍数:=1.5;
{==============================================}
{ 第二部分:公共变量区(框架自动计算) }
{==============================================}
TR1:=MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(L-REF(C,1)));
ATR:=MA(TR1,ATR周期);
{==============================================}
{ 第三部分:买入条件插槽(替换这里即可) }
{ 要求: }
{ 输出"买入条件"=1触发买入,0不触发 }
{ 输出"买入类型"=信号编号,用于分类显示 }
{ 1=抄底 2=回踩 3=突破 4=起涨 }
{==============================================}
{--- 以下为原始系统完整买入代码 ---}
{-- 公共指标 --}
快线:=MA(C,5);
慢线:=MA(C,20);
长期线:=MA(C,60);
均量5:=MA(V,5);
均量20:=MA(V,20);
DIFF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIFF,9);
MACD柱:=2*(DIFF-DEA);
{-- 抄底 --}
RSV:=(C-LLV(L,14))/(HHV(H,14)-LLV(L,14))*100;
RSI:=SMA(RSV,3,1);
超卖区:=RSI<25;
连跌天数:=COUNT(C<REF(C,1),5);
严重超跌:=连跌天数>=3;
反弹确认:=C>O AND C>REF(C,1) AND V>均量5*1.5;
偏离长期线:=(C-长期线)/长期线*100;
超跌反弹条件:=偏离长期线<-15;
下影线比:=(MIN(C,O)-L)/(H-L+0.01);
底部K线:=下影线比>0.3;
抄底买入:=超卖区 AND 严重超跌 AND 反弹确认 AND (超跌反弹条件 OR 底部K线);
{-- 回踩 --}
趋势向上:=快线>慢线;
金叉:=REF(快线,1)<=REF(慢线,1) AND 快线>慢线;
金叉距今:=BARSLAST(金叉);
回踩区间上轨:=慢线*1.05;
回踩区间下轨:=慢线*0.95;
价格触及慢线:=L<=回踩区间上轨 AND L>=回踩区间下轨;
回踩企稳:=C>慢线;
回踩K线确认:=C>O;
回踩确认:=趋势向上 AND 价格触及慢线 AND 回踩企稳 AND 回踩K线确认;
回踩时间窗口:=金叉距今<=60 AND 金叉距今>=2;
金叉后回踩次数:=COUNT(回踩确认,金叉距今+1);
前三次回踩:=金叉后回踩次数>=1 AND 金叉后回踩次数<=3;
均线斜率:=(慢线-REF(慢线,5))/REF(慢线,5)*100;
趋势强度:=均线斜率>0;
回踩买入:=回踩确认 AND 前三次回踩 AND 回踩时间窗口 AND 趋势强度;
{-- 突破 --}
突破周期:=20;
N日最高:=HHV(H,突破周期);
突破新高:=C>REF(N日最高,1) AND REF(C,1)<=REF(N日最高,1);
突破放量:=V>均量20*1.5;
突破趋势过滤:=C>慢线 AND 快线>REF(快线,1);
前20日振幅:=(HHV(H,突破周期)-LLV(L,突破周期))/LLV(L,突破周期)*100;
横盘整理:=前20日振幅<30;
突破买入:=突破新高 AND 突破放量 AND 突破趋势过滤 AND 横盘整理;
{-- 放量起涨 --}
前5日均量:=MA(V,5);
前10日均量:=MA(V,10);
近期缩量:=前5日均量<前10日均量*0.8;
今日放量:=V>前10日均量*2;
今日大涨:=C/REF(C,1)>1.05;
今日收阳:=C>O;
起涨站上均线:=C>慢线 AND REF(C,1)<慢线;
MACD金叉:=REF(DIFF,1)<=REF(DEA,1) AND DIFF>DEA;
放量起涨买入:=近期缩量 AND 今日放量 AND 今日大涨 AND 今日收阳 AND (起涨站上均线 OR MACD金叉);
{-- 插槽输出 --}
{ 原始信号汇总(不含持仓过滤) }
原始买入信号:=回踩买入 OR 突破买入 OR 抄底买入 OR 放量起涨买入;
买入类型:=IF(回踩买入,2,IF(突破买入,3,IF(抄底买入,1,IF(放量起涨买入,4,0))));
{--- 原始买入代码结束,替换上方代码即可换策略 ---}
{==============================================}
{ 第四部分:卖出条件插槽(替换这里即可) }
{ 要求: }
{ 输出"卖出条件"=1触发卖出,0不触发 }
{ 输出"卖出类型"=信号编号,用于分类显示 }
{ 1=策略卖出 }
{ 注意:固定止损/动损/移动止盈/目标止盈 }
{ 由框架第五部分自动管理,无需在此写出 }
{==============================================}
{--- 以下为原始系统完整策略卖出代码 ---}
慢线拐头:=慢线<REF(慢线,1) AND REF(慢线,1)<REF(慢线,2);
策略卖出:=慢线拐头 AND C<慢线 AND REF(C,1)<REF(慢线,1);
{-- 插槽输出 --}
卖出条件:=策略卖出;
卖出类型:=IF(策略卖出,1,0);
{--- 原始策略卖出代码结束,替换上方代码即可换策略 ---}
{==============================================}
{ 第五部分:止损止盈区(框架核心,勿动) }
{==============================================}
买入距今:=BARSLAST(原始买入信号);
买入价基准:=IF(BARSLAST(原始买入信号)<BARSCOUNT(C), REF(C, 买入距今), 0);
买入时ATR:=REF(ATR, 买入距今);
买入后最高价:=HHV(H, 买入距今+1);
当前盈利:=IF(买入价基准>0,(C-买入价基准)/买入价基准*100,0);
最高盈利:=IF(买入价基准>0,(买入后最高价-买入价基准)/买入价基准*100,0);
{--- ATR动态止损 ---}
ATR倍数:=IF(买入距今>15,2.5,IF(买入距今>5,2,ATR止损倍数));
ATR止损线:=买入价基准-买入时ATR*ATR倍数;
ATR止损触发:=买入距今>=最小持仓天数 AND L<ATR止损线;
{--- 固定止损 ---}
固定止损触发:=买入距今>=最小持仓天数 AND C<买入价基准*(1-止损比例/100);
{--- 阶梯移动止盈(边界统一用>=) ---}
阶段回撤:=IF(最高盈利>=60,移动止盈回撤4,
IF(最高盈利>=40,移动止盈回撤3,
IF(最高盈利>=20,移动止盈回撤2,
IF(最高盈利>=10,移动止盈回撤1,99))));
移动止盈触发:=买入距今>=最小持仓天数 AND 最高盈利>=10 AND C<买入后最高价*(1-阶段回撤/100);
{--- 目标止盈 ---}
目标止盈触发:=买入距今>=最小持仓天数 AND H>=买入价基准*(1+止盈比例/100);
{--- 综合卖出(框架止损止盈 + 插槽策略卖出) ---}
综合卖出:=(卖出条件 AND 买入距今>0) OR 固定止损触发 OR ATR止损触发 OR 移动止盈触发 OR 目标止盈触发;
{==============================================}
{ 第六部分:仓位管理区(框架核心,勿动) }
{ 含持仓状态判定 + 买入条件最终输出 }
{==============================================}
卖出距今:=BARSLAST(综合卖出);
{--- BARSLAST边界保护 ---}
有买入记录:=BARSLAST(原始买入信号)<BARSCOUNT(C);
有卖出记录:=BARSLAST(综合卖出)<BARSCOUNT(C);
持仓状态:=IF(有买入记录 AND (有卖出记录=0 OR 买入距今<卖出距今),1,0);
持仓成本:=IF(持仓状态=1,买入价基准,0);
{--- 持仓中不再买入(用REF打破循环依赖) ---}
买入条件:=原始买入信号 AND REF(持仓状态,1)=0;
{==============================================}
{ 第七部分:盈亏计算区(框架核心,勿动) }
{==============================================}
持仓盈亏率:=IF(持仓状态=1,(C-持仓成本)/持仓成本*100,
IF(REF(持仓状态,1)=1 AND 持仓状态=0,
(O-REF(持仓成本,1))/REF(持仓成本,1)*100,0));
卖出触发:=REF(持仓状态,1)=1 AND 持仓状态=0;
WWWZBGS3COM:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));
{--- 还原卖出时具体是哪个条件触发(用于分类显示) ---}
{ 优先级:策略卖出 > ATR止损 > 固定止损 > 移动止盈 > 目标止盈 }
{ 同一天多条件同时触发时,只返回优先级最高的一个 }
最终卖出类型:=IF(卖出触发,
IF(REF(卖出条件,卖出距今)=1,1,
IF(ATR止损触发,3,
IF(固定止损触发,2,
IF(移动止盈触发,4,
IF(目标止盈触发,5,0))))),0);
{==============================================}
{ 第八部分:信号显示区(框架核心,勿动) }
{==============================================}
买入价信号:IF(买入条件,C,0),NODRAW;
买入量信号:IF(买入条件,INTPART(投入金额*10000/C/100)*100,0),NODRAW;
持仓成本信号:持仓成本,NODRAW;
持仓盈亏率%:持仓盈亏率;
卖出价信号:IF(卖出触发,O,0),NODRAW;
{--- 持仓状态柱 ---}
STICKLINE(买入条件,19,23,4,0),COLORRED;
STICKLINE(持仓状态=1,21,21,4,0),COLORRED;
STICKLINE(持仓盈亏率 AND 持仓盈亏率>0,0,持仓盈亏率,0,0),COLORRED;
STICKLINE(持仓盈亏率 AND 持仓盈亏率<=0,0,持仓盈亏率,0,0),COLORFFFF80;
STICKLINE(卖出触发,19,23,4,0),COLORFF0000;
{--- 买入类型分类柱(上半区) ---}
STICKLINE(买入条件 AND 买入类型=1,0,34,1,1),COLORGREEN;
STICKLINE(买入条件 AND 买入类型=2,0,34,1,1),COLORRED;
STICKLINE(买入条件 AND 买入类型=3,0,50,1,1),COLORYELLOW;
STICKLINE(买入条件 AND 买入类型=4,0,55,1,1),COLORMAGENTA;
{--- 卖出类型分类柱(下半区) ---}
STICKLINE(卖出触发 AND 最终卖出类型=1,0,-23,0,0),COLORCYAN;
STICKLINE(卖出触发 AND 最终卖出类型=2,0,-23,0,0),COLORGREEN;
STICKLINE(卖出触发 AND 最终卖出类型=3,0,-23,0,0),COLORFFAA00;
STICKLINE(卖出触发 AND (最终卖出类型=4 OR 最终卖出类型=5),0,-23,0,0),COLORRED;
{--- 买入类型文字标注 ---}
DRAWTEXT(买入条件 AND 买入类型=1,34,'抄底'),COLORGREEN;
DRAWTEXT(买入条件 AND 买入类型=2,34,'回踩'),COLORRED;
DRAWTEXT(买入条件 AND 买入类型=3,45,'突破'),COLORYELLOW;
DRAWTEXT(买入条件 AND 买入类型=4,50,'起涨'),COLORMAGENTA;
{--- 卖出类型文字标注 ---}
DRAWTEXT(卖出触发 AND 最终卖出类型=1,-5,'破位'),COLOR80FFFF;
DRAWTEXT(卖出触发 AND 最终卖出类型=3,-13,'动损'),COLORFFAA00;
DRAWTEXT(卖出触发 AND 最终卖出类型=2,-21,'固损'),COLORGREEN;
DRAWTEXT(卖出触发 AND (最终卖出类型=4 OR 最终卖出类型=5),5,'止盈'),COLOR80FFFF;
