文华期货指标源码怎么用?

99ANYc3cd6 期货 1

下面我将为您提供一个全面的指南,包括:

文华期货指标源码怎么用?-第1张图片-华宇铭诚
(图片来源网络,侵删)
  1. 基础语法和结构:让您快速上手。
  2. 常用函数示例:涵盖趋势、震荡、成交量等。
  3. 经典指标完整源码:如均线、MACD、KDJ等。
  4. 如何编写和调试自己的指标:从零开始创建一个指标。

基础语法和结构

一个文华指标通常由以下几个部分组成:

// 1. 指标名称
指标名称: MACD
// 2. 参数定义(可选)
PARAM = 12; // 快速EMA周期
PARAM2 = 26; // 慢速EMA周期
PARAM3 = 9; // DEA周期
// 3. 变量定义(可选)
VARIABLE: DIF = 0; // DIF线
VARIABLE: DEA = 0; // DEA线
VARIABLE: MACD_HIST = 0; // MACD柱状图
// 4. 主计算逻辑
DIF = EMA(CLOSE, PARAM) - EMA(CLOSE, PARAM2); // 计算DIF
DEA = EMA(DIF, PARAM3); // 计算DEA
MACD_HIST = 2 * (DIF - DEA); // 计算MACD柱状图,放大2倍
// 5. 绘图指令
PLOT(DIF, "DIF", COLOR_RED); // 绘制DIF线,颜色为红色
PLOT(DEA, "DEA", COLOR_GREEN); // 绘制DEA线,颜色为绿色
PLOT(MACD_HIST, "MACD", COLOR_STICK); // 绘制MACD柱状图,用颜色棒表示
// 6. 输出信号(可选)
IF DIF > DEA THEN BEGIN
    DRAWICON(CROSS(DIF, DEA), LOW, 1); // 当DIF上穿DEA时,在最低价处画一个向上图标
END;

核心概念:

  • CLOSE, OPEN, HIGH, LOW, VOLUME: 这些是内置的变量,代表当前周期的收盘价、开盘价、最高价、最低价和成交量。
  • PARAM, PARAM2, ...: 用户可以在图表上调整的参数。
  • VARIABLE: 用于在指标运行过程中存储中间计算结果的变量。
  • PLOT: 绘制指标线或柱状图。
    • PLOT(数值, "名称", 颜色)
    • COLOR_STICK 表示绘制成柱状图。
  • IF...THEN...BEGIN...END: 条件判断语句。
  • CROSS(A, B): 函数,表示A上穿B。
  • DRAWICON(条件, 位置, 图标代码): 在满足条件的K线上绘制一个图标。

    图标代码:1=向上箭头, 2=向下箭头, 3=圆形, 4=叉号, 等等。


常用函数示例

文华财经提供了丰富的内置函数。

文华期货指标源码怎么用?-第2张图片-华宇铭诚
(图片来源网络,侵删)
函数类别 函数名 说明 示例
趋势指标 MA(CLOSE, N) 简单移动平均线 MA5 = MA(CLOSE, 5);
EMA(CLOSE, N) 指数移动平均线 EMA12 = EMA(CLOSE, 12);
SMA(CLOSE, N, M) 平滑移动平均线 SMA10 = SMA(CLOSE, 10, 2);
ATR(N) 平均真实波幅 ATR14 = ATR(14);
震荡指标 RSI(CLOSE, N) 相对强弱指数 RSI6 = RSI(CLOSE, 6);
KDJ(K周期, D周期, J周期) 随机指标 需要定义三个变量来接收K, D, J值
CCI(N) 顺势指标 CCI20 = CCI(20);
成交量指标 VOL 成交量 VOLUME = VOL;
VMA(N) 成交量均线 VMA5 = VMA(5);
AMOUNT 成交额 TOTAL_AMOUNT = AMOUNT;
逻辑函数 CROSS(A, B) A上穿B IF CROSS(CLOSE, MA20) THEN ...
CROSSDOWN(A, B) A下穿B IF CROSSDOWN(CLOSE, MA20) THEN ...
COUNT(条件, N周期) N周期内满足条件的次数 IF COUNT(CLOSE > REF(CLOSE, 1), 5) = 5 THEN ...
REF(数据, N) 引用N周期前的数据 REF(CLOSE, 1) 是昨天的收盘价
HHV(数据, N周期) N周期内的最高值 HHV(HIGH, 20) 是20日最高价
LLV(数据, N周期) N周期内的最低值 LLV(LOW, 20) 是20日最低价

经典指标完整源码

布林带

布林带由中轨(简单移动平均线)、上轨(中轨+2倍标准差)和下轨(中轨-2倍标准差)组成。

// 指标名称: 布林带
// 参数
N = 20; // 周期
P = 2;  // 标准差倍数
// 变量
VARIABLE: MID = 0; // 中轨
VARIABLE: UPPER = 0; // 上轨
VARIABLE: LOWER = 0; // 下轨
// 计算
MID = MA(CLOSE, N);
UPPER = MID + P * STD(CLOSE, N); // STD是计算标准差的函数
LOWER = MID - P * STD(CLOSE, N);
// 绘图
PLOT(MID, "MID", COLOR_WHITE); // 中轨用白色
PLOT(UPPER, "UPPER", COLOR_RED); // 上轨用红色
PLOT(LOWER, "LOWER", COLOR_GREEN); // 下轨用绿色

