(《DELTA理论——在所有市场里隐藏的次序》) 【原著】Welles Wilder 威尔茨.维尔德 【翻译】 STU 本书中文版由鼎砥投资论坛金融研究员 stu先生 翻译 如何在股票软件里画未来线 我没有深入思考这个问题,只是前两天有个朋友在本帖问起,我简单想了想,只做抛砖引玉之用。如果其他朋友有更好的方法,或者因为我对股票软件不熟悉,而没有充分利用现有函数功能,还望指出,也免耽误别人的时间。 / |' H( K7 Z0 l2 [% D+ f; H " A9 V3 C' h, l$ j1 l! U 基于我的粗浅了解,我觉得有这么几种思路种可以考虑:6 [0 `9 X8 m2 A# v. x (1)在飞狐函数里有SHIFT偏移函数,能够让指标(包括绘图输出结果)向后偏移若干周期。 当然,这只能实现当前指标和图形的右移,并不能带来右边绘图区域的增加。 + q+ P+ a7 A9 {( h6 ?, N (2)利用DLL函数,通过其他编程语言,如C等,实现更复杂和高级的功能。 这一方面受制于编程者的开发能力,另一方面需要股票软件商提供接口的有关资料,来支持接口开发。一般来讲,比较复杂。 ' [8 P& ]/ q4 W/ x1 M2 L (3)将图形整体左移,就把股票软件的右部作图区给扩大,在此可以绘制各种未来图形,前提是要有未来数据——未来数据可以是当前数据的右移,也可以任意其他方式计算得到,甚至直接假定。
以下在未来区域绘制ITD彩线的代码,只做示例。一些细节,并未做详细处理,比如:随着原K线的左移,图形中相应的日期是否也应该修改等等。但是,这都是细节,相信各人能够根据具体需要进行修正。8 i. q: x7 X, X9 C7 x5 l2 D -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
N:=100; //N是参数,表示向前移动多少天,也就是为未来画线留出多少天。
//隐去主图K线,只用于主图。如果是在副图绘制未来线,可以要,也可以不要此段代码,不影响 //叠加向前移动的K线,如果在主图叠加,则由于叠加K线的宽度,不一定和原K线吻合,可能会留下小白点,很小。 //单个小白点看不见,但是整体会有一点效果。通过调整叠加K线宽度可以解决。限于时间,这里没有尝试了。# n8 C/ E- M% @% o6 l STICKLINE(OPEN>CLOSE, LOW,HIGH, 0,0),COLORblack; STICKLINE(OPEN>CLOSE, CLOSE,OPEN, 8,0),COLORblack; STICKLINE(OPEN<=CLOSE,OPEN, CLOSE,8,1),COLORblack;/ H3 b$ a' p$ h# B4 b; ] STICKLINE(OPEN<=CLOSE,CLOSE,HIGH, 0,0),COLORblack;; r8 k% y. g# X; \! _" [ U STICKLINE(OPEN<=CLOSE,LOW,OPEN, 0,0),COLORblack;& }4 Y* B: J2 P2 Q8 M3 i; c7 c " H6 v# n4 N) k, l( t, C! y, A$ f6 A
//向前移动K线4 S7 [$ m- w7 N* z" j# @ O1:=REFX(O,N);3 \- H7 x# ]! q- ? C1:=REFX(C,N);3 o2 S9 i% w# s1 G" C1 ]. y; [ H1:=REFX(H,N);, @+ |3 `6 A4 l! s t; x% X5 ?% I L1:=REFX(L,N);: \* J: b0 | g1 W$ v Q3 |0 a
//叠加前移的K线$ \7 {0 f8 p |/ E$ c( n# k STICKLINE(O1>C1, L1,H1,0,0),COLORWHITE; STICKLINE(O1>C1, C1,O1,8,0),COLORWHITE; STICKLINE(O1<=C1,O1,C1,8,1),COLORRED;7 [1 T" S7 d7 R5 W% W, @7 U5 _5 ~& U STICKLINE(O1<=C1,C1,H1,0,0),COLORRED; STICKLINE(O1<=C1,L1,O1,0,0),COLORRED;4 ]1 @- p' h+ B. u; n3 t: a8 k " {/ s+ m, O S* w7 m2 j //以上代码可以用于任何需要绘制未来线的位置;2 D; J5 o( |* A5 T# Q6 I$ U, U, {5 @& D) R //指标计算也可用相同办法实现向前移动; : {6 Q& x2 A' s' s1 p* r$ p) h //计算是否绘制彩线的位置: T+ [2 d- J0 c) B2 N) q 农历:=lday; isFirst:=if(农历>Ref(农历,1) and ref(农历,1)<15 and 农历>15,1,0); isColor:=iif(lday=15 or isFirst,1,0); //判断是否绘制彩线的位置:农历15,或者农历15后的第一个交易日 Num:=count(isColor,0); //计算彩线个数 //光标所在画面的最高价和最低价 HH:=SYSPARAM(4); LL:=sysparam(5);& C ]/ ~; X) O/ s% B+ l1 f 农历smi49liesDay,LineThick0;, _; e, ?* L) m- z0 g 6 \: m& g1 q# y& h. A% J2 A //绘制彩线(图中右部空白区域,就可以看做绘制未来线的效果。)9 L; v/ ]% R4 v1 a STICKLINE(isColor and mod(Num,4)=0,ll,hh,3,0),colorred; STICKLINE(isColor and mod(Num,4)=1,ll,hh,3,0),coloryellow;1 `0 u, z' B5 ~ b STICKLINE(isColor and mod(Num,4)=2,ll,hh,3,0),colorblue; STICKLINE(isColor and mod(Num,4)=3,ll,hh,3,0),colorwhite;
|