TMA交易系统——主图源码
这是同花顺期货通的源码
效果如下:

源码和用法如下:






文字版源码如下(文字版会有乱码,我也不知道怎么回事)
//MA75:MA(C,75),COLORYELLOW,LINETHICK3;
N:=(3*C+OPEN+H+L)/6;
S:=EXPMA(N,13);
M:=EXPMA(N,34);
LG:=EXPMA(N,55);
UP1:= MAX(MAX(S,M),LG),COLORMAGENTA;
DN1:=MIN(MIN(S,M),LG),COLOR00FF00;
//缓冲带:= (UP1 – DN1)*0.1; // 设定缓冲带宽度
趋势悉数 := ABS(SLOPE(UP1, 5));
缓冲带 := (UP1 – DN1) * (0.05 + 0.1 * (1 – EXP(-趋势悉数 * 20)));
//将基础系数从0.05增加到0.08,动态系数从0.1增加到0.15,以扩大缓冲带范围:
//将指数衰减因子从20减小到15或10,使缓冲带对趋势强度的变化更敏感
UP:UP1-缓冲带,COLORFF0000,LINETHICK4;
DN:DN1+缓冲带,COLOR00FF00,LINETHICK4;
震荡区域 := CLOSE >= DN AND CLOSE <= UP;
轨道上穿:= CROSS(C, UP); // 可能启动信号
轨道下破:= CROSS(DN, C); // 可能转弱信号
发散度: =(UP – DN)/C*100;
//趋势过滤: =发散度 > 0.5; // 过滤震荡,可调参数
趋势强度 := ABS(SLOPE(UP, 5)); // 计算上轨斜率
趋势过滤 := 趋势强度 > 0.01 AND 发散度 > 0.5;
临近上轨:=C > UP – 缓冲带 AND C < UP;
临近下轨:=C < DN + 缓冲带 AND C > DN;
//入场信号
RSI周期 := 14;
LC := REF(CLOSE,1);
RSI_RSI := SMA(MAX(CLOSE – LC, 0), RSI周期, 1) / SMA(ABS(CLOSE – LC), RSI周期, 1) * 100;
CCI周期 := 14;
TP1 := (HIGH + LOW + CLOSE) / 3;
MA_TP := MA(TP1, CCI周期);
//MD := ABS(TP – MA_TP);
//MD := MA(ABS(TP – MA_TP), CCI周期);
//CCI_CCI := (TP – MA_TP) / (0.015 * MA(MD, CCI周期));
MD := MA(ABS(TP1 – MA_TP), CCI周期);
CCI_CCI := (TP1 – MA_TP) / (0.015 * MA(MD, CCI周期));
//
RSI:RSI_RSI,COLORRED,NODRAW;
CCI:CCI_CCI,COLORGREEN,NODRAW;
//多单信号:= CROSS(CLOSE, UP) AND RSI_RSI > 30 AND CCI_CCI > 80,COLORRED,NODRAW;
//空单信号:=CROSS(DN, CLOSE) AND RSI_RSI < 80 AND CCI_CCI < -100,COLORGREEN,NODRAW;
//染色
// === 趋势判断依据 ===
// === 趋势区域判:===
多头 := MIN(C,OPEN)> =UP;
空头 := MAX(C,OPEN) < DN;
十字星:= OPEN=CLOSE;
// 精细震荡区分类(非多非空且特征明确)
震荡1 := HIGH < UP AND LOW > DN; // 完全在通道内
震荡2 := HIGH > UP AND LOW < UP AND LOW > DN; // 上影突破UP
震荡3 := LOW < DN AND HIGH > DN AND HIGH < UP; // 下影跌破DN
震荡4 := HIGH > UP AND LOW < DN; // 上下影同时破轨
// === K线染色:DRAWCOLORKLINE 实现 ===
// 震荡1 白色(轨道内部)
DRAWCOLORKLINE(震荡1 AND NOT (ISDOWN), COLORWHITE, 1);
DRAWCOLORKLINE(震荡1 AND ISDOWN, COLORWHITE ,0);
DRAWCOLORKLINE(震荡1 AND 十字星, COLORWHITE ,0);
// 震荡2 白色(上影突破UP)
DRAWCOLORKLINE(震荡2 AND NOT (ISDOWN), COLORWHITE ,1);
DRAWCOLORKLINE(震荡2 AND ISDOWN, COLORWHITE, 0);
DRAWCOLORKLINE(震荡2 AND 十字星, COLORWHITE, 0);
// 震荡3 白色(下影跌破DN)
DRAWCOLORKLINE(震荡3 AND NOT (ISDOWN), COLORWHITE,1);
DRAWCOLORKLINE(震荡3 AND ISDOWN, COLORWHITE, 0);
DRAWCOLORKLINE(震荡3 AND 十字星, COLORWHITE, 0);
// 震荡4 白色(上下影同时破轨)
DRAWCOLORKLINE(震荡4 AND NOT (ISDOWN), COLORWHITE,1);
DRAWCOLORKLINE(震荡4 AND ISDOWN, COLORWHITE,0);
DRAWCOLORKLINE(震荡4 AND 十字星, COLORWHITE,0);
DRAWCOLORKLINE(多头, COLORRED, 1); // 多头阳线,红色实心
DRAWCOLORKLINE(多头 AND ISDOWN, COLORFF0000, 0); // 多头阴线,红色空心
DRAWCOLORKLINE(多头 AND 十字星, COLORFF0000, 1);
DRAWCOLORKLINE(空头, COLORGREEN ,1); // 空头阳线,绿色实心
DRAWCOLORKLINE(空头 AND ISDOWN, COLOR00ff00, 0); // 空头阴线,绿色空心
DRAWCOLORKLINE(空头 AND 十字星, COLOR00ff00, 0);
//
// === 均线偏离率 %B(可选择不同均线周期)===
偏离周期 := 34;
基准均线 := MA(CLOSE, 偏离周期); // 你也可以改为EXPMA、WMA等
偏离率 := (CLOSE – 基准均线) / 基准均线 * 100;
偏离率_B : 偏离率, COLORBLUE, NODRAW;
// 用法建议:
过热区 := 偏离率 > 5;
过冷区 := 偏离率 < -5;
//
夜雨聆风