KDJ

KDJ指标需要三个变量来接收K, D, J值。

// 指标名称: KDJ
// 参数
N = 9; // K, D的周期
M1 = 3; // K的平滑周期
M2 = 3; // D的平滑周期
// 变量
VARIABLE: RSV = 0;
VARIABLE: K_VALUE = 50; // 初始值设为50
VARIABLE: D_VALUE = 50; // 初始值设为50
VARIABLE: J_VALUE = 0;
// 计算
RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100;
K_VALUE = SMA(RSV, M1, 1); // 使用SMA平滑
D_VALUE = SMA(K_VALUE, M2, 1);
J_VALUE = 3 * K_VALUE - 2 * D_VALUE;
// 绘图
PLOT(K_VALUE, "K", COLOR_RED);
PLOT(D_VALUE, "D", COLOR_BLUE);
PLOT(J_VALUE, "J", COLOR_CYAN);

RSI (相对强弱指数)

// 指标名称: RSI
// 参数
N1 = 6;
N2 = 12;
N3 = 24;
// 变量
VARIABLE: RSI1 = 0;
VARIABLE: RSI2 = 0;
VARIABLE: RSI3 = 0;
// 计算
RSI1 = RSI(CLOSE, N1);
RSI2 = RSI(CLOSE, N2);
RSI3 = RSI(CLOSE, N3);
// 绘图
PLOT(RSI1, "RSI6", COLOR_RED);
PLOT(RSI2, "RSI12", COLOR_GREEN);
PLOT(RSI3, "RSI24", COLOR_BLUE);
// 可选:绘制超买超卖区
PLOT(70, "超买线", COLOR_GRAY);
PLOT(30, "超卖线", COLOR_GRAY);

如何编写和调试自己的指标(实战案例)

让我们来创建一个简单的“双均线金死叉”交易信号指标。

目标:

文华期货指标源码怎么用?-第3张图片-华宇铭诚
(图片来源网络,侵删)
  1. 绘制一条20日均线(MA20)和一条60日均线(MA60)。
  2. 当短期均线上穿长期均线时,在K线上画一个红色的“买”字。
  3. 当短期均线下穿长期均线时,在K线上画一个绿色的“卖”字。

步骤:

  1. 新建指标

    • 在文华财经软件中,右键点击图表 -> “指标公式” -> “新建公式”。
    • 给指标起个名字,双均线信号”。
  2. 编写源码

// 指标名称: 双均线信号
// 描述: 根据双均线交叉产生交易信号
// 参数
N1 = 20; // 短期均线周期
N2 = 60; // 长期均线周期
// 变量
VARIABLE: MA_SHORT = 0; // 短期均线值
VARIABLE: MA_LONG = 0;  // 长期均线值
// 计算均线
MA_SHORT = MA(CLOSE, N1);
MA_LONG = MA(CLOSE, N2);
// 绘制均线
PLOT(MA_SHORT, "MA" + NUMTOSTR(N1, 0), COLOR_RED); // 红色短线
PLOT(MA_LONG, "MA" + NUMTOSTR(N2, 0), COLOR_BLUE); // 蓝色长线
// 生成信号
// 1. 金叉信号:当MA_SHORT上穿MA_LONG时
IF CROSS(MA_SHORT, MA_LONG) THEN BEGIN
    DRAWTEXT(CROSS(MA_SHORT, MA_LONG), LOW, '买'), COLOR_RED; // 在最低价位置显示“买”字
END;
// 2. 死叉信号:当MA_SHORT下穿MA_LONG时
IF CROSSDOWN(MA_SHORT, MA_LONG) THEN BEGIN
    DRAWTEXT(CROSSDOWN(MA_SHORT, MA_LONG), HIGH, '卖'), COLOR_GREEN; // 在最高价位置显示“卖”字
END;

代码解释:

  • NUMTOSTR(N1, 0): 这是一个函数,将数字N1转换为字符串,这样指标名称就能动态显示为MA20MA60
  • DRAWTEXT(条件, 位置, "文字内容", 颜色): 在满足条件的K线的指定位置绘制文字。
    • LOW表示在K线的最低价下方绘制。
    • HIGH表示在K线的最高价上方绘制。
  1. 编译和应用
    • 点击“测试公式”,检查语法是否正确。
    • 没有问题后,点击“确定”保存。
    • 在图表上,右键 -> “指标公式” -> 选择你刚创建的“双均线信号”并加载。

你的图表上就会出现20日和60日均线,并且在金叉死叉的地方出现“买”和“卖”的提示文字。

重要提示

  • 历史数据回测:文华财经的WH8软件提供了强大的历史回测功能,编写好指标后,可以在“交易系统”模块中将其设置为交易信号,进行策略回测,评估其历史表现。
  • 止损止盈:一个完整的交易策略通常需要包含止损和止盈逻辑,你可以在IF语句中加入更多条件,IF CROSS(MA_SHORT, MA_LONG) AND HIGH > REF(HIGH, 1) * 1.02 THEN ... 来实现更复杂的入场条件。
  • 寻求帮助:文华官网、论坛和用户群是学习和交流的好地方,可以找到很多现成的源码和解决问题的思路。

希望这份详细的指南能帮助你理解和编写文华财经的期货指标!

标签: 文华期货指标源码安装教程 文华期货指标源码编写方法 文华期货指标源码常见问题解答

抱歉,评论功能暂时关闭!