高数常用的极限公式:公式求助1000例(18)

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 01:07:32
引用:851.问:
如何将字符串2005-04-20,转换成数字20050420
     答(bajatje):
ty:=STRLEFT('2005-04-20',4);
tm:=STRMID('2005-04-20',6,2);
td:=STRRIGHT('2005-04-20',2);
STRTONUM(ty+tm+td)



引用:852.问:
昨天,突然放量(小阴线,十字线,小阳线,大阴线)这里的放量是指相对其近期来说的。
但是,第2天,或者第3天就能以小的量,收复那天放量的K线
     答(股市骑兵00):
x1:=v/ref(v,1)>=3;
x2:=BARSLAST(x1);
x3:=v/ref(v,x2)<=0.5;
x2<3 and all(x3,x2) and c>ref(c,x2);

    答(原野):
还可以如下表示:
ref(v,1)/ref(ma(v,5),2)>=3 and ref(c/o,1)<1.02 and v/ref(v,1)<0.55 and c>ref(c,1);



引用:853.问:
在一分钟k线上能显示3-4天的高低点延长线

     答(bajatje):
w:=sumbars(barslast(hourhh:=hhv(h,w);
hh[datacount];
LL:=LLv(L,w);
LL[datacount];
    答(股市骑兵00):
tb:=date<>ref(date,1);
x1:=sumbars(tb,1);
x2:=sumbars(tb,2);
h1:=hhv(h,x1);l1:=llv(l,x1);
h2:=ref(hhv(h,ref(x1,x1)),x1);
l2:=ref(llv(l,ref(x1,x1)),x1);
h3:=ref(hhv(h,ref(x1,x2)),x2);
l3:=ref(llv(l,ref(x1,x2)),x2);
h1[datacount];l1[datacount];
h2[datacount];l2[datacount];
h3[datacount];l3[datacount];



引用:854.问:
找出 10日乖離率在高(低)檔產生背離 之個股,  股價創新高 ,Bias(10)數值
卻比上一個(Bias(10)數值)波峰低0.5以上, (比如 設距今日30個交易日之內)
1)"誰"跟"誰"作比較產生乖離率?股價 跟 Bias(10)數值 作比較產生 "背離 "
2)、差異要多大您才認為是背離?Bias(10) 數值差 >0.5 以上
請問這樣條件 寫得出公式嗎?   或者不用選股 只要做出指標"會特別標示背離產生"即可

     答(股市骑兵00):
大概这个样子的。
BIAS10:=(CLOSE-MA(CLOSE,10))/MA(CLOSE,10)*100;
hhv(c,30)>ref(hhv(c,30),1) and hhv(BIAS10,30)-BIAS10>0.5;



引用:855.问:
      上式可否再幫我改成:
      BIAS低檔背離的原碼? (條件相同),或者幫我把 高低檔背離 的公式合成一個
     答(股市骑兵00):
BIAS10:=(CLOSE-MA(CLOSE,10))/MA(CLOSE,10)*100;
顶背离:hhv(c,30)>ref(hhv(c,30),1) and hhv(BIAS10,30)-BIAS10>0.5;
底背离:llv(c,30)0.5;



引用:856.问:
在副图画两条水平的白色彩带,第一条当周KD的K大于D时变为黄色,
第二条当月KD的K大于D时变为红色. 用在日线上,最好是全部周期.

     答(股市骑兵00):
zk:="kd.k#week";zd:="kd.d#week";
rk:="kd.k#MONTH";rd:="kd.d#MONTH";
PARTLINE(1,0),COLORWHITE,LINETHICK10;
PARTLINE(zk>zd,0),COLORYELLOW,LINETHICK10;
PARTLINE(1,10),COLORWHITE,LINETHICK10;
PARTLINE(rk>rd,10),COLORRED,LINETHICK10;



引用:857.问:
      这种平均线如何写?如果在日线图界面,则ma:(c,30)//下面的不显示
      如果切换到120分钟,则ma:(c,20) //前面的ma:(c,30)不显示
      如果切换到60分钟,则ma:(c,10) //前面的ma:(c,30) ma:(c,20)不显示
     答(bajatje):
if DATATYPE=6 then
ma:(c,30)//下面的不显示
if DATATYPE=11 then
ma:(c,20) //前面的ma:(c,30)不显示
if DATATYPE=5 then
ma:(c,10) //前面的ma:(c,30) ma:(c,20) 不显示



引用:858.问:
根据指定日期,以光标控制黄金分割位置

     答(hx817):
参考
input:n(1040618,700101,1341231);//N 为日期,可在参数中设置
tj:=date=n;
tj1:=(BARPOS-BARSLAST(tj));
kn:SYSPARAM(1)-tj1;
kn1:INTPART(0.382*kn);
kn2:INTPART(0.618*kn);
VERTLINE(tj);
VERTLINE(BARPOS=tj1+kn1);
VERTLINE(BARPOS=tj1+kn2);



引用:859.问:
我要把成本分布中的90%集中度的数值
引用出来,放在k线的上方,怎么做
     答(股市骑兵00):
是这个意思吗?
P90:(cost(95)-cost(5))/(cost(95)+cost(5))*100;



引用:860.问:
我想用数字来表示月K线天数怎么做
     答(hx817):
1.先建立一个调用公式,比如 ttt
用来计算每个月多少天
fm:=month<>refx(month,1);
fn:=BARSLAST(fm)+1;
nn:if(fm=1 or ISLASTBAR,ref(fn,1),0);
2.再建立新公式
"ttt.nn#day"
则在月线周期上可看到当月交易周期
引用:861.问:
如果A=EMA(CLOSE,10),(A为常量).请问任何求CLOSE的值
     答(股市骑兵00):
  
根据EMA定义推算。
若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1)



引用:862.问:
前一天的阴线实体大于5%,今天的K线孕育在昨天阴线实体之内,
同时KDJ值均小于20。
     答(bajatje):
ref((o-c)/ref(c,1)>0.05,1) and max(h,l)ref(c,1) and "kdj.d"<20;



[Copy to clipboard]CODE:863.问:
能否把FH1的数据相应的往前移动

fh:=SPLITDATA(4)/10;
ts:DIVIDBARS(0);
fh1:sum(fh,ts+1);

     答(股市骑兵00):
fh:=SPLITDATA(4)/10;
ts:=DIVIDBARS(0);
fh1:sum(fh,ts+1);
a:0*c;
for i=datacount downto 2 do begin
  if fh[i]>0 then
    a[i-1]:=fh[i];      
  else  
    a[i-1]:=max(a[i-1],a[i]);
