文华财经指标源码:

// ================================
// 多空分界线高级交易系统
// ================================

// 加权高低点计算(用于显示位置)
HH := HHV(HIGH, 1)/10 + HHV(HIGH, 2)/10 + HHV(HIGH, 2)/10 + HHV(HIGH, 4)/10 + 
      HHV(HIGH, 4)/10 + HHV(HIGH, 8)/10 + HHV(HIGH, 8)/10 + HHV(HIGH, 13)/10 + 
      HHV(HIGH, 40)/10 + HHV(HIGH, 20)/10;
      
LL := LLV(LOW, 1)/10 + LLV(LOW, 2)/10 + LLV(LOW, 2)/10 + LLV(LOW, 4)/10 + 
      LLV(LOW, 4)/10 + LLV(LOW, 8)/10 + LLV(LOW, 8)/10 + LLV(LOW, 13)/10 + 
      LLV(LOW, 40)/10 + LLV(LOW, 20)/10;

// 文字显示偏移参数
HH_B := HHV(HIGH, 1)/10 + HHV(HIGH, 2)/10 + HHV(HIGH, 2)/10 + HHV(HIGH, 4)/10 + 
        HHV(HIGH, 4)/10 + HHV(HIGH, 8)/10 + HHV(HIGH, 8)/10 + HHV(HIGH, 13)/10 + 
        HHV(HIGH, 40)/10 + HHV(HIGH, 20)/9.8;  // 文字往上偏移
        
LL_B := LLV(LOW, 1)/10 + LLV(LOW, 2)/10 + LLV(LOW, 2)/10 + LLV(LOW, 4)/10 + 
        LLV(LOW, 4)/10 + LLV(LOW, 8)/10 + LLV(LOW, 8)/10 + LLV(LOW, 13)/10 + 
        LLV(LOW, 40)/10 + LLV(LOW, 20)/10.8;   // 文字往下偏移

// 箭头显示偏移参数
HH_A := HHV(HIGH, 1)/10 + HHV(HIGH, 2)/10 + HHV(HIGH, 2)/10 + HHV(HIGH, 4)/10 + 
        HHV(HIGH, 4)/10 + HHV(HIGH, 8)/10 + HHV(HIGH, 8)/10 + HHV(HIGH, 13)/10 + 
        HHV(HIGH, 40)/10 + HHV(HIGH, 20)/10.3; // 箭头往上偏移
        
LL_A := LLV(LOW, 1)/10 + LLV(LOW, 2)/10 + LLV(LOW, 2)/10 + LLV(LOW, 4)/10 + 
        LLV(LOW, 4)/10 + LLV(LOW, 8)/10 + LLV(LOW, 8)/10 + LLV(LOW, 13)/10 + 
        LLV(LOW, 40)/10 + LLV(LOW, 20)/10;     // 箭头往下偏移

// ================================
// 核心多空判断逻辑
// ================================

// 到期时间参数(目前设置为永久有效)
// LHS: IF(DATE > 290105, NULL, 1), NODRAW; // 原到期时间设置
LHS := 1;  // 永久有效
MA3 := MA(C, 170) * LHS;

// 识别关键高低点
HH1 := IFELSE(H < REF(H, 1) && REF(H, 1) < REF(H, 2), REF(H, 2), 0);
LL1 := IFELSE(L > REF(L, 1) && REF(L, 1) > REF(L, 2), REF(L, 2), 0);
HH2 := VALUEWHEN(HH1 > 0, HH1);
LL2 := VALUEWHEN(LL1 > 0, LL1);

// 趋势转折点识别
H1 := IFELSE(HH < REF(HH, 1) && LL < REF(LL, 1) && 
             REF(OPEN, 1) > CLOSE && OPEN > CLOSE && 
             (HHV(OPEN, 0) - CLOSE) > 0, REF(HH, 2), 0);
             
