查看完整版本: 正反自由周期K线

lillian2005 2006-6-18 07:22

正反自由周期K线

习作正反自由周期K线和前贴出之死叉金叉间大K线一套三式,合并于此与大家分享

1. 自由周期K线  由第1根K线往后算固定周期,与CWY老师的自由周期K线类似

//input:N1(20,1,1000);
if datacount<N1 then exit;
m1:=mod(barpos,N1);m:=if(m1=0,N1-1,m1-1);mz:=backset(m=N1-1 or islastbar,intpart(m/2)+1);
//vertline(m=0),colorred,pointdot;
//vertline(m=N1-1),colorgreen,pointdot;
bx:=barslast(m=0);by:=barslast(m=N1-1);
OO:ref(o,bx),linethick0;
Cy:=ref(C*(by=0),barslast(C*(by=0)));hhx:=hhv(h,bx+1)*(by=0);llx:=llv(if(L=0,100000,L),bx+1)*(by=0);  
cab:=IF(bx=0,CLOSE,0);cba:=IF(by=0,CLOSE,0);CC1:=c*0;cba1:=IF(by=0,HHX,0);HH1:=c*0;cba2:=IF(by=0,LLX,0);LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
  if cab[n]>0 then begin
    for z=n+N1-1 to ubound(cab) do begin
      if cba[z]>0 then begin
        for s=n to z-1 do begin
          CC1[s]:=cba[z];
          HH1[s]:=cba1[z];
          LL1[s]:=cba2[z];
        end;
        break;
      end;
    end;
  end;
end;

c1:=C;h3:=hhv(h,m[datacount]+1);L3:=LLV(if(L=0,1000000,L),m[datacount]+1);
CC:if(barpos>datacount-m[datacount]-1,c1[datacount],if(m=N1-1,C,CC1)),linethick0;
HH:if(barpos>datacount-m[datacount]-1,h3[datacount],if(m=N1-1,ref(HH1,1),HH1)),linethick0;
LL:if(barpos>datacount-m[datacount]-1,L3[datacount],if(m=N1-1,ref(LL1,1),LL1)),linethick0;

partline(m>0 and CC>=OO,CC),colorred;
partline(m>0 and CC<OO,CC),colorcyan;
partline(m>0 and CC>=OO,OO),colorred;
partline(m>0 and CC<OO,OO),colorcyan;
stickline((m=N1-1 or islastbar) and CC>=OO,OO,CC,1,0),colorred;
stickline((m=N1-1 or islastbar) and CC<OO,OO,CC,1,0),colorcyan;
stickline(m=0 and CC>=OO,OO,CC,1,0),colorred;
stickline(m=0 and CC<OO,OO,CC,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,HH,CC,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,HH,OO,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,OO,LL,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,CC,LL,1,0),colorcyan;



2. 反转自由K线  由最后1根K线往前算固定周期

//input:N1(25,1,1000);
if datacount<N1 then exit;
m3:=mod(barpos,N1);
m2:=barslast(barpos=m3[datacount]);
m1:=mod(m2,N1);
m:=if(m3[datacount]=0,mod(barslast(barpos=1),N1),if(m1=0,N1-1,m1-1));mz:=backset(m=N1-1,intpart(m/2)+1);
//vertline(m=0),colorred,pointdot;
//vertline(m=N1-1),colorgreen,pointdot;
bx:=barslast(m=0);by:=barslast(m=N1-1);
OO:ref(o,bx),linethick0;
Cy:=ref(C*(by=0),barslast(C*(by=0)));hhx:=hhv(h,bx+1)*(by=0);llx:=llv(if(L=0,100000,L),bx+1)*(by=0);  
cab:=IF(bx=0,CLOSE,0);cba:=IF(by=0,CLOSE,0);CC1:=c*0;cba1:=IF(by=0,HHX,0);HH1:=c*0;cba2:=IF(by=0,LLX,0);LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
  if cab[n]>0 then begin
    for z=n+N1-1 to ubound(cab) do begin
      if cba[z]>0 then begin
        for S=n to z-1 do begin
          CC1[S]:=cba[z];
          HH1[S]:=cba1[z];
          LL1[S]:=cba2[z];
        end;
        break;
      end;
    end;
  end;
end;

