编写指标源码需要理解指标的定义和计算过程,并结合相应的软件功能来实现。以下是一些基本的步骤和技巧:
确定指标含义
明确指标的具体含义,例如“移动平均线”是用一定时间内的收盘价的平均值来代表当前的价格走势。
选择编程语言
根据使用的软件选择合适的编程语言。例如,在Excel中可以使用“AVERAGE”函数,而在通达信等股票分析软件中,通常使用特定的指标编写语言,如K线语言、买卖策略语言等。
熟悉编程语言规则
查阅相关文档和官方给出的例子,了解所使用的编程语言的语法规则,包括字符表示法、操作符及其优先级、基本函数等。
编写基本逻辑
根据指标的定义,开始编写基本逻辑。例如,计算移动平均线时,需要将时间段内的收盘价相加,然后除以时间段的天数。
使用内置函数
利用软件提供的内置函数库,如求平均值、移动平均、判断线交叉等,可以简化代码编写过程。
注释和测试
在代码中加入注释,解释每行代码的作用,方便后续维护和修改。同时,进行充分的测试,确保指标的正确性和稳定性。
```java
public void setKDJ(int n, int m1, int m2, List firstData, List secondData, List firstList){
firstList.clear();
if (mChartData == null) return;
// 计算K值
double[] kValues = new double[n];
kValues = 33.33; // 第一天的K值
for (int i = 1; i < n; i++) {
kValues[i] = 2 / 3 * kValues[i - 1] + 1 / 3 * firstData.get(i - 1).getClose();
}
// 计算D值
double[] dValues = new double[n];
dValues = 11.11; // 第一天的D值
for (int i = 1; i < n; i++) {
dValues[i] = 2 * dValues[i - 1] - dValues[i - 2] + kValues[i];
}
// 计算J值
double[] jValues = new double[n];
jValues = 77.78; // 第一天的J值
for (int i = 1; i < n; i++) {
jValues[i] = 3 * kValues[i] - 2 * dValues[i];
}
// 将计算结果存入列表
for (int i = 0; i < n; i++) {
firstList.add(new KDJValue(i + 1, kValues[i], dValues[i], jValues[i]));
}
}
// KDJ值类
class KDJValue {
int day;
double k;
double d;
double j;
public KDJValue(int day, double k, double d, double j) {
this.day = day;
this.k = k;
this.d = d;
this.j = j;
}
}
```
建议
理解指标:在编写指标源码之前,确保完全理解指标的计算方法和逻辑。
实践:通过编写简单的指标来熟悉编程语言和工具的使用。
调试:在编写过程中不断测试和调试,确保指标的正确性。
文档:编写详细的注释和文档,方便他人理解和维护代码。