L1 := IFELSE(LL > REF(LL, 1) && HH > REF(HH, 1) && 
             REF(OPEN, 1) < CLOSE && OPEN < CLOSE && 
             (CLOSE - LLV(OPEN, 0)) > 0, REF(LL, 2), 0);

// 变量定义
X_X := DATE;
X0 := H1 * LHS, LINETHICK2;
X00 := L1 * LHS;
XXX0 := O * LHS, LINETHICK2;
XXX00 := C * LHS;
XXX000 := H * LHS;
XXX0000 := L * LHS;

// 关键高低点确认
H2 := VALUEWHEN(X0 > 0, X0) * LHS, LINETHICK2;
L2 := VALUEWHEN(X00 > 0, X00) * LHS, LINETHICK2;

// 多空状态判断
K1 := IFELSE(CLOSE > H2, -3, IFELSE(CLOSE < L2, 1, 0));
K2 := VALUEWHEN(K1 <> 0, K1);
G := IFELSE(K2 = 1, H2, L2);
G1 := G;

// ================================
// 止损价格显示系统
// ================================

DRAWLASTBARNUMBER(G1, G1, 0, COLORCYAN);
DRAWLASTBARNUMBER(G1, G1, 0, COLORWHITE), ALIGN0, FONTSIZE30, VALIGN0;
DRAWLASTBARLINE(1, G1, 0, 1, G1, 100, 1), COLORWHITE, DASH;
DRAWLASTBARTEXT(G1, '止损价格'), COLORWHITE, FONTSIZE30;

// ================================
// 价格变量处理
// ================================

X000 := K2 * LHS, LINETHICK2;
TMP := K2 * LHS, LINETHICK2;
W1 := X000 * LHS, LINETHICK2;
X0000 := OPEN * LHS - CLOSE * LHS, LINETHICK2;
W2 := X0000 * LHS, LINETHICK2;
HT := IFELSE(OPEN > CLOSE, OPEN, CLOSE) * LHS, LINETHICK2;
LT := IFELSE(OPEN < CLOSE, OPEN, CLOSE) * LHS, LINETHICK2;

// ================================
// K线着色系统
// ================================

// 多头区域(青色)影线绘制
DRAWLINE(W1 = 1, XXX000 * LHS, W1 = 1, HT, COLORGREEN);    // 上影线
DRAWLINE(W1 = 1, XXX0000 * LHS, W1 = 1, LT, COLORGREEN);   // 下影线

// 空头区域(红色)影线绘制
DRAWLINE(W1 = -3, XXX000 * LHS, W1 = -3, HT, COLORRED);    // 上影线
DRAWLINE(W1 = -3, XXX0000 * LHS, W1 = -3, LT, COLORRED);   // 下影线

// K线实体绘制
STICKLINE(W1 > 0, XXX0 * LHS, XXX00, COLORGREEN, 1);       // 青色空心K线
STICKLINE(W1 <= 0, XXX0 * LHS, XXX00, COLORRED, 1);        // 红色空心K线
STICKLINE(W2 > 0 && W1 <= 0, XXX0 * LHS, XXX00, COLORRED, 0);   // 红色实心K线
STICKLINE(W2 > 0 && W1 > 0, XXX0 * LHS, XXX00, COLORGREEN, 0);  // 青色实心K线

// ================================
// 趋势线绘制系统
// ================================

// 折竖线绘制
DRAWLINE(TMP = 1 && REF(TMP, 1) = 1, G, 
         TMP = 1 && REF(TMP, 1) = 1, REF(G, 1), COLORCYAN), DOT;  // 青色折竖线
         
DRAWLINE(TMP = -3 && REF(TMP, 1) = -3, G, 
         TMP = -3 && REF(TMP, 1) = -3, REF(G, 1), COLORRED), DOT;   // 红色折竖线