CC:if(m=N1-1,C,CC1),linethick0;
HH:if(m=N1-1,ref(HH1,1),HH1),linethick0;
LL:if(m=N1-1,ref(LL1,1),LL1),linethick0;

partline(m>0 and CC>=OO,CC),colorred;
partline(m>0 and CC<OO,CC),colorcyan;
partline(m>0 and CC>=OO,OO),colorred;
partline(m>0 and CC<OO,OO),colorcyan;
stickline(m=N1-1 and CC>=OO,OO,CC,1,0),colorred;
stickline(m=N1-1 and CC<OO,OO,CC,1,0),colorcyan;
stickline(m=0 and CC>=OO,OO,CC,1,0),colorred;
stickline(m=0 and CC<OO,OO,CC,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,HH,CC,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,HH,OO,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,OO,LL,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,CC,LL,1,0),colorcyan;

[[i] 本帖最后由 lillian2005 于 2006-6-18 08:58 编辑 [/i]]

lillian2005 2006-6-18 07:25

循环运算核心为台湾奇狐总版主cgjj所写,原帖 [url]http://www.chiefox.com.tw/bbs/showt...15&pagenumber=1[/url]

3. KDJ死叉金叉间大K线

djb:=if((c-LLV(LOW,9))/LLV(LOW,9)*100>0 ,c,0);
K:=SMA(djb,11,1),ColorFFFF00;
D:SMA(K,8,1);
J:3*K-2*D;

//vertline(CROSS(D,J)),colorred,pointdot;
//vertline(CROSS(J,D)),colorgreen,pointdot;

bsa:=barssince(CROSS(D,J));
bsb:=barssince(cross(J,D));
//bpa:=datacount-bsa[datacount]+1;
bpb:=datacount-bsb[datacount];
bx:=barslast(CROSS(D,J));
by:=barslast(CROSS(J,D));
bs:=if(bsb[datacount]<bsa[datacount] and barpos<=bpb,backset(barpos=bpb,intpart(bx/2)+1),backset(by=0,intpart(bx/2)+1));
by1:=if(bsb[datacount]<bsa[datacount] and barpos<=bpb,bx+1,if(by=0,ref(by,1)+1,by));
Cy:=ref(C*(by=0),barslast(C*(by=0)));
hhx:=hhv(h,bx+1)*(by=0);
llx:=llv(if(L=0,100000,L),bx+1)*(by=0);
cab:=IF(CROSS(D,J),CLOSE,0);
cba:=IF(CROSS(J,D),CLOSE,0);
CC1:=c*0;
cba1:=IF(CROSS(J,D),HHX,0);
HH1:=c*0;
cba2:=IF(CROSS(J,D),LLX,0);
LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
   if cab[n]>0 then begin
      for z=n+1 to ubound(cab) do begin
         if cba[z]>0 then begin
            for S=n to z-1 do begin
              CC1[S]:=cba[z];
              HH1[S]:=cba1[z];
              LL1[S]:=cba2[z];
            end;
            break;
         end;
      end;
    end;
end;

OO:ref(o,bx),linethick0,colorwhite;
CC:if(bsb[datacount]<bsa[datacount] and barpos=bpb,cy,if(by<>0 or (bsb[datacount]<bsa[datacount] and barpos<bpb),CC1,C)),linethick0,colorwhite;
HH:if(by<>0 or (bsb[datacount]<bsa[datacount] and barpos<bpb),HH1,ref(HH1,1)),linethick0,colorwhite;
LL:if(by<>0 or (bsb[datacount]<bsa[datacount] and barpos<bpb),LL1,ref(LL1,1)),linethick0,colorwhite;

partline(CC>=OO and bx>0 and by1>bx and cc<>0,oo),colorred;
partline(CC<OO and bx>0 and by1>bx and cc<>0,oo),colorcyan;
partline(CC>=OO and bx>0 and by1>bx and cc<>0,cc),colorred;
partline(CC<OO and bx>0 and by1>bx and cc<>0,cc),colorcyan;
stickline(CC>=OO and by=0,cc,oo,1,0),colorred;
stickline(CC<OO and by=0,cc,oo,1,0),colorcyan;
stickline(CC>=OO and bx=0 and cc<>0,cc,oo,1,0),colorred;
stickline(CC<OO and bx=0 and cc<>0,cc,oo,1,0),colorcyan;
stickline(CC>=OO and bs=1 and ref(bs,1)=0,hh,cc,0.1,0),colorred;
stickline(CC<OO and bs=1 and ref(bs,1)=0,hh,oo,0.1,0),colorcyan;
stickline(CC>=OO and bs=1 and ref(bs,1)=0,oo,ll,0.1,0),colorred;
stickline(CC<OO and bs=1 and ref(bs,1)=0,cc,ll,0.1,0),colorcyan;

