C1:=IF(CROSS(ma4,ma5),C,NULL);
C2:=IF(CROSS(ma5,ma4),C,NULL);
这样为什么不行?
3楼写的也可以,最后输出就看到值了
ma1:ma(c,10);
ma2:ma(c,15);
C1:=IF(CROSS(ma1,ma2),C,NULL);
C2:=IF(CROSS(ma2,ma1),C,NULL);
cc1:c1;
cc2:c2;
这样获得的收盘价是不是最近的两个上穿和下穿时的收盘价,因为图表中有多个上下穿均线情况,我能获得指定的上下穿行为时的收盘价吗?比如价格偏移最大的一次均线上下穿周期的两个收盘价?如何做到?
以下内容为程序代码:
1 #MAINCHART
2 AA:Sma(C,5,1);
3 BB:Sma(C,10,1);
4 Variable:TEMP(C),NumericSimple KEYPRICE;
5 LOWPRICE:=ROUND(C[0]*0.9,2);
6 HIGHPRICE:=ROUND(C[0]*1.1,2);
7 SHULIANG:=DataCount; //K线数
8 FOR I=1 TO SHULIANG-1 Step 1 Do Begin
9 TEMP[SHULIANG-I]=TEMP[SHULIANG-I-1]; //序列元素左移
10 END;
11 FOR I=LOWPRICE TO HIGHPRICE Step 0.01 Do Begin
12 TEMP[0]=I; //写入最新价,遍历所有可能取值
13 AAA:=Sma(TEMP,5,1);
14 BBB:=Sma(TEMP,10,1);
15 CCC:=AAA-BBB;
16 IF CCC[0]*CCC[1]<=0 Then //代表这个价位发生cross
17 Begin
18 KEYPRICE=I;
19 Break; //输出价格,退出遍历
20 END;
21 END;
22 DD:KEYPRICE,NoDraw;
这是前几年做的一个金死叉价格预测指标,是别的软件,参考一下