// 折横线绘制
DRAWSL(K2 = 1, G, 0, 1, 0, COLORCYAN), DOT;   // 青色折横线
DRAWSL(K2 = -3, G, 0, 1, 0, COLORRED), DOT;    // 红色折横线

// ================================
// 多空信号提示
// ================================

DRAWTEXT(CROSS(TMP, 0), HH, '空'), COLORGREEN, FONTSIZE20;
DRAWTEXT(CROSS(0, TMP), LL, '多'), COLORRED, FONTSIZE20, VALIGN0;

// ================================
// 突破信号系统
// ================================

N3 := BARSLAST(CROSS(W1 > 0, 0.5)) * LHS, LINETHICK2;
N4 := BARSLAST(CROSS(W1 <= 0, 0.5)) * LHS, LINETHICK2;
HH3 := IF(W1 <= 0, REF(HV(H, N4), N3), NULL), COLORYELLOW, DOT;
LL3 := IF(W1 > 0, REF(LV(L, N3), N4), NULL), COLORGREEN, DOT;

B_B := CROSSUP(C, HH3) || REF(ISNULL(HH3), 1) && C > HH3;  // 突破做多信号
S_S := CROSSDOWN(C, LL3) || REF(ISNULL(LL3), 1) && C < LL3; // 突破做空信号

DRAWICON(B_B = 1, L, 'ICO145');  // 做多图标
DRAWICON(S_S = 1, H, 'ICO146');  // 做空图标

// ================================
// MACD背离系统
// ================================

DIFF := (EMA(C, 12) - EMA(C, 26)) * LHS, COLORWHITE;
DEA := EMA(DIFF, 9) * LHS, COLORYELLOW;
MACD := 2 * (DIFF - DEA) * LHS, COLORYELLOW;

// 金叉检测
JC := CROSS(DIFF, DEA), NODRAW;
DRAWTEXT(JC, DIFF + 0.8, 'JC'), COLORRED;
JC_COUNT := COUNT(CROSS(DIFF, DEA), 0), NODRAW;                        // 金叉计数
JC_BARS_LAST := BARSLAST(CROSS(DIFF, DEA)), NODRAW;                    // 上次金叉至今K线数
JC_PRICE_CURR := IF(BARSLAST(CROSS(DIFF, DEA)) = 0, DIFF, 0), NODRAW;  // 当前金叉值
JC_PRICE_LAST := REF(REF(DIFF, JC_BARS_LAST), 1), NODRAW;              // 上次金叉值

// 死叉检测
SC := CROSSDOWN(DIFF, DEA), NODRAW;
DRAWTEXT(SC, DIFF + 0.8, 'SC'), COLORGREEN;
SC_COUNT := COUNT(CROSSDOWN(DIFF, DEA), 0), NODRAW;                       // 死叉计数
SC_BARS_LAST := BARSLAST(CROSSDOWN(DIFF, DEA)), NODRAW;                   // 上次死叉至今K线数
SC_PRICE_CURR := IF(BARSLAST(CROSSDOWN(DIFF, DEA)) = 0, DIFF, 0), NODRAW; // 当前死叉值
SC_PRICE_LAST := REF(REF(DIFF, SC_BARS_LAST), 1), NODRAW;                 // 上次死叉值

// ================================
// MACD背离信号判断
// ================================

// 顶背离减空信号
JC_1_2 := IF(JC_PRICE_LAST > 0 AND JC_PRICE_CURR < 0 AND 
             JC_PRICE_LAST > JC_PRICE_CURR, 1, 0);
DRAWTEXT(JC_1_2, LL_B, '减空'), COLORYELLOW, FONTSIZE18;
DRAWICON(JC_1_2, LL_A, 'ICO4');

JC_1_4 := IF(JC_PRICE_LAST < 0 AND JC_PRICE_CURR < 0 AND 
             JC_PRICE_LAST > JC_PRICE_CURR, 1, 0);