[[i] 本帖最后由 lillian2005 于 2006-6-18 08:59 编辑 [/i]]

joneslee 2006-6-18 07:38

晕。零字节。

peter109 2006-6-18 08:17

零字節   應該是一時作業疏忽所造成的吧

lillian2005 2006-6-18 08:21

[quote]原帖由 [i]peter109[/i] 于 2006-6-18 08:17 发表
零字節   應該是一時作業疏忽所造成的吧 [/quote]

发生什么问题?何谓零字节?汇入不行吗?原码冗长,汇出为alg公式较为简单,唯公式名因为为繁体关系,可能会有乱码,请自行修改

[[i] 本帖最后由 lillian2005 于 2006-6-18 08:33 编辑 [/i]]

欣儿 2006-6-18 08:48

可能导出公式时出错,请重新导出公式上传,谢谢!

peter109 2006-6-18 08:52

匯入的時候 出現
檔案出錯: 試圖匯入未命名檔案之擋尾

lillian2005 兄可自行下載後看看結果就知道了

lillian2005 2006-6-18 08:55

是繁體簡體的問題,只好發出原碼了,希望沒有問題

jjdd 2006-6-18 10:13

好,还请先生加入自由周期均线?

忠剑飞扬 2006-6-18 16:56

感谢提供!!!!!!

何红 2006-6-19 22:14

感谢提供!!!!!!

lillian2005 2006-6-20 19:36

各类大K线通用公式

可用来制造多种大K线,下面提供的例子为周,月,年的大K线,分线中可用


[code]
{大K线通用公式}
// tj1为大K线起始点条件,tj2为大K线终止点条件
drawtext(barpos=sysparam(2),h,'参数1:(日K) 2:(周K) 3:(月K) 4:(年K)'),coloryellow,align4;
w:=datediff(ref(date,1),date)<>weekday-ref(weekday,1) or barpos=1,linethick0;//周大K线
m:=month<>ref(month,1) or barpos=1,linethick0;//月大K线
y:=year<>ref(year,1) or barpos=1,linethick0;//年大K线
d:=date<>ref(date,1) or barpos=1,linethick0; //日大K线,适用于分线周期
tj1:=if(p=1,d,if(p=2,w,if(p=3,m,y)));
tj2:=refx(tj1,1) or islastbar,linethick0;

//////////////////////////////////////////////////////////////////////// 以下为通式
//vertline(tj1=1),colorred,pointdot;
//vertline(tj2=1),coloryellow,pointdot;
con1:=tj1=1;
con2:=tj2=1;
bsa:=barssince(con1);
bsb:=barssince(con2);
bpb:=datacount-bsb[datacount];
bx:=barslast(con1);
by:=barslast(con2);
bs:=if(bsb[datacount]<bsa[datacount] and barpos<=bpb,backset(barpos=bpb,intpart(bx/2)+1),backset(by=0,intpart(bx/2)+1));
by1:=if(bsb[datacount]<bsa[datacount] and barpos<=bpb,bx+1,if(by=0,ref(by,1)+1,by));
Cy:=ref(C*(by=0),barslast(C*(by=0)));
hhx:=hhv(h,bx+1)*(by=0);
llx:=llv(if(L=0,100000,L),bx+1)*(by=0);
cab:=IF(con1,CLOSE,0);
cba:=IF(con2,CLOSE,0);
CC1:=c*0;
cba1:=IF(con2,HHX,0);
HH1:=c*0;
cba2:=IF(con2,LLX,0);
LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
   if cab[n]>0 then begin
      for z=n+1 to ubound(cab) do begin
         if cba[z]>0 then begin
            for S=n to z-1 do begin
              CC1[S]:=cba[z];
              HH1[S]:=cba1[z];
              LL1[S]:=cba2[z];
            end;
            break;
         end;
      end;
    end;