end;


[Copy to clipboard]CODE:864.问:
这几天为了还原C,忙于校对原始数据,始终有出入,
不知什么原因,搞的头都快晕了,错在哪里

送股:=SPLITDATA(1)*0.1;      
配股:=SPLITDATA(2)*0.1;      
sp:=送股+配股;
sp1:=sp;                 
sp1[datacount]:=1;
for i=datacount downto 2 do sp1[i-1]:=sp1[i]/(1+sp[i]);

fh:=SPLITDATA(4)/10;
ts:=DIVIDBARS(0);
fh1:sum(fh,ts+1);
a:=0*c;
for i=datacount downto 2 do begin
  if fh[i]>0 then
    a[i-1]:=fh[i];      
  else  
    a[i-1]:=max(a[i-1],a[i]);
end;
FH1:=A;
HYCA:C/SP1+FH1;

     答(股市骑兵00):
送股:=SPLITDATA(1)/10;配股:=SPLITDATA(2)/10;分红:=SPLITDATA(4)/10;
sp:=c;
fh:=0*c;//分红前移
sp[datacount]:=1;//送配股复权比例
for i=datacount downto 2 do begin
sp[i-1]:=sp[i]/(1+送股[i]+配股[i]);
fh[i-1]:=fh[i];
if 分红[i]>0 then
fh[i-1]:=分红[i];
end;
复权价:c/sp+fh;
VERTLINE(送股+配股+分红>0);


引用:865.问:
时段统计中的阳换手率是什么意思公式是什么?:(阳量的值是从哪个公式或函数提出来的?

     答(bajatje):
阳换手:sum((o<=c)*v,N)/capital*100;
阴换手:sum((o>c)*v,N)/capital*100;



引用:866.问:
我想做个阴阳换手比的指标用分笔周期,按您的指点
第一次输出为0  (N=0):
阳换手:s=um((o<=c)*v,N)/capital*100;
阴换手:sum((o>c)*v,N)/capital*100
阳换手/阴换手

第二次用一句输出却等于阴阳换手之和:
阳换手:s=um((o<=c)*v,N)/capital*100;

第三次用另一句输出为0,说明分母是0,所以第一次输出都是0:
阴换手:sum((o>c)*v,N)/capital*100

     答(bajatje):
阳换手:sum((o<=c)*v,N)/capital*100;
阴换手:sum((o>c)*v,N)/capital*100;
这样的表达式没有问题。你的capital是否有数据?

SUM(IF(CLOSE/REF(CLOSE,1)>1,VOL,0),0)/capital*100
这样也对(注意:是 >1 不是 >0)



引用:867.问:
如何引用实时图上的预估量
     答(hx917):
自己计算,用(交易时间/一天总时间)×已经成交的量



引用:868.问:
编一个《无未来数据的周MA指标》,周均线能够在日线图每日变化显示

     答(股市骑兵00):
INPUT:N(5);//均线周数调节
x:=datediff(ref(date,1),date)<>weekday-ref(weekday,1);
z:=refx(x,1);zq1:=sumbars(z,n-1); zq2:=sumbars(z,n);
周均线:if(z,sum(z*c,zq2)/n,(sum(z*c,zq1)+c)/n);



引用:869.问:
如果在小时段引用日线MA如何编写?将weekday改为day结果不对
     答(股市骑兵00):
改成这样试试:
x:=date>ref(date,1);



引用:870.问:
我通常是在日线周期上看k线和kdj指标,又懒得开多个窗口看5分钟周期的kdj,而且也很麻烦。
想在日线周期的窗口上能看见5分钟周期的kdj线,这样有两个kdj副图,一个是日线周期的,一个
是5分钟的,对于掌握盘口买卖很有好处,怎么编这种指标

     答(股市骑兵00):
日线引用5分钟KD只能显示每天最后一笔的KD数据。
k:STKINDI(STKLABEL,'kd.k',0,2);
d:STKINDI(STKLABEL,'kd.d',0,2);
引用:871.问:
mr:ma(c,5)>ma(c,10);
mc:ma(c,5)
买入条件:5日均线大于10日均线(不是上穿)。
卖出条件:1、5日均线小于10日均线;2、最低价格低于第一个买入条件成立时的最低价。
请问第2个条件如何编写?尝试过 l件成立时的最低价而不是第一个,又不希望买入条件采用cross(ma(c,5),ma(c,10)),
     答(股市骑兵00):
这样试试。

mr:ma(c,5)>ma(c,10);
mc:ma(c,5)


引用:872.问:
如何编辑公式在波段的高低点处显示涨跌幅的数值?
如:AB段的涨幅为15%,如何在B点显示15%这个数。 
     答(hx817):
别名: 前M个波峰值
所属类别: 指标函数  参数数量: 3

前M个ZIG转向波峰值。
用法:
PEAK(X,N,M)表示之字转向ZIG(X,N)的前M个波峰的数值,M必须大于等于1
例如:
PEAK(1,5,1)表示5%最高价ZIG转向的上一个波峰的数值
PEAK(MA(C,20),10,1)表示均线的10%的ZIG转向的上一个波峰的数值

别名: 前M个波谷值
所属类别: 指标函数  参数数量: 3

    答(股市骑兵00):
这样试试。

x:=4;n:=10;w:=FLATZIG(x,n);
DRAWNUMBER(w=1,h*1.02,c/TROUGH(x,n,1)*100-100,2);
DRAWNUMBER(w=0,l*0.98,c/PEAK(x,n,1)*100-100,2);



引用:873.问:
我想找出主图界面内包含K线的数量,但这个值是浮动的,随着主图放大、
缩小而变,请教用什么函数表示?
     答(bajatje):
SYSPARAM(3)-SYSPARAM(2)

SYSPARAM(3)
系统参数:主图可见K线最后位置
注意:该函数仅K线图形分析且打开十字光标时有效,否则返回值不确定

SYSPARAM(2)
系统参数:主图可见K线最初位置
注意:该函数仅K线图形分析且打开十字光标时有效,否则返回值不确定



引用:874.问:
怎样在分时上做 昨天的高点和低点各画一条直线,还有昨天5日均线画一条直线;

     答(股市骑兵00):
1)先建个引用公式,名称:X21
HH:H;
LL:L;
M:MA(C,5);