DRAWTEXT(JC_1_4, LL_B, '减空'), COLORYELLOW, FONTSIZE18;
DRAWICON(JC_1_4, LL_A, 'ICO4');

// 多头信号
JC_2_1 := IF(JC_PRICE_LAST > 0 AND JC_PRICE_CURR > 0 AND 
             JC_PRICE_LAST < JC_PRICE_CURR, 1, 0);
DRAWTEXT(JC_2_1, LL_B, ' 多'), COLORRED, FONTSIZE18;
DRAWICON(JC_2_1, LL_A, 'ICO4');

// 顶背离减多信号
SC_2_1 := IF(SC_PRICE_LAST > 0 AND SC_PRICE_CURR > 0 AND 
             SC_PRICE_LAST < SC_PRICE_CURR, 1, 0);
DRAWTEXT(SC_2_1, HH_B, '减多'), COLORYELLOW, FONTSIZE18;
DRAWICON(SC_2_1, H, 'ICO5');

SC_2_3 := IF(SC_PRICE_LAST < 0 AND SC_PRICE_CURR > 0 AND 
             SC_PRICE_LAST < SC_PRICE_CURR, 1, 0);
DRAWTEXT(SC_2_3, HH_B, '减多'), COLORYELLOW, FONTSIZE18;
DRAWICON(SC_2_3, H, 'ICO5');

// 空头信号
SC_1_2 := IF(SC_PRICE_LAST > 0 AND SC_PRICE_CURR < 0 AND 
             SC_PRICE_LAST > SC_PRICE_CURR, 1, 0);
DRAWTEXT(SC_1_2, HH_B, '空'), COLORGREEN, FONTSIZE18;
DRAWICON(SC_1_2, H, 'ICO5');

// ================================
// 其他背离提示信号
// ================================

JC_1_1 := IF(JC_PRICE_LAST > 0 AND JC_PRICE_CURR > 0 AND 
             JC_PRICE_LAST > JC_PRICE_CURR, 1, 0);
DRAWTEXT(JC_1_1, HH_B, '逢高减多'), COLORYELLOW;
DRAWICON(JC_1_1, H, 'ICO5');

JC_2_4 := IF(JC_PRICE_LAST < 0 AND JC_PRICE_CURR < 0 AND 
             JC_PRICE_LAST < JC_PRICE_CURR, 1, 0);
DRAWTEXT(JC_2_4, LL_B, '注意反弹'), COLORRED;
DRAWICON(JC_2_4, LL_A, 'ICO4');

SC_1_1 := IF(SC_PRICE_LAST > 0 AND SC_PRICE_CURR > 0 AND 
             SC_PRICE_LAST > SC_PRICE_CURR, 1, 0);
DRAWTEXT(SC_1_1, HH_B, '注意回落'), COLORGREEN;
DRAWICON(SC_1_1, H, 'ICO5');

SC_2_4 := IF(SC_PRICE_LAST < 0 AND SC_PRICE_CURR < 0 AND 
             SC_PRICE_LAST < SC_PRICE_CURR, 1, 0);
DRAWTEXT(SC_2_4, HH_B, '逢低减空'), COLORYELLOW;
DRAWICON(SC_2_4, H, 'ICO5');