end;

OO:ref(o,bx),linethick0,colorwhite;
CC:if(bsb[datacount]<bsa[datacount] and barpos=bpb,cy,if(by<>0 or (bsb[datacount]<bsa[datacount] and barpos<bpb),CC1,C)),linethick0,colorwhite;
HH:if(by<>0 or (bsb[datacount]<bsa[datacount] and barpos<bpb),HH1,ref(HH1,1)),linethick0,colorwhite;
LL:if(by<>0 or (bsb[datacount]<bsa[datacount] and barpos<bpb),LL1,ref(LL1,1)),linethick0,colorwhite;

partline(CC>=OO and bx>0 and by1>bx and cc<>0,oo),colorred;
partline(CC<OO and bx>0 and by1>bx and cc<>0,oo),colorcyan;
partline(CC>=OO and bx>0 and by1>bx and cc<>0,cc),colorred;
partline(CC<OO and bx>0 and by1>bx and cc<>0,cc),colorcyan;
stickline(CC>=OO and by=0,cc,oo,1,0),colorred;
stickline(CC<OO and by=0,cc,oo,1,0),colorcyan;
stickline(CC>=OO and bx=0 and cc<>0,cc,oo,1,0),colorred;
stickline(CC<OO and bx=0 and cc<>0,cc,oo,1,0),colorcyan;
stickline(CC>=OO and bs=1 and ref(bs,1)=0,hh,cc,0.1,0),colorred;
stickline(CC<OO and bs=1 and ref(bs,1)=0,hh,oo,0.1,0),colorcyan;
stickline(CC>=OO and bs=1 and ref(bs,1)=0,oo,ll,0.1,0),colorred;
stickline(CC<OO and bs=1 and ref(bs,1)=0,cc,ll,0.1,0),colorcyan;
[/code]

czhao 2006-6-22 10:16

谢谢!

gdfsjian 2006-6-23 00:57

谢谢!!!!!!!

水牛 2006-6-23 22:29

:clap:

joneslee 2006-6-24 06:24

第二十

股海 2006-6-24 08:23

感谢

jsw945 2006-7-5 16:37

不知老师能否编写可自由选定起始日期、自由调节周期的大K 线公式?谢谢 !

lillian2005 2006-7-5 20:23

[quote]原帖由 [i]jsw945[/i] 于 2006-7-5 16:37 发表
不知老师能否编写可自由选定起始日期、自由调节周期的大K 线公式?谢谢 ! [/quote]

//input:N1(10,1,1000),D(1060103,1,2000000);
dd:=date=d;
bdd:barslast(dd),linethick0,colorwhite;
bp:barpos,linethick0,colorwhite;
bpdd:ref(barpos,bdd),linethick0,colorwhite;
vertline(dd),linethick3,colorwhite;

if N1>datacount-bpdd[datacount]+1 then exit;
m1:=mod(barpos-bpdd+1,N1);m:=if(m1=0,N1-1,m1-1);mz:=backset(m=N1-1 or islastbar,intpart(m/2)+1);
//vertline(m=0),colorred,pointdot;
//vertline(m=N1-1),colorgreen,pointdot;
bx:=barslast(m=0);by:=barslast(m=N1-1);
OO:ref(o,bx),linethick0;
Cy:=ref(C*(by=0),barslast(C*(by=0)));hhx:=hhv(h,bx+1)*(by=0);llx:=llv(if(L=0,100000,L),bx+1)*(by=0);  
cab:=IF(bx=0,CLOSE,0);cba:=IF(by=0,CLOSE,0);CC1:=c*0;cba1:=IF(by=0,HHX,0);HH1:=c*0;cba2:=IF(by=0,LLX,0);LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
  if cab[n]>0 then begin
    for z=n+N1-1 to ubound(cab) do begin
      if cba[z]>0 then begin
        for s=n to z-1 do begin
          CC1[s]:=cba[z];
          HH1[s]:=cba1[z];
          LL1[s]:=cba2[z];
        end;
        break;
      end;
    end;
  end;
end;