2)再建公式选主图叠加。
HH:"X21.HH##day";
LL:"X21.LL##day";
M:"X21.M##day";

    问:
可不可以做出30分钟内的分时上最高画一条横线
    答(股市骑兵00):
1)
HHM:=HHV(H,30);
HH:HHM[DATACOUNT];

2)
HH:"X21.HH#MIN1";



引用:875.问:
鬼变脸文字化表述的解盘公式
     答(股市骑兵00):
利用鬼变脸公式的数据,用下面涵数做。

别名: 显示解盘数值
所属类别: 解盘函数  参数数量: 5

在[解]中输出带数值的解盘。
用法:
EXPLAINEX(COND,TEXT,NUMBER,PRECISION,SKIPLINES)
在COND条件满足时在[解]中输出数值解说。
PRECISION为小数显示位数,SKIPLINES为空出几行显示下一个解盘
例如:
EXPLAINEX(HIGH>=HHV(HIGH,20), '20天新高价:',HIGH,2,1)表示在创20天新高时在
[解]中输出数值解说。
......
帮你做3天解盘
pg:=SYSPARAM(1);
w1:=BARSLAST(kk=3 or kk=4 or kk=5);w2:=BARSLAST(kk=1 or kk=2 or kk=6);
EXPLAINEX(kk=1 or kk=2 or kk=6,'红'+NUMTOSTR(w1[pg],0)+'今天:',c,2,0),COLORRED;
EXPLAINEX(kk=3 or kk=4 or kk=5,'绿'+NUMTOSTR(w2[pg],0)+'今天:',c,2,0),COLORGREEN;
EXPLAINEX(ref(kk=1 or kk=2 or kk=6,1),'红'+NUMTOSTR(w1[pg-1],0)+'昨天:',ref(c,1),2,0),COLORRED;
EXPLAINEX(ref(kk=3 or kk=4 or kk=5,1),'绿'+NUMTOSTR(w2[pg-1],0)+'昨天:',ref(c,1),2,0),COLORGREEN;
EXPLAINEX(ref(kk=1 or kk=2 or kk=6,2),'红'+NUMTOSTR(w1[pg-2],0)+'前天:',ref(c,2),2,0),COLORRED;
EXPLAINEX(ref(kk=3 or kk=4 or kk=5,2),'绿'+NUMTOSTR(w2[pg-2],0)+'前天:',ref(c,2),2,0),COLORGREEN;



引用:876.问:
我想在K线副图上连续显示等份的竖线

     答(凹地):
看这个。等分 : 10天
VERTLINE(MOD(BARPOS,10)=0)



引用:877.问:
如何在一分钟K线图附图显示日K线图