// ================================
// 轨道带系统(注释部分,需要时取消注释)
// ================================
/*
LHS := 1;
A := EMA2(HIGH, 30) * LHS;
B := EMA2(LOW, 30) * LHS;
A1 := EMA2(HIGH, 150) * LHS, LINETHICK2;
B1 := EMA2(LOW, 150) * LHS, LINETHICK2;

S1 := CROSS(CLOSE, EMA2(HIGH, 150)) * LHS, LINETHICK2;
X1 := CROSS(EMA2(LOW, 150), CLOSE) * LHS, LINETHICK2;
WS1 := BARSLAST(S1) + 1 * LHS, LINETHICK2;
WX1 := BARSLAST(X1) + 1 * LHS, LINETHICK2;
SS1 := CROSS(SUM(S1, WX1), 0.5) * LHS, LINETHICK2;
XX1 := CROSS(SUM(X1, WS1), 0.5) * LHS, LINETHICK2;

S := CROSS(CLOSE, EMA2(HIGH, 30)) * LHS, LINETHICK2;
X := CROSS(EMA2(LOW, 30), CLOSE) * LHS, LINETHICK2;
WS := BARSLAST(S) + 1 * LHS, LINETHICK2;
WX := BARSLAST(X) + 1, LINETHICK2;
SS := CROSS(SUM(S, WX), 0.5) * LHS, LINETHICK2;
XX := CROSS(SUM(X, WS), 0.5) * LHS, LINETHICK2;

// 中间轨道带状线
STICKLINE(CLOSE > EMA2(HIGH, 150), EMA2(HIGH, 150), 
          EMA2(LOW, 150) * LHS, COLORRED, 1);
          
STICKLINE(CLOSE < EMA2(LOW, 150), EMA2(LOW, 150), 
          EMA2(HIGH, 150) * LHS, COLORBLUE, 1);

// 上线
PARTLINE(CLOSE > EMA2(HIGH, 150), EMA2(HIGH, 150) * LHS, COLORRED), LINETHICK5;
PARTLINE(CLOSE < EMA2(HIGH, 150), EMA2(HIGH, 150) * LHS, COLORGREEN), LINETHICK5;

// 下线
PARTLINE(CLOSE > EMA2(LOW, 150), EMA2(LOW, 150) * LHS, COLORRED);
PARTLINE(CLOSE < EMA2(LOW, 150), EMA2(LOW, 150) * LHS, COLORBLUE);

// K线特殊着色
STICKLINE(SUM(X, WS) > 0.5 && CLOSE >= OPEN, OPEN, CLOSE, COLORCYAN, 1);
STICKLINE(SUM(X, WS) > 0.5 && CLOSE < OPEN, OPEN, CLOSE, COLORCYAN, 0);

DRAWLINE(SUM(X, WS) > 0.5, HIGH, CLOSE > OPEN, CLOSE, COLORCYAN);
DRAWLINE(SUM(X, WS) > 0.5, LOW, CLOSE > OPEN, OPEN, COLORCYAN);
DRAWLINE(SUM(X, WS) > 0.5, HIGH, CLOSE < OPEN, OPEN, COLORCYAN);
DRAWLINE(SUM(X, WS) > 0.5, LOW, CLOSE < OPEN, CLOSE, COLORCYAN);
DRAWLINE(SUM(X, WS) > 0.5, HIGH, CLOSE = OPEN, LOW, COLORCYAN);

STICKLINE(SUM(S, WX) > 0.5 && CLOSE >= OPEN, OPEN, CLOSE, COLORRED, 1);
STICKLINE(SUM(S, WX) > 0.5 && CLOSE < OPEN, OPEN, CLOSE, COLORRED, 0);

DRAWLINE(SUM(S, WX) > 0.5, HIGH, CLOSE > OPEN, CLOSE, COLORRED);
DRAWLINE(SUM(S, WX) > 0.5, LOW, CLOSE > OPEN, OPEN, COLORRED);
DRAWLINE(SUM(S, WX) > 0.5, HIGH, CLOSE < OPEN, OPEN, COLORRED);
DRAWLINE(SUM(S, WX) > 0.5, LOW, CLOSE < OPEN, CLOSE, COLORRED);
DRAWLINE(SUM(S, WX) > 0.5, HIGH, CLOSE = OPEN, LOW, COLORRED);
// 将蓝色K线变成绿色的
*/

作者 admin

九稳量化交易系统 是一套高胜率策略趋势跟踪系统,系统最大优势就是开仓位置精确,信号不漂移 不延迟 同步行情信号 拒绝马后面!www.gao998.cn 微信 fxfx668998

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注