c1:=C;h3:=hhv(h,m[datacount]+1);L3:=LLV(if(L=0,1000000,L),m[datacount]+1);
CC:if(barpos>datacount-m[datacount]-1,c1[datacount],if(m=N1-1,C,CC1)),linethick0;
HH:if(barpos>datacount-m[datacount]-1,h3[datacount],if(m=N1-1,ref(HH1,1),HH1)),linethick0;
LL:if(barpos>datacount-m[datacount]-1,L3[datacount],if(m=N1-1,ref(LL1,1),LL1)),linethick0;

partline(m>0 and CC>=OO,CC),colorred;
partline(m>0 and CC<OO,CC),colorcyan;
partline(m>0 and CC>=OO,OO),colorred;
partline(m>0 and CC<OO,OO),colorcyan;
stickline((m=N1-1 or islastbar) and CC>=OO,OO,CC,1,0),colorred;
stickline((m=N1-1 or islastbar) and CC<OO,OO,CC,1,0),colorcyan;
stickline(m=0 and CC>=OO,OO,CC,1,0),colorred;
stickline(m=0 and CC<OO,OO,CC,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,HH,CC,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,HH,OO,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,OO,LL,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,CC,LL,1,0),colorcyan;

zzyjgjmmm 2006-8-10 19:45

厉害

shujenwen 2006-8-12 13:08

3Q!

3q3q3q!

tzwxlj1 2006-8-12 13:37

谢谢提供!

qxz 2006-8-16 11:06

你好

[quote]原帖由 [i]lillian2005[/i] 于 2006-6-18 07:25 发表
循环运算核心为台湾奇狐总版主cgjj所写,原帖 [url]http://www.chiefox.com.tw/bbs/showt...15&pagenumber=1[/url]

3. KDJ死叉金叉间大K线

djb:=if((c-LLV(LOW,9))/LLV(LOW,9)*100>0 ,c,0);
K:=SMA(djb,11,1),C ... [/quote]

KDJ死叉金叉间大K线很好,请您帮忙解决两个问题:
1.如图:
能否把KDJ死叉金叉间大K线也做成象绿箭头所示那样,从开盘价就开始画线。KDJ死叉金叉间大K线是等收盘价出现时才看到K线,很不方便。
2.连续3根KDJ死叉金叉间大K线阴线.
3.连续6根KDJ死叉金叉间大K线阴线.(6根大K线阴线间如有一个阳线可做阴线处理).
谢谢.

lillian2005 2006-8-16 19:55

KDJ死叉金叉间大K线很好,请您帮忙解决两个问题:
1.如图:
能否把KDJ死叉金叉间大K线也做成象绿箭头所示那样,从开盘价就开始画线。KDJ死叉金叉间大K线是等收盘价出现时才看到K线,很不方便。

沒有辦法做

2.连续3根KDJ
3.

看不懂你的條件要求

qxz 2006-8-16 20:51

你好

[quote]原帖由 [i]lillian2005[/i] 于 2006-8-16 19:55 发表
KDJ死叉金叉间大K线很好,请您帮忙解决两个问题:
1.如图:
能否把KDJ死叉金叉间大K线也做成象绿箭头所示那样,从开盘价就开始画线。KDJ死叉金叉间大K线是等收盘价出现时才看到K线,很不方便。

沒有辦法做

2 ... [/quote]

如图:
1.连续3根KDJ死叉金叉间大K线阴线.
2.连续3根KDJ死叉金叉间大K线阴线后有一阳线后又连续2个阴线.

wuji-006 2006-9-8 10:05

:clap::clap:

jjdd 2006-10-8 11:08

QUOTE:
原帖由 jsw945 于 2006-7-5 16:37 发表
不知老师能否编写可自由选定起始日期、自由调节周期的大K 线公式?谢谢 !
//input:N1(10,1,1000),D(1060103,1,2000000);
dd:=date=d;
bdd:barslast(dd),linethick0,colorwhite;
bp:barpos,linethick0,colorwhite;
bpdd:ref(barpos,bdd),linethick0,colorwhite;
vertline(dd),linethick3,colorwhite;

