

文华财经指标源码:
// 全类型三角形突破策略(REF函数修复版)
// 核心:修复REF函数偏移量错误,使用固定周期偏移
MA20:MA(CLOSE,20);
TRI_PERIOD:=30;
HOLD_PERIOD:=10;
// 1. 三角形轨道定义
CONV_TOP:MA(HHV(HIGH,TRI_PERIOD/3),3);
CONV_BOTTOM:MA(LLV(LOW,TRI_PERIOD/3),3);
UP_TOP:REF(HHV(HIGH,TRI_PERIOD),TRI_PERIOD-1);
UP_BOTTOM:MA(LLV(LOW,TRI_PERIOD/3),3);
DOWN_TOP:MA(HHV(HIGH,TRI_PERIOD/3),3);
DOWN_BOTTOM:REF(LLV(LOW,TRI_PERIOD),TRI_PERIOD-1);
EXP_TOP:MA(HHV(HIGH,TRI_PERIOD/3),3);
EXP_BOTTOM:MA(LLV(LOW,TRI_PERIOD/3),3);
// 2. 突破条件
LONG_CONV:CROSS(CLOSE,CONV_TOP) AND CLOSE>MA20;
LONG_UP:CROSS(CLOSE,UP_TOP) AND CLOSE>MA20;
LONG_DOWN:CROSS(CLOSE,DOWN_TOP) AND CLOSE>MA20;
LONG_EXP:CROSS(CLOSE,EXP_TOP) AND CLOSE>MA20;
SHORT_CONV:CROSS(CONV_BOTTOM,CLOSE) AND CLOSE<MA20;
SHORT_UP:CROSS(UP_BOTTOM,CLOSE) AND CLOSE<MA20;
SHORT_DOWN:CROSS(DOWN_BOTTOM,CLOSE) AND CLOSE<MA20;
SHORT_EXP:CROSS(EXP_BOTTOM,CLOSE) AND CLOSE<MA20;
// 3. 信号延续标记
LONG_COMBO1:=LONG_CONV OR LONG_UP;
LONG_COMBO:=LONG_COMBO1 OR LONG_DOWN OR LONG_EXP;
SHORT_COMBO1:=SHORT_CONV OR SHORT_UP;
SHORT_COMBO:=SHORT_COMBO1 OR SHORT_DOWN OR SHORT_EXP;
LONG_HOLD:BACKSET(LONG_COMBO,HOLD_PERIOD);
SHORT_HOLD:BACKSET(SHORT_COMBO,HOLD_PERIOD);
// 4. 止损止盈计算
LONG_STOP:IF(LONG_HOLD,IF(LONG_CONV,MIN(LOW,CONV_BOTTOM),IF(LONG_UP,MIN(LOW,UP_BOTTOM),IF(LONG_DOWN,MIN(LOW,DOWN_BOTTOM),IF(LONG_EXP,MIN(LOW,EXP_BOTTOM),0)))),0);
LONG_TARGET:IF(LONG_HOLD,(CLOSE-LONG_STOP)*3 + CLOSE,0);
SHORT_STOP:IF(SHORT_HOLD,IF(SHORT_CONV,MAX(HIGH,CONV_TOP),IF(SHORT_UP,MAX(HIGH,UP_TOP),IF(SHORT_DOWN,MAX(HIGH,DOWN_TOP),IF(SHORT_EXP,MAX(HIGH,EXP_TOP),0)))),0);
SHORT_TARGET:IF(SHORT_HOLD,CLOSE - (SHORT_STOP - CLOSE)*3,0);
// 5. 固定偏移量(核心修复)
OFFSET:=TRI_PERIOD; // 使用固定周期作为偏移量
// 6. 三角形形态线(修复REF函数偏移量)
DRAWLINE3(1,CONV_TOP,BARPOS,1,REF(CONV_TOP,OFFSET),BARPOS-OFFSET,2),COLORRED;
DRAWLINE3(1,CONV_BOTTOM,BARPOS,1,REF(CONV_BOTTOM,OFFSET),BARPOS-OFFSET,2),COLORGREEN;
DRAWLINE3(1,UP_TOP,BARPOS,1,REF(UP_TOP,OFFSET),BARPOS-OFFSET,2),COLORYELLOW;
DRAWLINE3(1,UP_BOTTOM,BARPOS,1,REF(UP_BOTTOM,OFFSET),BARPOS-OFFSET,2),COLORGREEN;
DRAWLINE3(1,DOWN_TOP,BARPOS,1,REF(DOWN_TOP,OFFSET),BARPOS-OFFSET,2),COLORRED;
DRAWLINE3(1,DOWN_BOTTOM,BARPOS,1,REF(DOWN_BOTTOM,OFFSET),BARPOS-OFFSET,2),COLORYELLOW;
DRAWLINE3(1,EXP_TOP,BARPOS,1,REF(EXP_TOP,OFFSET),BARPOS-OFFSET,2),COLORMAGENTA;
DRAWLINE3(1,EXP_BOTTOM,BARPOS,1,REF(EXP_BOTTOM,OFFSET),BARPOS-OFFSET,2),COLORCYAN;
// 7. 信号标记
DRAWICON(LONG_CONV,HIGH,1);
DRAWICON(SHORT_CONV,LOW,2);
DRAWICON(LONG_UP,HIGH,3);
DRAWICON(SHORT_UP,LOW,4);
DRAWICON(LONG_DOWN,HIGH,5);
DRAWICON(SHORT_DOWN,LOW,6);
DRAWICON(LONG_EXP,HIGH,7);
DRAWICON(SHORT_EXP,LOW,8);
// 8. 文字提示
DRAWTEXT(LONG_CONV,LOW,'收敛三角-多'),COLORRED;
DRAWTEXT(SHORT_CONV,HIGH,'收敛三角-空'),COLORGREEN;
DRAWTEXT(LONG_UP,LOW,'上升三角-多'),COLORRED;
DRAWTEXT(SHORT_UP,HIGH,'上升三角-空'),COLORGREEN;
DRAWTEXT(LONG_DOWN,LOW,'下降三角-多'),COLORRED;
DRAWTEXT(SHORT_DOWN,HIGH,'下降三角-空'),COLORGREEN;
DRAWTEXT(LONG_EXP,LOW,'扩张三角-多'),COLORMAGENTA;
DRAWTEXT(SHORT_EXP,HIGH,'扩张三角-空'),COLORCYAN;
// 9. 止损止盈线
DRAWLINE3(LONG_HOLD,LONG_STOP,BARPOS,LONG_HOLD,LONG_STOP,BARPOS+HOLD_PERIOD,1),COLORYELLOW;
DRAWLINE3(LONG_HOLD,LONG_TARGET,BARPOS,LONG_HOLD,LONG_TARGET,BARPOS+HOLD_PERIOD,1),COLORRED;
DRAWLINE3(SHORT_HOLD,SHORT_STOP,BARPOS,SHORT_HOLD,SHORT_STOP,BARPOS+HOLD_PERIOD,1),COLORYELLOW;
DRAWLINE3(SHORT_HOLD,SHORT_TARGET,BARPOS,SHORT_HOLD,SHORT_TARGET,BARPOS+HOLD_PERIOD,1),COLORGREEN;