本书中文版由鼎砥投资论坛金融研究员 stu先生 翻译以下是各种周期DELTA的彩线绘制源码,适用于飞狐软件。各段代码都可用于主图和副图,并提醒注意,每种DELTA有各自适用的K线周期短期DELTA(STD)://叠加K线——如果用于主图,以下五行可以不要+ B* d7 D0 g: B4 F0 fSTICKLINE(OPEN>CLOSE, LOW,HIGH, 0,0),COLORWHITE;STICKLINE(OPEN>CLOSE, CLOSE,OPEN, 8,0),COLORWHITE;' J0 ^' S0 }- a5 r* p& eSTICKLINE(OPEN<=CLOSE,OPEN, CLOSE,8,1),COLORRED;STICKLINE(OPEN<=CLOSE,CLOSE,HIGH, 0,0),COLORRED;STICKLINE(OPEN<=CLOSE,LOW,OPEN, 0,0),COLORRED;; G$ M! @* Y, n/ y1 P- `8 q6 z//光标所在画面的最高价和最低价- J! e' {% d$ xHH:=SYSPARAM(4);4 g- `' K- C; c# P' Z8 uLL:=SYSPARAM(5);+ q5 v$ X5 R$ y/ E$ Q, C. x//判断是否绘制彩线的位置日:=date; //求当前K线的日期6 v B( w p, H- T; oisColor:=if(日>ref(日,1) or BARSCOUNT(c)=1,1,0); //当K线的日期发生变化时,就是新的彩线绘制位置DIS:=if(BARSCOUNT(C)=1,0,日-ref(日,1)-1); //星期六、星期日以及节假日也要考虑6 B( g) m$ J7 f) ^+ `$ g) qNum:=count(isColor,0)+DIS; //计算彩线个数8 ^2 x* `4 O( W: ~4 o/ M//绘制彩线STICKLINE(isColor and mod(Num,4)=0,LL,HH,1,0),colorred ;; L: v4 @+ ?- i% t/ xSTICKLINE(isColor and mod(Num,4)=1,LL,HH,1,0),coloryellow ;8 E6 q7 r7 S' [3 d4 Z4 T' kSTICKLINE(isColor and mod(Num,4)=2,LL,HH,1,0),colorblue ;9 J3 _1 T) j5 HSTICKLINE(isColor and mod(Num,4)=3,LL,HH,1,0),colorwhite ;适用于60分钟线、30分钟线,15分钟线,5分钟线。* J8 V$ Q4 e# Z5 |$ C; V8 e& t) s. [1 E# Q# J' F# c: ]; P2 S(补充:黑体部分很重要,原先给出的代码缺少这句,即忽略了周末和节假日的处理。根据吉姆.索罗门的解释,周末和节假日也在DELTA序列内,虽然它没有K线。原文中用双线来标注周末和节假日,我觉得,只要正确按照顺序标注彩线即可,因此不采用双线。另外,本程序现在已经处理任意长短的节假日和周末。)中短期DELTA(ITD):. s% j* h/ p1 Z( K//叠加K线--如果用于主图,以下五行可以不要STICKLINE(OPEN>CLOSE, LOW,HIGH, 0,0),COLORWHITE;STICKLINE(OPEN>CLOSE, CLOSE,OPEN, 8,0),COLORWHITE;STICKLINE(OPEN<=CLOSE,OPEN, CLOSE,8,1),COLORRED;9 N0 f5 F7 T4 P. ?2 oSTICKLINE(OPEN<=CLOSE,CLOSE,HIGH, 0,0),COLORRED;STICKLINE(OPEN<=CLOSE,LOW,OPEN, 0,0),COLORRED;, j, Y6 B% j' `, X! X' ], Y/ k' d5 e1 X J//光标所在画面的最高价和最低价* E( V3 c4 t7 r% i; c( p) WHH:=SYSPARAM(4);LL:=SYSPARAM(5);5 Z* @0 K- }4 u; I//判断是否绘制彩线的位置农历smi49liesDay,LineThick0;) J, G. s- @) t$ o( IisFirst:=if(农历>Ref(农历,1) and ref(农历,1)<15 and 农历>15,1,0);isColor:=iif(lday=15 or isFirst,1,0); //农历15,或者农历15后的第一个交易日,就是绘制彩线的位置& ?- B1 a$ x! [' |Num:=count(isColor,0); //计算彩线个数7 Y7 o- R; P/ d, }' \//绘制彩线4 u5 Z T( |, M6 I( o0 fSTICKLINE(isColor and mod(Num,4)=0,ll,hh,1,0),colorred ;STICKLINE(isColor and mod(Num,4)=1,ll,hh,1,0),coloryellow ; B0 M( A5 C* oSTICKLINE(isColor and mod(Num,4)=2,ll,hh,1,0),colorblue ;STICKLINE(isColor and mod(Num,4)=3,ll,hh,1,0),colorwhite ;6 K9 Z( ]) j# d. H6 z, j# i9 g9 W! V0 u c适用于日线,周线好像亦可,推荐用于日线。中期DELTA(MTD):) i8 h, J3 r7 L: f( C5 D, r% i2 V, L* F//叠加K线——如果用于主图,以下五行可以不要- a% d: J+ P4 m2 p6 s3 x$ SSTICKLINE(OPEN>CLOSE, LOW,HIGH, 0,0),COLORWHITE;STICKLINE(OPEN>CLOSE, CLOSE,OPEN, 8,0),COLORWHITE; C; z: ] \* {; `8 N9 pSTICKLINE(OPEN<=CLOSE,OPEN, CLOSE,8,1),COLORRED;/ G/ g, L8 s' P8 [STICKLINE(OPEN<=CLOSE,CLOSE,HIGH, 0,0),COLORRED;STICKLINE(OPEN<=CLOSE,LOW,OPEN, 0,0),COLORRED;. I! G8 R' s. ^/ y' P. {6 ]8 w1 e0 F3 y5 |1 g* @- V9 d//光标所在画面的最高价和最低价, b' r' B; f; xHH:=SYSPARAM(4);LL:=sysparam(5);2 |1 Q! ~) g: u3 y//判断是否绘制彩线的位置农历smi49liesDay,LineThick0;isFirst:=if(lday=15 or (农历>Ref(农历,1) and ref(农历,1)<15 and 农历>15),1,0); //农历15,或者农历15后的第一个交易日9 L; P4 K' V& y- D7 Q7 {isColor:=if(mod(count(isFirst,0),3)=1 and isFirst,1,0),linethick0; //每三个农历满月的位置绘制彩线6 y$ y' K3 R5 H* G7 XNum:=count(isColor,0); //计算彩线个数+ _8 w# j# U0 o$ ^+ O//绘制彩线STICKLINE(isColor and mod(Num,4)=0,ll,hh,1,0),colorred ;4 @- s3 m/ ?$ t' jSTICKLINE(isColor and mod(Num,4)=1,ll,hh,1,0),coloryellow ;, v6 f, d8 e6 C9 _ s8 DSTICKLINE(isColor and mod(Num,4)=2,ll,hh,1,0),colorblue ;STICKLINE(isColor and mod(Num,4)=3,ll,hh,1,0),colorwhite ;适用于日线、周线长期DELTA(LTD):1 N' q& j( ^( t$ e9 ]' T- b//叠加K线--如果用于主图,以下五行可以不要STICKLINE(OPEN>CLOSE, LOW,HIGH, 0,0),COLORWHITE;STICKLINE(OPEN>CLOSE, CLOSE,OPEN, 8,0),COLORWHITE;' S1 ~! p# R9 t: f& \' p/ \STICKLINE(OPEN<=CLOSE,OPEN, CLOSE,8,1),COLORRED;5 v3 W/ E; ]5 `6 B1 ySTICKLINE(OPEN<=CLOSE,CLOSE,HIGH, 0,0),COLORRED;STICKLINE(OPEN<=CLOSE,LOW,OPEN, 0,0),COLORRED;. O* l- G: |1 ], [//光标所在画面的最高价和最低价HH:=SYSPARAM(4);, B1 y9 f+ ~% N0 ?LL:=sysparam(5);$ N8 Y/ _& p. W% [% G. Q4 _8 C( D3 t/ t& q/ Q//判断是否绘制彩线的位置年:=year;- j- w; \# a/ ^4 B7 sisColor:=if(年>ref(年,1),1,0); //当K线的年份发生变化,就是绘制彩线的位置Num:=count(isColor,0); //计算彩线个数//绘制彩线STICKLINE(isColor and mod(Num,4)=0,ll,hh,1,0),colorred ;: B4 q; l3 j. R% BSTICKLINE(isColor and mod(Num,4)=1,ll,hh,1,0),coloryellow ;STICKLINE(isColor and mod(Num,4)=2,ll,hh,1,0),colorblue ;% |6 h* _1 W- Z7 J4 g& eSTICKLINE(isColor and mod(Num,4)=3,ll,hh,1,0),colorwhite ;- i' H' P4 A7 E2 g适用于日线、周线、月线,推荐用于周线、月线。超长期DELTA(SLTD):+ _! `7 t' T# m* `5 Y/ i- ~//叠加K线--如果用于主图,以下五行可以不要9 \3 y4 q5 e! R4 c/ `STICKLINE(OPEN>CLOSE, LOW,HIGH, 0,0),COLORWHITE;: X5 u4 }0 _- w' Z$ W# d+ q: _STICKLINE(OPEN>CLOSE, CLOSE,OPEN, 8,0),COLORWHITE;STICKLINE(OPEN<=CLOSE,OPEN, CLOSE,8,1),COLORRED;0 T! @ x4 O% x3 y& D% L [STICKLINE(OPEN<=CLOSE,CLOSE,HIGH, 0,0),COLORRED;8 n0 m. ?$ b2 J$ L8 @8 _1 RSTICKLINE(OPEN<=CLOSE,LOW,OPEN, 0,0),COLORRED;. g) [) Q: Y# P2 e; `; C: M- g//光标所在画面的最高价和最低价HH:=SYSPARAM(4);LL:=SYSPARAM(5);8 e3 C' |! R# ~4 y6 `//判断是否绘制彩线的位置# v3 J+ p* T0 ` X u月:=month;$ s8 K* v4 N; R. FisFirst:=if(月>ref(月,1) or 月[isColor:=if(mod(count(isFirst,0),57)=1 and isFirst,1,0); //每57个月绘制一次彩线;# A, ?/ m3 R# X: w' zNum:=count(isColor,0); //计算彩线个数6 G; u9 M9 p: }5 R5 l! J//绘制彩线: U9 ~/ i; r+ w9 [& V T) USTICKLINE(isColor and mod(Num,4)=0,ll,hh,1,0),colorred ;8 e9 e9 E( e' ?# I' F# @0 E7 M8 g4 USTICKLINE(isColor and mod(Num,4)=1,ll,hh,1,0),coloryellow ;STICKLINE(isColor and mod(Num,4)=2,ll,hh,1,0),colorblue ;% L2 R4 x! W3 HSTICKLINE(isColor and mod(Num,4)=3,ll,hh,1,0),colorwhite ;适用于日线、周线、月线,推荐用于周线、月线。* h1 R4 j- }' R% T! j2 i2 k由于中国股市没有那么长的历史,所以此DELTA在很长时间内都没有意义,呵呵。
] |