if N1>datacount-bpdd[datacount]+1 then exit;
m1:=mod(barpos-bpdd+1,N1);m:=if(m1=0,N1-1,m1-1);mz:=backset(m=N1-1 or islastbar,intpart(m/2)+1);
//vertline(m=0),colorred,pointdot;
//vertline(m=N1-1),colorgreen,pointdot;
bx:=barslast(m=0);by:=barslast(m=N1-1);
OO:ref(o,bx),linethick0;
Cy:=ref(C*(by=0),barslast(C*(by=0)));hhx:=hhv(h,bx+1)*(by=0);llx:=llv(if(L=0,100000,L),bx+1)*(by=0);  
cab:=IF(bx=0,CLOSE,0);cba:=IF(by=0,CLOSE,0);CC1:=c*0;cba1:=IF(by=0,HHX,0);HH1:=c*0;cba2:=IF(by=0,LLX,0);LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
  if cab[n]>0 then begin
    for z=n+N1-1 to ubound(cab) do begin
      if cba[z]>0 then begin
        for s=n to z-1 do begin
          CC1[s]:=cba[z];
          HH1[s]:=cba1[z];
          LL1[s]:=cba2[z];
        end;
        break;
      end;
    end;
  end;
end;

c1:=C;h3:=hhv(h,m[datacount]+1);L3:=LLV(if(L=0,1000000,L),m[datacount]+1);
CC:if(barpos>datacount-m[datacount]-1,c1[datacount],if(m=N1-1,C,CC1)),linethick0;
HH:if(barpos>datacount-m[datacount]-1,h3[datacount],if(m=N1-1,ref(HH1,1),HH1)),linethick0;
LL:if(barpos>datacount-m[datacount]-1,L3[datacount],if(m=N1-1,ref(LL1,1),LL1)),linethick0;

partline(m>0 and CC>=OO,CC),colorred;
partline(m>0 and CC<OO,CC),colorcyan;
partline(m>0 and CC>=OO,OO),colorred;
partline(m>0 and CC<OO,OO),colorcyan;
stickline((m=N1-1 or islastbar) and CC>=OO,OO,CC,1,0),colorred;
stickline((m=N1-1 or islastbar) and CC<OO,OO,CC,1,0),colorcyan;
stickline(m=0 and CC>=OO,OO,CC,1,0),colorred;
stickline(m=0 and CC<OO,OO,CC,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,HH,CC,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,HH,OO,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,OO,LL,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,CC,LL,1,0),colorcyan;


--------------------------------------------------------------------------------------

先生好!我试了试,公式不显示K线。哪里错了?

lillian2005 2006-10-8 16:45

這個公式是寫給日線用的,你可能不是放在日K上,此外改動下列幾個式子就可以自由選定起始點,最上面公式名後面那一個藍色數字就是游標所在的K線序號,把這個數字填寫在參數D的位置,參數N1係調節大K線的日數

barpos,linethick0,colorcyan;  //D的參數值
input:D(1,1,2000000),N1(10,1,1000);
dd:=barpos=d;

jjdd 2006-10-13 08:48

先生好,不麻烦先生了。看到公式中含未来数据,感觉做出来,用处也不会大。所以,还是打住吧。
就此感谢!

[[i] 本帖最后由 jjdd 于 2006-10-13 09:33 编辑 [/i]]

lillian2005 2006-10-13 09:35

N1:=datacount/2;
m1:=mod(barpos,N1);m:=if(m1=0,N1-1,m1-1);
mz:backset(m=N1-1 or islastbar,intpart(m/2)+1),linethick0;
//vertline(m=0),colorred,pointdot;
//vertline(m=N1-1),colorgreen,pointdot;
bx:=barslast(m=0);by:=barslast(m=N1-1);
OO:ref(o,bx),linethick0;
Cy:=ref(C*(by=0),barslast(C*(by=0)));hhx:=hhv(h,bx+1)*(by=0);llx:=llv(if(L=0,100000,L),bx+1)*(by=0);  
cab:=IF(bx=0,CLOSE,0);cba:=IF(by=0,CLOSE,0);CC1:=c*0;cba1:=IF(by=0,HHX,0);HH1:=c*0;cba2:=IF(by=0,LLX,0);LL1:=c*0;

for n=lbound(cab) to ubound(cab) do begin
  if cab[n]>0 then begin
    for z=n+N1-1 to ubound(cab) do begin
      if cba[z]>0 then begin
        for s=n to z-1 do begin
          CC1[s]:=cba[z];
          HH1[s]:=cba1[z];
          LL1[s]:=cba2[z];
        end;
        break;
      end;
    end;
  end;
