求教如何用循环方法实现该公式?

该公式的意思是:求这10条线间距的最短距离的那条线

求教如何用循环方法实现该公式?

拜托了

Var1:=EMA(C,5);
Var2:=EMA(C,6);
Var3:=EMA(C,7);
Var4:=EMA(c,8);
Var5:=EMA(C,9);
Var6:=EMA(C,10);
Var7:=EMA(C,11);
Var8:=EMA(C,12);
Var9:=EMA(C,13);
VarA:=EMA(C,14);
VarB:=EMA(C,15);
VarC:=Var2-Var1;
VarD:=Var3-Var2;
VarE:=Var4-Var3;
VarF:=Var5-Var4;
Var10:=Var6-Var5;
Var11:=Var7-Var6;
Var12:=Var8-Var7;
Var13:=Var9-Var8;
Var14:=VarA-Var9;
Var15:=VarB-VarA;
Var16:=MIN(VarC,MIN(VarD,MIN(VarE,MIN(VarF,MIN(Var10,MIN(Var11,MIN(Var12,MIN(Var13,MIN(Var14,Var15)))))))));
X: IF(Var16=Var15,VarB,IF(Var16=Var14,VarA,IF(Var16=Var13,Var9,IF(Var16=Var12,Var8,IF(Var16=Var11,Var7,IF(Var16=Var10,Var6,IF(Var16=VarF,Var5,IF(Var16=VarE,Var4,IF(Var16=VarD,Var3,IF(Var16=VarC,Var2,Var1))))))))));

[ 本帖最后由 mdke 于 2008-7-10 12:55 编辑 ]
我也来说两句 查看全部回复

最新回复

  • cwy (2008-7-10 22:55:04)

    参考:

    CODE:

    v5:=MA(C,5);
    V6:=MA(C,6);
    V7:=MA(C,7);
    V8:=MA(c,8);
    V9:=MA(C,9);
    V10:=MA(C,10);
    V11:=MA(C,11);
    V12:=MA(C,12);
    V13:=MA(C,13);
    V14:=MA(C,14);
    V15:=MA(C,15);
    VARIABLE:A[10]=0;
    x:=SYSPARAM(1);
    a[1]:V6[x]-V5[x];
    a[2]:=V7[x]-V6[x];
    a[3]:=V8[x]-V7[x];
    a[4]:=V9[x]-V8[x];
    a[5]:=V10[x]-V9[x];
    a[6]:=V11[x]-V10[x];
    a[7]:=V12[x]-V11[x];
    a[8]:=V13[x]-V12[x];
    a[9]:=V14[x]-V13[x];
    a[10]:=V15[x]-V14[x];
    mins:=999;
    for i=1 to 10 do
    mins:min(mins,a[i]);
  • mdke (2008-7-11 08:57:22)

    这样求的是最短距离,并非是那条均线?能再想想办法吗?
  • mdke (2008-7-11 08:59:19)

    比如这个距离 a[10] 是最短的,那么显示的是 v15这条均线
  • cwy (2008-7-12 00:16:21)

    CODE:

    v5:=MA(C,5);
    V6:=MA(C,6);
    V7:=MA(C,7);
    V8:=MA(c,8);
    V9:=MA(C,9);
    V10:=MA(C,10);
    V11:=MA(C,11);
    V12:=MA(C,12);
    V13:=MA(C,13);
    V14:=MA(C,14);
    V15:=MA(C,15);
    VARIABLE:A[10]=0;
    x:=SYSPARAM(1);
    a[1]:V6[x]-V5[x];
    a[2]:=V7[x]-V6[x];
    a[3]:=V8[x]-V7[x];
    a[4]:=V9[x]-V8[x];
    a[5]:=V10[x]-V9[x];
    a[6]:=V11[x]-V10[x];
    a[7]:=V12[x]-V11[x];
    a[8]:=V13[x]-V12[x];
    a[9]:=V14[x]-V13[x];
    a[10]:=V15[x]-V14[x];
    mins:=999;
    for i=1 to 10 do begin
    mins:min(mins,a[i])LINETHICK;
    s:=if(mins=a[i],i,s);
    end;
    ma(c,s+5);
    DRAWTEXTEX(1,0,0,0,'今日最短距离均线是:'+NUMTOSTR(s+5,0)+'日均线');
    [ 本帖最后由 cwy 于 2008-7-12 00:17 编辑 ]
  • mdke (2008-7-12 10:46:29)

    多谢了,妙
  • wgcpsxj (2008-8-01 12:53:54)

    学习一下 顶