已建立附图显示日K线图,如下:
STICKLINE (ISEQUAL AND C>=REF(C,1),C,C,7,1) COLORRED;
STICKLINE (ISEQUAL AND CSTICKLINE (ISUP,H,L,0,0) COLORRED;
STICKLINE (ISUP,C,O,7,1) COLORRED;
STICKLINE (ISDOWN,H,L,0,0) COLORcyan;
STICKLINE (ISDOWN,O,C,7,0) COLORcyan;
该公式只与主图同周期,如何在一分钟K线附图显示日K线图?

     答(bajatje):
1分钟图日K线
w:=barslast(houroo:=ref(o,w);
cc:=refx(c,239-w);
hh:=refx(hhv(h,w+1),239-w);
LL:=refx(LLv(L,w+1),239-w);
f:=cc-ref(cc,w+1);
k:=BACKSET(ISLASTBAR,w+1);
STICKLINE (cc>oo and BETWEEN(w,INTPART(w[datacount]/2*0.93),INTPART(w[datacount]-w/2*1.07)),hh,LL,10,0) COLORRED;
STICKLINE (cc>oo,oo,cc,10,0) COLORRED;
STICKLINE (ccSTICKLINE (ccSTICKLINE (cc=oo and f>=0 and BETWEEN(w,INTPART(w[datacount]/2*0.93),INTPART(w[datacount]-w/2*1.07)),hh,LL,10,0) COLORRED;
STICKLINE (cc=oo and f>=0,oo,cc,10,0) COLORRED;
STICKLINE (cc=oo and f<0 and BETWEEN(w,INTPART(w[datacount]/2*0.93),INTPART(w[datacount]-w/2*1.07)),hh,LL,10,0) COLORcyan;
STICKLINE (cc=oo and f<0,oo,cc,10,0) COLORcyan;



引用:878.问:
昨天的K线形态与前天的K线形态基本相同怎样编写?

     答(bajatje):
a:=BETWEEN(c,ref(c,1)-0.02,ref(c,1)+0.02) and BETWEEN(l,ref(l,1)-0.02,ref(l,1)+0.02)
and BETWEEN(h,ref(h,1)-0.02,ref(h,1)+0.02) and BETWEEN(o,ref(o,1)-0.02,ref(o,1)+0.02) ;
ref(a,1);
    答(股市骑兵00):
n:=1.003;n1:=0.997;co:=c/o;hl:=h/l;hc:=h/c;
BETWEEN(co/ref(co,1),n,n1) and BETWEEN(hl/ref(hl,1),n,n1) and BETWEEN(hc/ref(hc,1),
n,n1);



引用:879.问:
请介绍<分析家4.0转3.0公式转换器>具体操作步骤

     答(范数):
1.把原版分析家40的公式导出,置于桌面,命名123
2.退出原版分析家40.再打开分析家4.0转3.0公式转换器
3.将置于桌面,命名123的公式导入分析家4.0转3.0公式转换器的版本内
4.再将分析家4.0转3.0公式转换器内的公式导出,在导出时选择30格式.
5.一切工作完成后,则40变成了30.



引用:880.问:
我是想在电脑解盘里面显示以前均线交叉时的买进价位.
比如:EXPLAINEX(5日线大于25日线,'起始买进价位=',起始买进价位,0,0),colorcc10ff;
怎样才能让 (起始买进价位)显示以前均线交叉时的价位????

     答(hx817):
ma1:=ma(c,5);
ma2:=ma(c,25);
fc:ref(c,BARSLAST(cross(ma1,ma2))+1);
EXPLAINEX(ma1>ma2,'起始买进价位=',fc,2,0),colorcc10ff;
             引用:881.问:
当出现买入信号时都会出现很多"买入"字样,因为符合条件的K线太多,我只想让它只出现前两个,
后面的就不显示了.除非由"买入"转入"卖出",就再只显示"卖出"的前两个..
     答(股市骑兵00):
B:=MA(C,20);
A:=C>B;
A1:=CB1:=REF(HHV(H,5),1);
B2:=REF(LLV(L,5),1);
X:=A AND c>B1 AND C>O or barpos=1 or barpos=2;
Y:=A1 AND cdx:=sumbars(x,1);ex:=sum(y,dx);
dy:=sumbars(y,1);ey:=sum(x,dy);
x1:=(cross(ey,ex) or ey<3 and barpos<>2 and barpos<>1)*x;
y1:=(cross(ex,ey) or ex<3 and barpos<>2 and barpos<>1)*y;
DRAWTEXT(X1,L,'买进'),colorWHITE;
DRAWTEXT(Y1,H,'卖出'),colorGREEN;


    问:如果我只单独选择第一个或者单独选择第二个用公式怎么表达?
     答(股市骑兵00):
每次买卖只发一个信号,就去除
or ey<3
or ex<3

    问:如果只显示第二个"买进",而不显示第一个,应该怎么表示???
     答(股市骑兵00):
改这2句,上面barpos=2多余了
x1:=(ey=2 and barpos<>1)*x;
y1:=(ex=2 and barpos<>1)*y;



引用:882.问:
选出股价在60均线正负2%之内的股票
     答(股迷):
ABS(CLOSE-MA(CLOSE,60))/CLOSE<0.02;



引用:883.问:
x1:=(cross(ey,ex) and barpos<>2 andbarpos<>1)*x;
y1:=(cross(ex,ey) and barpos<>2 and barpos<>1)*y;

我是想把x1这个K线的收盘价作为买进价写在电脑解盘里面

EXPLAINEX(BBB>0,'★起始多单价位= ',起始买进价位,0,0),colorcc10ff;
就是不知道怎么样来用 "起始买进价位"表达x1时K线的收盘价???
     答(股市骑兵00):
B:=MA(C,20);
A:=C>B;
A1:=CB1:=REF(HHV(H,5),1);
B2:=REF(LLV(L,5),1);
X:=A AND c>B1 AND C>O or barpos=1;
Y:=A1 AND cdx:=sumbars(x,1);ex:=sum(y,dx);
dy:=sumbars(y,1);ey:=sum(x,dy);
x1:=(cross(ey,ex) or ey<3 and barpos<>1)*x;
y1:=(cross(ex,ey) or ex<3 and barpos<>1)*y;
DRAWTEXT(X1,L,'买进'),colorWHITE;
DRAWTEXT(Y1,H,'卖出'),colorGREEN;
sj:=MOD(date,10000)/100;fc:=c;x2:=sumbars(x1,1);y2:=sumbars(y1,1);gb:=SYSPARAM(1);
EXPLAIN(X2,'买入时间:'+NUMTOSTR(sj[gb-x2[gb]+1],2)+'   买入价:'+NUMTOSTR(fc[gb-x2[gb]+1],2)),COLORRED;
EXPLAIN(Y2,'卖出时间:'+NUMTOSTR(sj[gb-y2[gb]+1],2)+'   卖出价:'+NUMTOSTR(fc[gb-y2[gb]+1],2)),COLORGREEN;



引用:884.问:
可以在一个选股公式里面设多个条件,而且这多个条件里面的数值都可以设置,如选择
1、最高价与最低价10元到15元;
2、开盘价在某一范围;
3、涨跌幅度在某一范围等。
     答(hx817):
input:年(2004),月(7),日(16),收盘小价格(5),收盘大价格(5.3),最高价格(15),最低价格(10);
n:=DATEDIFF(((年-1900)*10000+月*100+日),DATE);//计算输入日期和现在日期时间差
tj1:REF(CLOSE,n)>收盘小价格 and REF(CLOSE,n)<收盘大价格;//选择收盘价
tj2:REF(HIGH,n)<最高价格 and REF(LOW,n)>最低价格;//选择收盘价
//开盘价、涨跌幅度 方法和 tj1 类似



引用:885.问:
对飞狐RSI指标理论性失误的疑问

在飞狐里的RSI公式为
N1:6,2,10O
  N2:12,2,100
  N3:24,2,100

LC := REF(CLOSE,1);
RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;

以下是我翻看函数说明的一些个人注解,不知道对不对

ABS(X)  绝对值 数学
取X的绝对值  

MAX (A,B)  最大值 数学   取A和B中最大的值

SMA (X,N,M) 移动平均 引用  求X的N日静态平均,M为权重
若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必须大于M。

REF(X,N)   向前引用 引用  引用N周期前的X值

LC:=REF(CLOSE,1)
该句为中间语句,不显示
因为1天前的收盘价格CLOSE
可以理解为“上日收盘价格”

CLOSE-LC:今日收盘价格-上日收盘价格“LC:=REM(CLOSE,1)”

max(a,b)back to max a,or b.
max(close-lc,0)
取CLOSE-LC 或0的最大值
可以理解为,如果收盘价格大于LC,则取他们的差值,否则取0。

SMA(MAX(CLOSE-LC,0),N1,1)
求移动平滑因子为1时的N1日的(今日收盘价-上日收盘价)或0的移动平均价

ABS(CLOSE-LC)
取CLOSE-LC的绝对值

SMA(ABS(CLOSE-LC),N1,1)
取移动平滑因子为1是的N1天前的(收盘价-上日收盘价的绝对值)的移动平均价

在期货市场技术分析书中第273页,对RSI的定义是
RS=X天内上涨收市价的平均值/X内下跌收市价的平均值
解释:X天内的上涨了的收市价格的上涨幅度相加,然后除于X,在结算下跌幅度时则把所有的下跌了的收市价格的下跌幅度相加,然后除于X,得出相对力度(RS)
RSI=100-(100/(1+RS))

我觉的飞狐里的RSI出现了理论性的错误。
SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100
里面取的是
N1天前的收盘差最大值/N1天前的收盘差绝对值*100
而墨非定义的是涨跌幅度之间的关系,RSI并非是最大值与绝对值之间的关系。
因为不会编程,不能够自己编写与原来RSI进行对比严整

     答(hx817):
在期货市场技术分析书中第273页,对RSI的定义是

RS = X天内上涨收市价的平均值/X内下跌收市价的平均值

解释:X天内的上涨了的收市价格的上涨幅度相加,然后除于X,

在结算下跌幅度时则把所有的下跌了的收市价格的下跌幅度相加,然后除于X,得出相对力度(RS)

RSI=100-(100/(1+RS))

涨跌幅度=C-REF(C,1)=C-LC
上涨幅度 C>LC 即 C-LC>0
MAX(C-LC,0) 只计算上涨的幅度
X天内上涨幅度的平均值=SMA(MAX(C-LC,0),X,1)

每天涨跌幅度的总和:ABS(CLOSE-LC)
SMA(ABS(CLOSE-LC),N1,1)


RSI = 100-100/(1+RS)
                = (100*(1+RS)-100)/(1+RS)
                = (100+100*RS-100)/(1+RS)
                = (100*RS)/(1+RS)
                = RS/(1+RS)*100

RS = X天内上涨幅度的平均值/X天内下跌幅度的平均值
假设 RS=R1/R2
那么:
RSI =        (R1/R2)/(1+R1/R2)*100
                = R1/(R1+R2)*100
R1为 X天内上涨幅度的平均值        =        SMA(MAX(C-LC,0),X,1)
R2为 X天内下跌幅度的平均值
R1+R2 为X天内涨跌幅度的平均值        =        SMA(ABS(CLOSE-LC),N1,1)
那么:
RSI = SMA(MAX(C-LC,0),X,1)/SMA(ABS(CLOSE-LC),N1,1)*100



[Copy to clipboard]CODE:886.问:
请南客老师将这段源码转成飞狐公式,谢谢。

input:N(5,0,100,1),D(1050426,0,1999999,1),M(80,1,1000,1),
      M1(50,1,1000,1),N1(0,0,1000,1);

variable:AA=0,BB=0,CC=0,DD=0,  EE=0,FF=0,HH=0,II=0;
varAA:=0;
varBB:=0;
varCC:=0;
varDD:=barpos-1;
varEE:=capital*(M/100);
varFF:=capital*(m1/100);
varD:=date>=D;
var0:=ma( ref(vol,1),N );{N=1,与上一交易日比较}
var00:=var0*( (100+N1)/100 );
varV:=vol/var00-1;
var1:=if(vol>var00,vol-var00,0);
var2:=if(volvar3:=(vol-var0)*100/var0;

差:vol-var0,colorffcc00,linethick0,precis0;
幅%:var3,colorccffff,linethick0,precis0;

STICKLINE(vol>var0,0,var1,6,0),COLORffccff;
STICKLINE(vol

if varD then begin
  for i=0 to varDD do begin
    if varAA< varEE then begin
       varAA := varAA + ref(vol,i);
      if varAA >= varEE then  
         varZZ:=i+1;
        end
     end
  for i=0 to varDD do begin
    if varBB< varFF then begin
       varBB := varBB + ref(var1,i);
      if varBB >= varFF then
         varXX:=i+1;
        end
     end
  for i=0 to varDD do begin
    if varCC< varFF then begin
       varCC := varCC + ref(var2,i);
      if varCC >= varFF then
         varYY:=i+1;
        end
     end
          if Vol>var00 then begin
                  AA:=AA+varV;
                  BB:=BB+1;
       end
       else if Vol                  CC:=CC+varV;
                  DD:=DD+1;
          end
   if C>O then begin
      EE:=EE+varV;
      FF:=FF+1;
     end
     else if C      HH:=HH+varV;
      II:=II+1;
   end     
end

涨%:if(BB=0,0,AA*100/BB),precis2,colorffccff;
跌%:if(DD=0,0,CC*100/DD),precis2,colorcyan;
阳%:if(FF=0,0,EE*100/FF),precis2,color99ffff;
阴%:if(II=0,0,HH*100/II),precis2,colorffff99;
(天):varZZ,precis0,linethick0,coloreeeeee;
天↑:varXX,precis0,linethick0,colorffcccc;
天↓:varYY,precis0,linethick0,colorccff33;

    答(股市骑兵00):
上面的公式是分析家的,和飞狐写法不同,一个字都没改怎么能用呢
input:N(5,0,100,1),D(1050426,0,1999999,1),M(80,1,1000,1),
      M1(50,1,1000,1),N1(0,0,1000,1);

variable:AA=0*c,BB=0*c,CC=0*c,DD=0*c,  EE=0*c,FF=0*c,HH=0*c,II=0*c;
varAA:=0*c;
varBB:=0*c;
varCC:=0*c;
varDD:=barpos-1;
varEE:=capital*(M/100);
varFF:=capital*(m1/100);
varD:=date>=D;
var0:=ma( ref(vol,1),N );{N=1,与上一交易日比较}
var00:=var0*( (100+N1)/100 );
varV:=vol/var00-1;
var1:=if(vol>var00,vol-var00,0);
var2:=if(volvar3:=(vol-var0)*100/var0;

差:vol-var0,colorffcc00,linethick0,PRECISION0;
幅%:var3,colorccffff,linethick0,PRECISION0;

STICKLINE(vol>var0,0,var1,6,0),COLORffccff;
STICKLINE(vol
fv:=v;fc:=c;fo:=o;
for i=1 to datacount do begin
  if varD[i] then begin
     for j=i downto 1 do begin
       if varaa[j]          varaa[i]:=varaa[i]+fv[j];
       if varaa[i]>=varee then begin
          varzz[i]:=i-j+1;
          break;
       end;
     end;
     for j=i downto LBOUND(var1) do begin
       if varbb[j]         varbb[i]:=varbb[i]+var1[j];
       if varbb[i]>=varff then begin
         varxx[i]:=i-j+1;
         break;
       end;
     end;
     for j=i downto LBOUND(var2) do begin
       if varcc[j]         varcc[i]:=varcc[i]+var2[j];
       if varcc[i]>=varff then begin
         varyy[i]:=i-j+1;
         break;
       end;
     end;
       if fv[i]>var00[i] then begin
         aa[i]:=aa[i-1]+varv[i];
         bb[i]:=bb[i-1]+1;
       end;else begin
         aa[i]:=aa[i-1];
         bb[i]:=bb[i-1];
       end;
       if fv[i]         cc[i]:=cc[i-1]+varv[i];
         dd[i]:=dd[i-1]+1;
       end;else begin
         cc[i]:=cc[i-1];
         dd[i]:=dd[i-1];
       end;      
       if fc[i]>fo[i] then begin
         ee[i]:=ee[i-1]+varv[i];
         ff[i]:=ff[i-1]+1;
       end;else begin
         ee[i]:=ee[i-1];
         ff[i]:=ff[i-1];
       end;
       if fc[i]         hh[i]:=hh[i-1]+varv[i];
         ii[i]:=ii[i-1]+1;
       end;else begin
         hh[i]:=hh[i-1];
         ii[i]:=ii[i-1];
       end;
   end;
end;
涨%:if(BB=0,0,AA*100/BB),PRECISION2,colorffccff;
跌%:if(DD=0,0,CC*100/DD),PRECISION2,colorcyan;
阳%:if(FF=0,0,EE*100/FF),PRECISION2,color99ffff;
阴%:if(II=0,0,HH*100/II),PRECISION2,colorffff99;
(天):varZZ,PRECISION2,linethick0,coloreeeeee;
天↑:varXX,PRECISION2,linethick0,colorffcccc;
天↓:varYY,PRECISION2,linethick0,colorccff33;


[Copy to clipboard]CODE:887.问:
      在电脑解盘中:
      EXPLAIN(x1,提示平仓一半),有没有办法让"提示平仓一半"不重复出现啊!
      因为在一段时间x1条件会反复出现.
      count(x1,m)=1;
      
    答(南客):
      如何使买入信号、卖出信号一一对应
    (1)
  在设计公式时,我们经常遇到这样的问题,如何使买卖信号一一对应?
  比如下面的代码:
input:n(26,5,300),p(2,0.1,10);
close;
mid :  ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

tjb:=cross(close,lower);
tjs:=cross(upper,close);
drawicon(tjb,close,4);
drawicon(tjs,close,5);

可以看出,买入信号连续发出多次后,才出现卖出信号,卖出信号连续发出多次后,
才发出买入信号。
     (2)
如何过滤连续的买入、卖出信号,使买入后只要没有发出卖出信号,就不再发出买入信号;同样,卖出后只要没有出现买入信号,就不再发出卖出信号。即买入、卖出信号一一对应。容易想到的是使用过滤函数filter(),但这个函数是难以实现的,因为未来有多少个连续的买入(或卖出)信号是未知的。
  另一种方法是,从前一次卖出(或买入)信号开始累加买入(或卖出)信号,如果累加次数等于1,则发出真正的买入(或卖出)信号。但这里还有一个问题,如果首次信号是卖出信号的话,也应该过滤,因为没有买入哪来卖出?应让首次信号是买入信号才合理。方法是,在第1根K线的位置,虚拟一个卖出信号。
  以下是实现上述想法的常规函数代码:

input:n(26,5,300),p(2,0.1,10);
close;
mid :  ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

//以下为常规函数处理代码//
tjb:=cross(close,lower);//初始买入信号,可换成其它任意买入条件
tjs:=cross(upper,close);//初始卖出信号,可换成其它任意卖出条件

{以下代码,使买、卖信号一一对应}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]  a:=setlbound(tjs,1);
  tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb;  //买入信号
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //卖出信号

drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
    答(cwy):
如下也可解决
input:n(26,5,300),p(2,0.1,10);
close;
mid:ma(close,n);
upper:mid + p*std(close,n);
lower:mid - p*std(close,n);
tjb:=cross(close,lower);
tjs:=cross(upper,close);
tsb:=barslast(tjb);
tss:=barslast(tjs);
tj1:=tjb and count(tjb,tss+1)<2;
tj2:=tjs and count(tjs,tsb+1)<2;
drawicon(tj1,close,4);
drawicon(tj2,close,5);

允许连续出现2次买入信号或卖出信号
input:n(26,5,300),p(2,0.1,10);
close;
mid:ma(close,n);
upper:mid + p*std(close,n);
lower:mid - p*std(close,n);
tjb:=cross(close,lower);
tjs:=cross(upper,close);
tsb:=barslast(tjb);
tss:=barslast(tjs);
tj1:=tjb and count(tjb,tss+1)<3;
tj2:=tjs and count(tjs,tsb+1)<3;
drawicon(tj1,close,4);
drawicon(tj2,close,5);

    答(股市骑兵00):
1.用循环我试着答一下。
input:n(26,5,300),p(2,0.1,10),s(1,1,5);//S为允许连续出现信号调节参数!
close;
mid :=  ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

//以下为常规函数处理代码//
tjb:=cross(close,lower);//初始买入信号,可换成其它任意买入条件
tjs:=cross(upper,close);//初始卖出信号,可换成其它任意卖出条件

///////////////////////////////////////////////////////////
m:=0*c;w:=0*c;mm:=0*c;
for i=LBOUND(upper) to datacount do begin
  mm[i]:=mm[i-1]+tjb[i];
  m[i]:=m[i-1]+tjb[i];
  w[i]:=w[i-1]+tjs[i];
  if tjs[i] then m[i]:=0;
  if tjb[i] then w[i]:=0;
  if m[i]<=s and tjb[i] then z[i]:=1;
  if w[i]<=s and tjs[i] and mm[i]>0 then t[i]:=1;//首次要发卖出信号去掉and mm[i]>0
end;
drawicon(z,low,4);
drawicon(t,high,5);

2.稍微改下思路试试。
///////////////////////////////////////////////////////////
m:=0*c;w:=0*c;mm:=0*c;
for i=LBOUND(upper) to datacount do begin
mm[i]:=mm[i-1]+tjb[i];
m[i]:=m[i-1]+tjb[i];
w[i]:=w[i-1]+tjs[i];
if w[i]>w[i-1] then m[i]:=0;
if m[i]>m[i-1] or mm[i]=0 then w[i]:=0;
if m[i]-w[i]>s then m[i]:=m[i-1];
if w[i]-m[i]>s then w[i]:=w[i-1];
end;
drawicon(m>ref(m,1),low,4);
drawicon(w>ref(w,1),high,5);
    问:
刚刚发现问题。如果将买入、卖出条件改为以下方式,就无法实现信号的对应了。请问老师在买入条件仍然保持“C>MID”,而不是“CROSS(C,MID)”的情况下如何实现?

MID:MA(C,30);

tjb:=C>MID AND L>MID;//初始买入信号,可换成其它任意买入条件
U1:=LU2:=Ltjs:=U1 OR U2;//初始卖出信号,可换成其它任意卖出条件

{以下代码,使买、卖信号一一对应}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]  a:=setlbound(tjs,1);
  tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb;  //买入信号
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //卖出信号

drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
     答(股市骑兵00):
你的买卖条件不对呀!
tjs//初始卖出信号
tjb//初始买入信号
2个条件自相矛盾了,同时买卖信号都会发的,那你听买的呢,还是卖的呢?
你硬要这个条件,下面的你参考
MID:=MA(C,30);

tjb:=C>MID AND L>MID;
U1:=LU2:=Ltjs:=U1 OR U2;//初始卖出信号,可换成其它任意卖出条件
tjb:=tjb and not(tjs);//初始买入信号,可换成其它任意买入条件
{以下代码,使买、卖信号一一对应}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]  a:=setlbound(tjs,1);
  tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb;  //买入信号
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //卖出信号

drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
    问:
公式中的“U2”又改了一下:
U2:=C>REF(C,BARSLAST(CROSS(TJB,0.5)));
请教怎样才能在“tjsell”条件成立后,当“C>MID AND L>MID”条件满足时即可产生新的“tjbuy”信号?谢谢!
[color=Red]     答(股市骑兵00):
你的买卖条件本身有重叠的问题。肯定有信号损失的,如果以买入信号为基准。
损失卖出信号改为如下表达。

MID:=MA(C,30);

tjb:=C>MID AND L>MID;//初始买入信号,可换成其它任意买入条件
U1:=L//U2:=LU2:=C>REF(C,BARSLAST(CROSS(TJB,0.5)));
tjs:=(U1 OR U2) and not(tjb);//初始卖出信号,可换成其它任意卖出条件
    答(cwy):
这个作业不能说是真正的用循环语句来实现,对常规函数使用的考虑还是较多,
如处理第一个卖出信号,实际上我不是做出来而是试出来的,
input:n(26,5,300),p(2,0.1,10);
close;
mid:ma(close,n);
upper:mid + p*std(close,n);
lower:mid - p*std(close,n);
//以下为常规函数处理代码//
tjb:=cross(c,lower);//初始买入信号,可换成其它任意买入条件
tjs:=cross(upper,c);//初始卖出信号,可换成其它任意卖出条件
tss1:=BARSSINCE(tjb);//第一个卖出信号
///////////////////////////////////////////////////////
fb:=0*c;  
fs:=0*c;
for i =n to datacount do begin
   fb[i]:=fb[i-1]+tjb[i];
   fs[i]:=fs[i-1]+tjs[i];
   if tjs[i] then fb[i]:=0;
   if tjb[i] then fs[i]:=0;
   if fb[i]=1 and tjb[i] then fb1[i]:=1;
   if fs[i]=1 and tjs[i] then fs1[i]:=1;
end;
drawicon(fb1 ,l,4);
drawicon(fs1 and tss1>2 ,h,5);


引用:888.问:
在100日内,从股价最低点到最高点,标出0。618。0。382的位置上画出线。
相反从最高到最低,也同样标出2条线
     答(股市骑兵00):
hh:hhv(h,100);
ll:llv(l,100);
f1:(hh-ll)*0.618+ll;
f2:(hh-ll)*0.382+ll;



引用:889.问:
我想只输出指标线,而不输出数值,如何写?
    如:ma5:ma9c,5);只输出指标线,而不输出数值
     答(bajatje):
别名: 画分段线
所属类别: 绘图函数  参数数量: 2

分段绘制指标线。
用法:
PARTLINE(COND,PRICE),满足COND条件绘制PRICE连线。
例如:PARTLINE(C>REF(C,1),C),colorred表示收盘大于前收以红色绘制收盘价连线。
PARTLINE(1,ma5);



引用:890.问:
求今日向前有多少根k线的最高价大于且最低价小于今日收盘价?
     答(股市骑兵00):
最后周期和光标位统计大致这样。

fc:=c;pg:=datacount;//可改为SYSPARAM(1)光标统计
x:=h>fc[pg] and ly:=sum(x,0)-x[pg];
y[pg];
             引用:891.问:
只计算今天与前几日连续符合条件的数量,不是累计相加的数量。
     答(股市骑兵00):
n:=5;//天数调节
fc:=c;pg:=SYSPARAM(1);//可改为SYSPARAM(1)光标统计
x:=h>fc[pg] and ly:=sum(x,n)-x[pg];
y[pg];  



引用:892.问:
如何取图表内第一根K线到最后一根K线之间的时间差?

要求几天几小时几分钟。
     答(hx817):
rj:=date;fz:=time;
d1:=rj[SYSPARAM(3)];d2:=rj[SYSPARAM(2)];
t1:=fz[SYSPARAM(3)];t2:=fz[SYSPARAM(2)];
fh1:=intpart(t1/10000);fh2:=intpart(t2/10000);
fm1:=intpart((t1-fh1*10000)/100);fm2:=intpart((t2-fh2*10000)/100);

fd:=DATEDIFF(d2,d1);
hh:=fh1-fh2;
mm:=fm1-fm2;

if mm<0 then begin
  hh:=hh-1;
  mm:=mm+60;
end;

if hh<0 then begin
  fd:=fd-1;
  hh:=hh+24;
end;
天:fd;
时:hh;
分:mm;



引用:893.问:
如何引用05年4月中旬--6月初,这段时间周期内的最低价。

     答(bajatje):
w1:=barslast(date<=m1);
w2:=barslast(date<=m2);
ref(LLv(L,w1),w2);

macd 预计交叉价
d:ema(c,12)LINETHICK;
a:ema(c,26)LINETHICK;
e:=ema(d-a,9);
今日交叉价:(351*ref(e,1)+325*ref(a,1)-297*ref(d,1))/28LINETHICK;
明日交叉价:(351*e+325*a-297*d)/28LINETHICK;



引用:894.问:
个数学公式,如何写
{[(1+2+3+4+5)*5-2]*2*3*4+20}*2/64
其中(1+2+3+4+5)这里面是最近5天的收盘价格,其它的数字是常数
是不是用datacount引用前5天的价格?
     答(清扬):
((MA(C,5)*5*5-2)*2*3*4+20)*2/64
// MA(C,5)*5  为最近五天收盘价之和
    答(hx817):
m1:ma(c,5);
m2:(c+ref(c,1)+ref(c,2)+ref(c,3)+ref(c,4))/5;



引用:895.问:
帮忙编一个5分钟与60分钟K线同图显示公式.
     答(股市骑兵00):
以前做的公式改了下,5分钟K线使用
if DATATYPE<>2 then exit;
bc:=12;sj:=MOD(BARPOS-1,bc)=0 OR BARPOS=1;
zsj:=sum(sj,0);dzsj:=zsj[DATACOUNT]-zsj;
x:=DATACOUNT-BARPOS+1;zq:=SUMBARS(sj,1);
y:=SUMBARS(sj,x-dzsj);y1:=SUMBARS(sj,x-1-dzsj);
开60:ref(o,y-1),LINETHICK0;
高60:if(ISLASTBAR,hhv(h,zq),ref(hhv(h,bc),y1)),LINETHICK0;
低60:if(ISLASTBAR,llv(l,zq),ref(llv(l,bc),y1)),LINETHICK0;
收60:if(ISLASTBAR,ref(c,y1-1),ref(c,y1)),LINETHICK0;
STICKLINE(收60>=开60,收60,开60,7,1),colorred;
STICKLINE(收60>=开60,收60,高60,0.1,1),colorred;
STICKLINE(收60>=开60,开60,低60,0.1,1),colorred;
STICKLINE(收60<开60,收60,开60,7,0),colorcyan;
STICKLINE(收60<开60,开60,高60,0.1,0),colorcyan;
STICKLINE(收60<开60,收60,低60,0.1,0),colorcyan;
涨幅60:收60/ref(收60,1)*100-100,LINETHICK0;
    答(股市骑兵00)
       要同图
1.建个引用公式名:X5
cc:c;
oo:o;
hh:h;
ll:l;
2.再用下面的公式
if DATATYPE<>2 then exit;
n:=12;pn:=mod(barpos-1,n);
ik:=pn=0 or ISLASTBAR or refx(pn=0,1);
收:"x5.cc#min60",LINETHICK0;
开:"x5.oo#min60",LINETHICK0;
高:"x5.hh#min60",LINETHICK0;
低:"x5.ll#min60",LINETHICK0;
m:=收>=开;w:=收<开;f:=ISLASTBAR*(pn<6);
PARTLINE(pn>0 and m,收),COLORRED;
PARTLINE(pn>0 and m,开),COLORRED;
PARTLINE(pn>0 and w,收),COLORBLUE;
PARTLINE(pn>0 and w,开),COLORBLUE;
STICKLINE(ik and m,开,收,0.1,1),COLORRED;
STICKLINE(ik and w,开,收,0.1,1),COLORBLUE;
STICKLINE((pn=6 or f) and m,收,高,0.1,1),COLORRED;
STICKLINE((pn=6 or f) and m,开,低,0.1,1),COLORRED;
STICKLINE((pn=6 or f) and w,开,高,0.1,1),COLORBLUE;
STICKLINE((pn=6 or f) and w,收,低,0.1,1),COLORBLUE;



引用:896.问:
求某天(可以设定)到今天的换手率总和。
     答(cwy):
RQ:=IF(DATE=1050104,1,0);//在1050104处换入你的日期
N天的换手率总和:SUM(IF(BARSLAST(RQ)>0,V,0),0)/FINANCE(7);



引用:897.问:
5日ma、10日ma、30日ma相交在一点时,当日股价上穿该点涨停,(包括st),成功率很高
     答(hx817):
st:=if(INBLOCK('ST板块') or INBLOCK('*ST板块'),1.05,1.1);
zt:=ROUND(100*st*ref(c,1))/100<=c;
m1:=ma(c,5);
m2:=ma(c,10);
m3:=ma(c,30);
tj:BETWEEN(m1,o,c) and BETWEEN(m2,o,c) and BETWEEN(m3,o,c) and zt



[Copy to clipboard]CODE:898.问:
我想请你帮做一下,就是我用光标在一个点位拉到另一个点位时,就出现一个长方形,在这个长方形里出现三条横线,它们分别在三分之一,三分之二和二分之一的点位上,最好能显示出数据.

    答(股市骑兵00):
INPUT:m(48);//周期调节
x:=3;p:=SYSPARAM(1);
ws:=BARPOS;ws1:=if(wswsp:=p-ws1+1;wsp1:=ws1-1;
h1:=hhv(h,ws1);l1:=llv(l,ws1);
hp:=h1[p];lp:=l1[p];hlpx:=(hp-lp)/x;
if p=1 then exit;
DRAWSL(ws=wsp[p],hp,0,wsp1[p],3);
DRAWSL(ws=wsp[p],lp,0,wsp1[p],3);
DRAWSL(ws=wsp[p],lp+hlpx,0,wsp1[p],3);
DRAWSL(ws=wsp[p],lp+hlpx*2,0,wsp1[p],3);
STICKLINE(ws=wsp[p],hp,lp,0.5,1);
STICKLINE(ws=p,hp,lp,0.5,1);
DRAWNUMBER(ws=wsp[p],hp,hp,2),SHIFT2;
DRAWNUMBER(ws=wsp[p],lp,lp,2),SHIFT2;
DRAWNUMBER(ws=wsp[p],lp+hlpx,lp+hlpx,2),SHIFT2;
DRAWNUMBER(ws=wsp[p],lp+hlpx*2,lp+hlpx*2,2),SHIFT2;
DRAWSL(ws=wsp[p],lp+(hp-lp)/2,0,wsp1[p],3);


引用:899.问:
前一天的K线振幅为5%以上,跌幅为—3%以上。今天的振幅孕育在昨天的
振幅之内,同时KDJ值均小于20。
     答(欣儿):
a1:=ref((h/l-1)*100,1)>5 and (ref(c,1)/ref(c,2)-1)*100<-3 and hand la2:="kdj.k"<20 and "kdj.d"<20 "kdj.j"<20;
a1 and a2;



引用:900.问:
节气不在交易日内,如何在离它最近的这一天近似表示出来?
比如: 

VAR7:=DRAWTEXT(date=LSOLARTERMDATE(9),0,'*立夏');
VAR8:=DRAWTEXT(date=LSOLARTERMDATE(10),0,'*小满');
VAR9:=DRAWTEXT(date=LSOLARTERMDATE(11),0,'*芒种');

今年内这三个节气都不在交易日内,如何在离它最近的这一天近似表示出来?并与正常能表示的节气区别开来?

     答(bajatje):
VAR7:DRAWTEXT(barslast(date<=LSOLARTERMDATE(9))=1,0,'*立夏');
VAR8:DRAWTEXT(barslast(date<=LSOLARTERMDATE(10))=1,0,'*小满');
VAR9:DRAWTEXT(barslast(date<=LSOLARTERMDATE(11))=1,0,'*芒种');