end;

c1:=C;h3:=hhv(h,m[datacount]+1);L3:=LLV(if(L=0,1000000,L),m[datacount]+1);
CC:if(barpos>datacount-m[datacount]-1,c1[datacount],if(m=N1-1,C,CC1)),linethick0;
HH:if(barpos>datacount-m[datacount]-1,h3[datacount],if(m=N1-1,ref(HH1,1),HH1)),linethick0;
LL:if(barpos>datacount-m[datacount]-1,L3[datacount],if(m=N1-1,ref(LL1,1),LL1)),linethick0;

partline(m>0 and CC>=OO,CC),colorred;
partline(m>0 and CC<OO,CC),colorcyan;
partline(m>0 and CC>=OO,OO),colorred;
partline(m>0 and CC<OO,OO),colorcyan;
stickline((m=N1-1 or islastbar) and CC>=OO,OO,CC,1,0),colorred;
stickline((m=N1-1 or islastbar) and CC<OO,OO,CC,1,0),colorcyan;
stickline(m=0 and CC>=OO,OO,CC,1,0),colorred;
stickline(m=0 and CC<OO,OO,CC,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,HH,CC,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,HH,OO,1,0),colorcyan;
stickline(mz=1 and ref(mz=1,1)=0 and CC>=OO,OO,LL,1,0),colorred;
stickline(mz=1 and ref(mz=1,1)=0 and CC<OO,CC,LL,1,0),colorcyan;

ss:sumbars(mz=1 and ref(mz=1,1)=0,2),linethick0;
hx:=HH;Lx:=LL;
partline(barpos>datacount-ss[datacount]+1,Hx[1]),coloryellow,linethick2;
partline(barpos>datacount-ss[datacount]+1,Lx[1]),coloryellow,linethick2;

jjdd 2006-10-13 09:37

感谢,谢谢!

lillian2005 2006-10-13 14:49

[quote]原帖由 [i]jjdd[/i] 于 2006-10-13 08:48 发表
先生好,不麻烦先生了。看到公式中含未来数据,感觉做出来,用处也不会大。所以,还是打住吧。
就此感谢! [/quote]

其實不管如何寫,要畫成一個大K線沒有用到未來函數是不可能的,而在你的問題狀況下,當第2根K線形成時,第1根K線早已是過去的東西,也就無所謂未來的問題了,問題只在那兩條橫線是不是真的有用

xujie 2006-10-13 16:28

ok

soprano 2006-10-17 19:19

GOOD~頂:clap:

yzx11 2006-10-21 23:39

谢谢!

liuxinliu 2007-1-7 12:30

谢谢提供!

fh8856 2007-1-16 14:50

感谢

刀小 2007-1-22 00:57

感谢提供!!!!!!

czjdj 2007-3-22 11:40

谢谢提供!

steven401 2007-3-23 15:13

谢谢提供

绿色通道 2007-5-11 05:26

谢谢提供!

steven401 2007-5-11 16:35

感谢提供 !!

steven401 2007-5-15 15:40

[quote]原帖由 [i]lillian2005[/i] 于 2006-6-20 19:36 发表
可用来制造多种大K线,下面提供的例子为周,月,年的大K线,分线中可用



