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
第二十
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线,而用上面的公式不是左了,就是右了。