这个公式思想是在主图中画出 两个高点连接的趋势线,最终目标是找出主图全部高点 全部画出 难过的是 用两种模式都不能成功

RUNMODE:0;//逐K线模式
VARIABLE:AAA[]=0;//定义一个空数组 准备保存高点对应序列位置
hhh:=if(ref(h,n)=hhv(h,2*n),BARPOS-n,0);//取得高点对应序列位置 N参数取 3---13
if hhh>0 then
AAA:=hhh;//把所有高点序列位置信息 赋值到 数组AAA
ss:UBOUND(aaa);//得到数组个数 找一个新股K线少的 目测没问题 显示是对的
//上面测试没问题,下面取出高点序列位置 容易造成 数组越界操作
IF NOT(ISLASTBAR) THEN EXIT;//不加这个下面语句wz wz1 报错-----数组越界操作
wz:aaa[ss];//最近一次高点序列位置
wz1:aaa[ss-1];//上一次高点序列位置
趋势线:DRAWLINE(BARPOS=wz,h,BARPOS=wz1,h,1 );//画线不显示,原因可能是语句 IF NOT(ISLASTBAR) THEN EXIT;
{RUNMODE:1;//序列线模式
VARIABLE:AAA[]=0;//定义一个空数组 准备保存高点对应序列位置
j:=1;//数组序列个数
hh:ref(h,n)=hhv(h,2*n);//定义高点,放在下面循环外
FOR I=1 TO DATACOUNT DO
BEGIN
if hh>0 then
begin
AAA[j]:=BARPOS-n;
j:=j+1;
end
end
ss:UBOUND(aaa);//得到数组个数 找一个新股K线少的 目测没问题 显示是0的 错误 应该是循环有问题 可是问题不明所以
jj:j;}//J值等于1 为初始值1,为什么没有循环
我已经为了这个问题想了个把月了
好想好想好想 有达人 能够帮我解惑
序列模式下定义不了数组的啊。你不能在序列模式下定义数组然后使用它。
你提供下你的原始思路的完整说明,我们看下是否有解决方案。
以下是引用FireScript在2020/9/25 13:14:26的发言:
序列模式下定义不了数组的啊。你不能在序列模式下定义数组然后使用它。
你提供下你的原始思路的完整说明,我们看下是否有解决方案。
思路很简单 就是画压力线 连接两个相邻的高点,以这两个高点为基准画线
高点的位置就是这个语句 hhh:=if(ref(h,n)=hhv(h,2*n),BARPOS-n,0);//取得高点对应序列位置 N参数取 3---13
RUNMODE:0;//逐K线模式
VARIABLE:AAA[]=0;//定义一个空数组 准备保存高点对应序列位置
hhh:=if(ref(h,n)=hhv(h,2*n),BARPOS-n,0);//取得高点对应序列位置 N参数取 3---13
if hhh>0 then
AAA:=hhh;//把所有高点序列位置信息 赋值到 数组AAA
ss:UBOUND(aaa);//得到数组个数 找一个新股K线少的 目测没问题 显示是对的
//上面测试没问题,下面取出高点序列位置 容易造成 数组越界操作
IF NOT(ISLASTBAR) THEN EXIT;//不加这个下面语句wz wz1 报错-----数组越界操作
wz:aaa[ss];//最近一次高点序列位置
wz1:aaa[ss-1];//上一次高点序列位置
趋势线:DRAWLINE(BARPOS=wz,h,BARPOS=wz1,h,1 );//画线不显示,原因可能是语句 IF NOT(ISLASTBAR) THEN EXIT;
这个就是我的完整思路阿,能编译通过 但是画线显示不了