{大K线通用公式}
// tj1为大K线起始点条件,tj2为大K线终止点条件
drawtext(barpos=sysparam(2),h,'参数1:(日K) 2:(周K) 3:(月K) 4:(年 ... [/quote]

下載公式導入系統測試感覺很好很方便 , 謝謝 lillian , 不過個人習慣以三日k來操作 ,嘗試改了兩行   

" t:=datediff(ref(date,1),date)<>multiday-ref(multiday,1) or barpos=1,linethick0;//三日大K線 "

"  tj1:=if(p=0,t,if(p=1,d,if(p=2,w,if(p=3,m,y))));"

可是系統不接受,請教樓主如何修改才可用多日k(三日k) , 謝謝!!

lillian2005 2007-5-15 20:23

[quote]原帖由 [i]steven401[/i] 于 2007-5-15 15:40 发表


下載公式導入系統測試感覺很好很方便 , 謝謝 lillian , 不過個人習慣以三日k來操作 ,嘗試改了兩行   

" t:=datediff(ref(date,1),date)<>multiday-ref(multiday,1) or barpos=1,linethick0;// ... [/quote]
其實使用多日K不必如此大費周章,只要把參數固定就行了,此外多日k線的寫法仍有多種,也不一定要運用到循環這麼難懂的公式,下面再提供一個寫法給論壇上的朋友參考

input:N(3,1,1000);
if datatype<6 then exit;
if N=1 then begin
   開:O,linethick0;高:H,linethick0;低:L,linethick0;收:C,linethick0;
   stickline(C>=O,H,C,0.5,0),colorred;
   stickline(C>=O,O,L,0.5,0),colorred;
   stickline(C>=O,O,C,8,1),colorred;
   stickline(C<O,H,O,0.5,0),colorwhite;
   stickline(C<O,L,C,0.5,0),colorwhite;
   stickline(C<O,O,C,8,0),colorwhite;
end;
W:=barslast(mod(barpos,N)=1),linethick0;
w1:=w[datacount]/2,linethick0;
p:=round((N/2)-1),linethick0;
p1:=round(w1),linethick0;
wp:=w-p,linethick0;

OO:ref(O,w),linethick0;
HH:refx(HHV(H,w+1),N-1-w),linethick0;
LL:refx(LLV(L,w+1),N-1-w),linethick0;
CC:refx(C,N-1-w),linethick0;

stickline((CC>=OO and w=p and barpos<datacount-w[datacount]) or (CC>=OO and w[datacount]=0 and islastbar) or (CC>=OO and range(w[datacount],0,N) and barpos=datacount-p1),HH,CC,0.5,0),colorred;
stickline((CC>=OO and w=p and barpos<datacount-w[datacount]) or (CC>=OO and w[datacount]=0 and islastbar) or (CC>=OO and range(w[datacount],0,N) and barpos=datacount-p1),OO,LL,0.5,0),colorred;
partline(CC>=OO and w>0,OO),colorred;
partline(CC>=OO and w>0,CC),colorred;
stickline(CC>=OO and w=0,CC,OO,0.5,0),colorred;
stickline(CC>=OO and (w=N-1 or islastbar),CC,OO,0.5,0),colorred;
stickline(CC>=OO and w[datacount]=0 and islastbar,CC,OO,8,1),colorred;

stickline((CC<OO and w=p and barpos<datacount-w[datacount]) or (CC<OO and w[datacount]=0 and islastbar) or (CC<OO and range(w[datacount],0,N) and barpos=datacount-p1),HH,OO,0.5,0),colorwhite;
stickline((CC<OO and w=p and barpos<datacount-w[datacount]) or (CC<OO and w[datacount]=0 and islastbar) or (CC<OO and range(w[datacount],0,N) and barpos=datacount-p1),CC,LL,0.5,0),colorwhite;
partline(CC<OO and w>0,OO),colorwhite;
partline(CC<OO and w>0,CC),colorwhite;
stickline(CC<OO and w=0,CC,OO,0.5,0),colorwhite;
stickline(CC<OO and (w=N-1 or islastbar),CC,OO,0.5,0),colorwhite;
stickline(CC<OO and w[datacount]=0 and islastbar,CC,OO,8,1),colorwhite;

随风1216 2007-5-15 21:11

谢谢老师!!!

steven401 2007-5-16 15:47

[quote]原帖由 [i]lillian2005[/i] 于 2007-5-15 20:23 发表

其實使用多日K不必如此大費周章,只要把參數固定就行了,此外多日k線的寫法仍有多種,也不一定要運用到循環這麼難懂的公式,下面再提供一個寫法給論壇上的朋友參考

input:N(3,1,1000);
if datatype<6 then e ... [/quote]

感謝老師指導 , 謝謝!!
祝老師發財!!!

zdq18201 2007-5-16 20:39

状态 离线  谢谢提供!

zdq18201 2007-5-18 12:01

能否做到以任意一根K线,画任意宽的K线???如:我想把一个整理不平台作一个大K线,而用上面的公式不是左了,就是右了。
页: [1] 2
查看完整版本: 正反自由周期K线