speedx自行车哪个国家:公式求助1000例(17)

来源:百度文库 编辑:偶看新闻 时间:2024/05/07 13:46:34
引用:801.问:
均线拐头向上向下,均线日期可设
    答(股市骑兵00):
INPUT:N(5);//参数
ma1:=ma(c,n);
ma1>ref(ma1,1);//上。
ma1


引用:802.问:
      指南针的强者横强公式,感觉这指标不错,请高给改造成主图指标.
VAR1:=AMOUNT/VOL/100;
VAR2:=(3*HIGH+LOW+OPEN+2*CLOSE)/7;
VAR3:=SUM(AMOUNT,34)/VAR1/100;
VAR4:=DMA(VAR2,VOL/VAR3);
VAR5:=100*(C-VAR4)/VAR4;
次强上轨:(MA(VAR5,20)+STDP(VAR5,20)),COLORRED;
次强下轨:(MA(VAR5,20)-STDP(VAR5,20)),COLORRED;
强弱线:(次强上轨+次强下轨)/2,POINTDOT,COLORWHITE,LINETHICK2;
强势区上轨:(MA(VAR5,20)+1.7*STDP(VAR5,20)),COLOR10FFFF;
强势区下轨:(MA(VAR5,20)-1.7*STDP(VAR5,20)),COLOR10FFFF;
标准线:VAR5,COLORGREEN;
    答(释少男):
{n1 5 , n2  2 ,  n  20 , p  20  ,a1  8 , a2  20 , a3  8}
A:=wMA(C,n1);
B:=REF(A,n2);
{STICKLINE(A>=B,A,b,8,1),COLOR000099;
STICKLINE(A>=B,A,B,5,1),COLOR0000BB;
STICKLINE(A>=B,A,B,3,1),COLOR0000DD;
STICKLINE(A>=B,A,B,2,1),COLOR0000FF;
STICKLINE(A>B,A,H,1,1),COLOR0000ff;

STICKLINE(A<=B,A,B,8,2),COLOR009900;
STICKLINE(A<=B,A,B,5,2),COLOR00bb00;
STICKLINE(A<=B,A,B,3,2),COLOR00cc00;
STICKLINE(A<=B,A,B,2,2),COLOR00ee00;

STICKLINE(A
控盘点:(2*a+ref(a,1)+ref(a,2)+ref(a,3))/5,LINETHICK1;{Bollinger's  Band Net , BBN , 天罗地网}

中:WMA(CLOSE,n),colorFF9999,LINETHICK2;
天:中+(p/A1)*STD(C,N),colorff9911,linethick2;
罗:中+(p/A2)*STD(CLOSE,N),COLORGREEN;
地:中-(p/A2)*STD(CLOSE,N),COLOR00FFFF;
网:中-(p/A3)*STD(CLOSE,N),COLORFF66ff,linethick2;
drawnumber(islastbar,中,中,2),shift3,align1,colormagenta;
drawnumber(islastbar,天,天,2),shift3,align1,colormagenta;
drawnumber(islastbar,罗,罗,2),shift3,align1,colormagenta;
drawnumber(islastbar,地,地,2),shift3,align1,colormagenta;
drawnumber(islastbar,网,网,2),shift3,align1,colormagenta;
fo:=OPEN;
fh:=HIGH;
fl:=LOW;
fc:=CLOSE;
<%
vo=ffl.vardata("fo")
vh=ffl.vardata("fh")
vl=ffl.vardata("fl")
vc=ffl.vardata("fc")
last=ubound(vc)

vc(0)=(vh(0)+vl(0)+2*vc(0))/4
for i=1 to last
  vo(i)=(vo(i-1)+vc(i-1))/2
  if vo(i)>vh(i) then vh(i)=vo(i) else vh(i)=vh(i)
  if vo(i)  vc(i)=(2*vc(i)+vh(i)+vl(i))/4
next

ffl.vardata("fo")=vo
ffl.vardata("fh")=vh
ffl.vardata("fl")=vl
ffl.vardata("fc")=vc

%>

KK:=IF(fc>=fo AND (fc>=REF(fc,1) or REF(fc,1)>=REF(fo,1)),1,IF(fc多空线:=(MA(CLOSE,6)+MA(CLOSE,13)+MA(CLOSE,26))/3,COLORYELLOW;
今:=(fo+fc)/2,SHIFT1;
转:=IF(KK=1,MIN(fc,fo),IF(KK=-1,MAX(fc,fo),IF(REF(KK,1)=1,MIN(fc,fo),IF(REF(KK,1)=-1,MAX(fc,fo),(fc+fo)/2)))),POINTDOT,COLORYELLOW;

Balance:=If(C=O,C,If(C>O,C+(H-C)/2,C-(C-L)/2));
BBase:=(H-L)/2;
高点:=(Balance+BBase),SHIFT1,COLORGRAY;
低点:=(Balance-BBase),SHIFT1,COLORGRAY;
明高:=(Balance+BBase),LINETHICK0,COLORGRAY;
明低:=(Balance-BBase),LINETHICK0,COLORGRAY;

EXPLAIN(H>=L,'区   间   预   测:'),COLORMAGENTA;
EXPLAINEX(H>=L,'今日高点:',REF(高点,1),2,0),COLORCYAN;
EXPLAINEX(H>=L,'今日低点:',REF(低点,1),2,0),COLORCYAN;
EXPLAINEX(H>=L,'明日高点:',明高,2,0),COLORYELLOW;
EXPLAINEX(H>=L,'明日低点:',明低,2,0),COLORYELLOW;

drawicon(天drawicon(天>ref(天,1) And ISLASTBAR,天,4),shift1,,align1;

drawicon(罗drawicon(罗>ref(罗,1) and islastbar,罗,4),shift1,,align1;

drawicon(中>ref(中,1) and ISLASTBAR,中,4),shift1,,align1;
drawicon(中
drawicon(地drawicon(地>ref(地,1) and islastbar,地,4),shift1,,align1;

drawicon(网>ref(网,1) and ISLASTBAR,网,4),shift1,,align1;
drawicon(网=6,10000,100000);



引用:803.问:
飞狐能不能实现这样的功能:
随光标的移动找到当日K线的最低点,然后能自动划出最低点价格X倍的横线。
    答(股市骑兵00):
LL:=L;
X*LL[SYSPARAM(1)];



引用:804.问:
      混沌分形理论的波浪结构公式源码

    答(jesse_huch):
鳄鱼线
AAA:=MA(CLOSE,E1);
MA1:REF(AAA,8),COLORBLUE;
BBB:=MA(CLOSE,E2);
MA2:REF(BBB,5),COLORRED;
CCC:=MA(CLOSE,E3);
MA3:REF(CCC,3),COLORGREEN;

其中E1:13,E2:8,E3:5

分行信号
INPUT:N(3,0,600);
H1:=BACKSET(REF(HIGH,N)=HHV(HIGH,2*N+1),N+1);
GD:=FILTER(H1,N) AND HIGH=HHV(HIGH,N+1);
DRAWICON(GD,HIGH*1.02,10);
L1:=BACKSET(REF(LOW,N)=LLV(LOW,2*N+1),N+1);
DD:=FILTER(L1,N) AND LOW=LLV(LOW,N+1);
DRAWICON(DD,LOW*0.99,11);

AO速度公式
INPUT:C1(5,0,600);
INPUT:C2(34,0,600);
INPUT:N(5,0,600);
HU:=MA((HIGH+LOW)/2,C1);
CH:=MA((HIGH+LOW)/2,C2);
AO:HU-CH,,COLORGRAY,LINETHICK0;
均线:MA(AO,N),COLORGRAY;
速度:HU-CH,STICK,COLOROOFF33;
STICKLINE(AO>REF(AO,1) OR AO=REF(AO,1),AO,0,0.8,1),COLORRED;
STICKLINE(AO


引用:805.问:
要求:
第一:时间是每周的星期一(连续三天阴线 )
第二:跌幅大于5%

    答(bajatje):
w:=barslast( hour=1);
f:=c/ref(c,1);
f<0.95 and w=0;


count(o


引用:806.问:
请帮助做一个量的公式!
要求:
当天K线是红色的,量就为红
否则为绿

    答(股市骑兵00):
x:=c>o or (c=o and c>ref(c,1));
STICKLINE(x,0,v,9,1),Color0000FF;
STICKLINE(x=0,0,v,9,0),Color00FF00;



引用:807.问:
如何写:
在光标指示的前12天处花一道竖线

    答(bajatje):
VERTLINE(SYSPARAM(1)-12=barpos)
    答(pengyou):
       也可以
n:=SYSPARAM(1);
a:=barpos;
VERTLINE(n-12=a);
VERTLINE(n=a);

你也可以加上数字
dum----



[Copy to clipboard]CODE:808.问:
      向量K棒全对,除了一个圆圈,
我猜可能是分时数据的错误,因为数据有误的那天是11月26日,不是特别的时间切换点,
能否再帮忙看一次向量K棒码

    答(股市骑兵00):
n:=240/5;//240代表台湾每天固定的总交易时间,单位分钟!我不清楚就用240先代替了!
hv:=v;hc:=c;
xx:=INTPART((BARPOS-1)/n);
hh:=hhvbars(v,0);q:=DATACOUNT-hh;
y:=BARSLAST(xx<>ref(xx,1))+1;hh1:=hhvbars(v,y);

a:=0*c;b:=0*c;
for i=1 to DATACOUNT do begin
  if xx[i]=0 and DATACOUNT<=n then begin
    a[i]:=hv[q[DATACOUNT]];
      b[i]:=hc[q[DATACOUNT]];
end;
  if xx[i]=0 and DATACOUNT>n then begin
    a[i]:=hv[n-hh[n]];
      b[i]:=hc[n-hh[n]];
end;
  if xx[i]>0 and xx[i]    a[i]:=hv[(xx[i]+1)*n-hh1[(xx[i]+1)*n]];
      b[i]:=hc[(xx[i]+1)*n-hh1[(xx[i]+1)*n]];
end;
  if xx[i]=xx[DATACOUNT] and xx[i]>0 then begin
    a[i]:=hv[DATACOUNT-hh1[DATACOUNT]];
      b[i]:=hc[DATACOUNT-hh1[DATACOUNT]];
   end;
end;
高V:A;
高C:B;
{RV:STKINDI(STKLABEL,'S5.高V',0,2);
RC:STKINDI(STKLABEL,'S5.高C',0,2);}


引用:809.问:
三均线中,Q交W点到Q交E点(交叉点下垂到W)的Q和W两线之间三角涂色.
能否将图中红块,在指标中表示?

    答(股市骑兵00):
应该可以吧,不知你是什么线,就以均线为例了,不知我有没理解错
M1:MA(C,3);M2:MA(C,10);
X:=CROSS(M1,M2);
Y:=BARSLAST(X)<4;//3日均线和10日均线相交小于4日就涂色。
FILLRGN(Y,M1,M2);

    问:
我想用三根均线,如
q:ma(c,5);
w:ma(c,10);
e:ma(c,20);
当Q线上穿W E线时,Q线 在W Q线间的这段线到W线画个直角三角
    答(股市骑兵00):
q:ma(c,3);
w:ma(c,10);
e:ma(c,30);
x:=max(w,e);
y:=min(w,e);

p1:=CROSS(q,x);p2:=CROSS(q,y);
k:=BARSLAST(p2);k1:=BARSLAST(p1);
u:=ref(ANY(qg:=BACKSET(p1 and u,k+1)-p1;
FILLRGN(g>0,q,y);
    答(股市骑兵00):
q:ma(c,3);
w:ma(c,10);
e:ma(c,30);
x:=max(w,e);
y:=min(w,e);

p1:=CROSS(q,x);p2:=CROSS(q,y);
k:=BARSLAST(p2),LINETHICK0;k1:=BARSLAST(p1);
u:=ANY(qg:=BACKSET(REFX(p1,1) and u and REFX(p2,1)=0 and k<4,k),LINETHICK0;
FILLRGN(g>0 ,q,y);


引用:810.问:
      我想把主图上的数值分几行来表示,因为我要在主图上显示的数值很多,
如果不分行的话一行显示不完。请问如何表达
    答(股市骑兵00):
       参考:
fc:=c;fh:=h;p:=SYSPARAM(1);
DRAWTEXT(BARPOS=SYSPARAM(2),SYSPARAM(4),'收盘:'+NUMTOSTR(fc[p],2)+'\n最高:'+NUMTOSTR(fh[p],2));//\n意思换行。
引用:811.问:
      要实现:
1,从A成立的高点到下一个A成立的高点(A与A相临的情况);
2,从A成立的高点到下一个B成立的低点(A与B相临的情况);
3,从B成立的低点到下一个B成立的低点(B与B相临的情况);
4,从B成立的低点到下一个A成立的高点(B与A相临的情况);

能否将上面的第1、4种情况的线段画成红色,将第2、3种情况
的线段画成绿色。

    答(bajatje):
d:=a+b;//a、b不能同时成立
j:=a*h+b*L;
POLYLINE(d,j);
    答(bajatje):
d:=a+b;//a、b不能同时成立
w:=barslast(d);
j:=a*h+b*L;
POLYLINE(d,j);
PARTLINE(j>ref(j,w),j);



引用:812.问:
      请帮忙把这个FXJ公式改成飞狐的
{完全换手及所用天数}
VARIABLE:K=1;
VAR1:=SUM(VOL,0);
VAR2:=VAR1/CAPITAL;
N:=FLOOR(VAR2);
IF N=REF(N,1)+1 THEN BEGIN
STICKLINE(C,0,80,4,1);
DRAWTEXT(C,80,' 第'),ALIGN0,COLORGREEN;
DRAWTEXT(C,70,' '+NUMTOSTR( N)),ALIGN0,COLORRED;
DRAWTEXT(C,60,' 次'),ALIGN0,COLORGREEN;
DRAWTEXT(C,50,' 完'),ALIGN0,COLORGREEN;
DRAWTEXT(C,40,' 全'),ALIGN0,COLORGREEN;
DRAWTEXT(C,30,' 换'),ALIGN0,COLORGREEN;
DRAWTEXT(C,20,' 手'),ALIGN0,COLORGREEN;
DRAWTEXT(C,10,' '+NUMTOSTR( K)+'天'),ALIGN0,COLORGREEN;
K:=1;
END
ELSE
K:=K+1;

    答(股市骑兵00):
{限制坐标参数:0;5;}
VAR1:=SUM(VOL,0);
VAR2:=VAR1/CAPITAL;
N:=FLOOR(VAR2);
TS:=SUMBARS(VOL,CAPITAL);
X:=N>REF(N,1);
VERTLINE(x);
DRAWTEXT(X,3,'次换手');
DRAWNUMBER(X,3,N,0),ALIGN2;
DRAWTEXT(X,2,'天');
DRAWNUMBER(X,2,TS,0),ALIGN2;



引用:813.问:
     求助编一个公式,量比逐渐放大,股价也逐渐走高,在分时图中量比总的趋势是放大的,
     价格是逐渐走高的即时选股公式
    答(hx817):
input:n(4);//参数N用来设置连续多少周期走高,用在短周期,可设置大些
T:=BARSLAST(date<>ref(date,1))+1,LINETHICK0;
LB:=(240/OPENMINUTES(TIME))*(SUM(VOL,T)/"VOL.MA1##DAY");//量比
tj:all(lb>ref(lb,1),n) and all(c>ref(c,1),n);



引用:814.问:
请你帮做一个当日K线是十字星的选股指标

    答(股市骑兵00):
十字星对价格上有比例要求。
BETWEEN(c/o,0.997,1.003) and h>max(c,o) and l


引用:815.问:
想法是当日收的十字星在近期是最低点,这个近期就是周期,是可以设置的,好比说N是5日,
十日,30日等不限,使用者可以自己调整,但十字星的最低价也是近期最低价,

    答(kjyhao):
input:n(20,1,60);
BETWEEN(c/o,0.997,1.003) and h>max(c,o) and l


引用:816.问:
sTD(x/n)为x的n日估算标准差怎么理解

    答(kjyhao):
这是一个标准的数学表达方式;即:STD估算标准差,即为估算样本方差的开方;
而方差,可以用公式:MA(POW(C,2),5)-POW(MA(C,5),2);求出!!!
如:
MA(POW(C,2),5)-POW(MA(C,5),2);
估算样本方差:是总体方差的N/(N-1)倍。
设:n=5;

std(c,5);
aa:=MA(POW(C,2),5)-POW(MA(C,5),2);
sqrt(aa*5/(5-1));



引用:817.问:
分钟周期MACD,并把所有周期的MACD合并了
    答(股市骑兵00):
{<日,周,月>同图MACD代码,公式名:X12}{Q为周期参数调节,=0为日线,=1为周线,=2为月线,全部没有未来数据!}
input:long(26,20,100),short(12,5,40),m(9,2,60),q(0,0,2);
fc:=c;x:=DATE>ref(DATE,1);
y:=datediff(ref(date,1),date)<>weekday-ref(weekday,1);
z:=intpart(date/100)<>REF(intpart(date/100),1);
if q=0 then begin rd:=x; DRAWTEXT(ISLASTBAR,0,'<日>'),SHIFT1; end;
if q=1 then begin rd:=y; DRAWTEXT(ISLASTBAR,0,'<周>'),SHIFT1; end;
if q=2 then begin rd:=z; DRAWTEXT(ISLASTBAR,0,'<月>'),SHIFT1; end;
xq:=BARSLAST(rd)+1;
dyz:=DATACOUNT-BARSSINCE(xq=1)-1;
ko:=dyz[DATACOUNT];
e1[ko]:=fc[ko];
e2[ko]:=fc[ko];
DIFF[ko]:=e1[ko]-e2[ko];
DEA[ko]:=DIFF[ko];

for i=ko+1 to DATACOUNT do
begin
  e1:=(2*fc+(SHORT-1)*e1[i-xq])/(SHORT+1);
  e2:=(2*fc+(LONG-1)*e2[i-xq])/(LONG+1);
  DIFF:e1-e2;
  DEA:(2*DIFF+(m-1)*DEA[i-xq])/(m+1);
  MACD:2*(DIFF-DEA),COLORSTICK;
end;
//引用分钟K线起点日期代码,验证公式时使用的。
cc:ref(date,BARPOS-1),LINETHICK0;
          .................

{验证公式代码,15分钟K线数据必须准确!}
input:long(26,20,100),short(12,5,40),m(9,2,60);
cc:=STKINDI(STKLABEL,'x12.cc',0,3);
x:=DATACOUNT-BARSLAST(DATE=cc);
fc:=c;y:=SETLBOUND(fc,x[DATACOUNT]);
DIFF : EMA(fc,SHORT) - EMA(fc,LONG);
DEA  : EMA(DIFF,M);
MACD : 2*(DIFF-DEA), COLORSTICK;
//以下为引用15分钟的MACD数据。
DIFF1:STKINDI(STKLABEL,'x12.DIFF',0,3);
DEA1: STKINDI(STKLABEL,'x12.DEA',0,3);
MACD1:STKINDI(STKLABEL,'x12.MACD',0,3);



引用:818.问:
公式代码如下:
INPUT:N(3,2,10);{产生涨幅的N天数调节,这里不调也可用参数调节}
ZF:=1.15;{产生涨幅调节,例如:现在的1.15代表涨幅至少大于15%}
A:=0;B:=0;
FOR I=1 TO N DO
IF CLOSE/REF(CLOSE,I)>=ZF THEN BEGIN
A:=A+I;
BREAK;
END
G:=IF(A>0.1,REF(VOL,A),0);
FOR I1=1 TO N DO
IF G=REF(G,I1) THEN BEGIN
B:=B+A;
BREAK;
END
Q:A-B;{计算出的最佳买点,例如:数值为3就代表前3天是最佳买点。该数据可以和其它公式配合使用,也可以验证其他公式的准确性};

这一句  IF CLOSE/REF(CLOSE,I)>=ZF THEN BEGIN
在飞狐测试时提示语法错误,
     答(南客):
IF条件语句
语法:IF cond THEN expr1 ELSE expr2
如果 cond 条件成立,则执行语句 expr1,否则执行 expr2 语句。
说明:
  1、在条件判断比较简单的情况下,ELSE expr2 子句可以省略。
  2、条件 cond 必须是单值变量,不能为序列变量。
     条件语句的语法比较简单,但使用时却容易出错,下面举若干示例。
   例1:修改成交量公式VOL,当流通盘不为零且当前周期为日以上周期时,显示换手率,代码参考如下
  (仿此,大家绕过指标模组,可以自行设计,“绑定”到周期、券种等的公式)
      VOL,VOLSTICK;

MA1:MA(VOL,M1);
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);
if capital>0 and DATATYPE>=6 then

   换手率:vol/capital; //日以上周期及非指数个股,显示换手率
当切换到60分钟及以下周期,或者切换到大盘(此时流通盘=0),会发现“换手率”指标线、
名称及数值都不显示。
   以上是较简单的情况,没有使用 ELSE expr2 子句。上面代码稍加改进,
使用复合语句,使之适用于任意周期:
   例2,修改成交量公式,流通盘不为0时,显示换手率(60分钟及以下周期,计算当日最新的换手率),
   代码参考如下:
    VOL,VOLSTICK;
MA1:MA(VOL,M1);
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);

IF CAPITAL>0 then //如果换手率>0,则
  IF DATATYPE>=6 then //如果周期为日及以上的较长周期,则
    b:=VOL/CAPITAL*100
  else //否则
  begin //复合语句开始,即以下3条语句,视为1条语句,end表示复合语句结束
    tj:=DAY>REF(DAY,1) or BARSSINCE(CLOSE)=0;
    ts:=BARSLAST(tj)+1;
    b:=SUM(VOL,ts)/CAPITAL*100;
  end;
换手率:b;

   例3、通过参数N,控制调整均线数,代码参考如下:
    input:p1(5,0,300),p2(10,0,300),p3(20,0,300),p4(30,0,300),n(4,1,4);{参数定义}
IF n>0 then MA1:MA(CLOSE,P1);{如果n>=1则输出ma1指标线}
IF n>1 then MA2:MA(CLOSE,P2);{如果n>=2则输出ma1指标线}
IF n>2 then MA3:MA(CLOSE,P3);{如果n>=3则输出ma1指标线}
IF n>3 then MA4:MA(CLOSE,P4);{如果n>=4则输出ma1指标线}

   在使用条件语句“IF cond THEN”中, cond 不能使用序列变量,
   这是最容易出错的地方,比如:
   {下面的代码是错误的}
fc:=close;
fo:=open;
if fc>fo then  //这里的fc、fo是序列变量,因此是错误的语法
  xx:=1
else
  xx:=0;

   这里,if fc>fo then 这种写法的本意是,“如果收盘价大于开盘价则”,
   是针对序列变量的每个数据(相当于数组的每个元素),在飞狐中,正确的写法应该是这样的:
   //如果xx是单值变量,则代码参考如下
fc:=close;
fo:=open;
for i=1 to datacount do //从第1根K线的位置,循环到最后1根K线的位置
  if fc>fo then  //这里,fc、fo代表某一天的收盘、开盘价,是单值变量
    xx:=1
  else
    xx:=0;
y:xx;

{以上代码,对单值变量xx有影响的部分仅是最后1根K线,因此上面的代码大多都进行了无效的计算。优化后的代码如下:}
fc:=close;
fo:=open;
if fc[datacount]>fo[datacount] then
  xx:=1
else
  xx:=0;
y:xx;
   源码:
//如果xx是序列变量,则代码参考如下
fc:=close;
fo:=open;
for i=1 to datacount do
  if fc>fo then
    xx:=1  //请注意这里跟上面代码的不同
  else
    xx:=0;
y:xx;



引用:819.问:
在分时图中,前2个小时的价格都走在平均价之上,进行即时选股?
    答(股市骑兵00):
//1分钟K线周期使用。
x:=BARSLAST(date>ref(date,1));
jx:=sum(AMOUNT,x+1)/sum(v*100,x+1);
y:=BARSLAST(if(ref(refx(jx,1)=0,1),0,refx(jx,1)=0));
cc:=if(jx=0,ref(jx,y),jx);
z:all(c>cc,120);



引用:820.问:
如何让定点数值随光标变化:

底:=c;
k:=200/(SYSPARAM(3)-SYSPARAM(2));
x7:=SYSPARAM(2)+INTPART(142/k)=BARPOS;
DRAWTEXT(x7,75,NUMTOSTR(底,2))colorred
    答(股市骑兵00):
是否这样?
底:=c;
k:=200/(SYSPARAM(3)-SYSPARAM(2));
x7:=SYSPARAM(2)+INTPART(142/k)=BARPOS;
DRAWTEXT(x7,75,NUMTOSTR(底[SYSPARAM(1)],2))colorred;
引用:821.问:
      公式,里面有这样一个语句
hh:=SYSPARAM(4),colorred;
ll:=SYSPARAM(5),colorred;
zx :   (hh-ll))/2;
但我不会在“zx” 这条画线的左边 、中间、、右边标识这条线的数值;

    答(hx817):
hh:=SYSPARAM(4),colorred;
ll:=SYSPARAM(5),colorred;
zx :(hh-ll)/2;
DRAWNUMBER(SYSPARAM(2)=BARPOS,zx,zx,2);//左边显示
DRAWNUMBER(SYSPARAM(3)=BARPOS,zx,zx,2);//右边显示
DRAWNUMBER(SYSPARAM(3)=INTPART((SYSPARAM(3)-SYSPARAM(2))/2)+BARPOS,zx,zx,2);//中间显示



引用:822.问:
请教这句话的表达方法?

前一星期:
xq:barslast(weekday-ref(weekday)<>datediff(fef(date,1),date));
前一月:
yue:barslast(intpart(date/100)<>ref(intpart(date?100),1);
那么:
前一天该如何表达?
前60分钟又该如何表达?

    答(股市骑兵00):
这样试试,30分钟线专用的:
input:long(26,20,100),short(12,5,40),m(9,2,60);
SJ:=BARSLAST(INTPART(BARPOS/2)<>REF(INTPART(BARPOS/2),1));
XQ:=IF(SJ,SJ,2);
ZDEA:="MACD引用.DEA#min60";
ZES:="MACD引用.ES#min60";ZEL:="MACD引用.EL#min60";
DIFF2:(2*C+(short-1)*REF(ZES,XQ))/(short+1)-(2*C+(long-1)*REF(ZEL,XQ))/(long+1);
DEA2:(2*DIFF2+(M-1)*REF(ZDEA,XQ))/(M+1);
MACD2 : 2*(DIFF2-DEA2), COLORSTICK;

    问:
       有两个问题
1,为什么要取"BARPOS/2",?
2,此公式好像只有第2小时和第4小时的数据是正确的,而第1和第3小时的数据不正确.
    答(股市骑兵00):
       你在公式下加句话,在画线位置比较数据看看。
VERTLINE(SJ),SHIFT1;

BARPOS/2因为你的数据是引用60分钟线在30分钟里看的。
60/30=2



引用:823.问:
飞狐主图中精美背景图怎么弄的
    答(清风斜阳):
{DRAWBKBMP(C>O,'背景8');}
jj:=(HIGH+LOW+CLOSE+OPEN)/4;
Var1:=MA(CLOSE,5);
Var2:=MA(CLOSE,10);
Var3:=MA(CLOSE,20);
Var4:=MA(CLOSE,30);
h1a:=(var1+var2+var3+var4)/4;
{STICKLINE(C>MA(h1a,13),MA(h1a,13),MA(h1a,13),8,0),colorYELLOW,linethick5;}
{IF C>MA(h1a,13) THEN MA(h1a,13),colorred ELSE MA(h1a,13),colorblue;}
STICKLINE(CLOSE>0,jj,jj,7,0),colorgreen;
{STICKLINE(CDRAWBKBMP(CLOSE>=OPEN or CLOSEVar1:=MA(CLOSE,5);
Var2:=MA(CLOSE,10);
Var3:=MA(CLOSE,20);
Var4:=MA(CLOSE,30);
h1a:=(var1+var2+var3+var4)/4;
{STICKLINE(C>MA(h1a,13),MA(h1a,13),MA(h1a,13),8,0),colorYELLOW,linethick5;}
{IF C>MA(h1a,13) THEN MA(h1a,13),colorred ELSE MA(h1a,13),colorblue;}
STICKLINE(CLOSE>=OPEN,HIGH,LOW,1,0),COLOR0000FF;
STICKLINE(CLOSE>=OPEN,HIGH,LOW,0,0),COLOR0000FF;
STICKLINE(CLOSE>=OPEN,CLOSE,OPEN,8,1),COLOR0000FF;
STICKLINE(CLOSE<=OPEN,HIGH,LOW,1,0),COLORFF0000;
STICKLINE(CLOSE<=OPEN,HIGH,LOW,0,0),COLORFFFF00;
STICKLINE(CLOSE<=OPEN,CLOSE,OPEN,8,0),COLORcyan;

如何画背景图

函数: DRAWBKBMP(COND,BMP)
参数:        
用法: 当图形上最后一组COND条件满足时,以MyBMP做背景:        
说明: 根据条件设置背景图
示例: 因为系统K线先画,会被后来的指标图覆盖了

这种公式K线要自己画,以下供参考
DRAWBKBMP(c>0,'mybmp');
STICKLINE(c>o or c=o and c>ref(c,1),l,h,0.1,0),colorred;
STICKLINE(c>o or c=o and c>ref(c,1),o,c,7,0),colorred;

STICKLINE(cSTICKLINE(c
把公式设为主图、主图叠加
DRAWBKBMP(c>0,'mybmp');
STICKLINE(c>o or c=o and c>ref(c,1),l,h,0.1,0),colorred;
STICKLINE(c>o or c=o and c>ref(c,1),o,c,7,0),colorred;

STICKLINE(cSTICKLINE(c


引用:824.问:
飞狐的实时图中,只能运用主图指标。
我想将obv放在实时图中用,但obv的数值太大,放不入去,
请编一个可以自动将数值调节到适用主图的obv

    答(bajatje):
试下
obv:sum(if(c>ref(c,1),v,if(vhh:=hhv(h,0);
LL:=LLv(L,0);
hv:=hhv(obv,0);
Lv:=LLv(obv,0);
b:=(hh-LL)/(hv-Lv);
y:=(hh+LL-(hv+Lv)*b)/2;
dj_obv:obv*b[datacount]+y[datacount];



引用:825.问:
1.如何统计在屏幕可见范围里,涨幅和跌幅的超过3%的K线个数,
2.如何统计在屏幕可见范围里,实体涨幅和跌幅的超过3%的K线个数。

    答(股市骑兵00):
zf:=c/ref(c,1)*100-100;
zf1:=c/o*100-100;
zq:=SYSPARAM(3)-SYSPARAM(2)+1;
x:=sum(zf>3 or zf<-3,zq);
y:=sum(zf1>3 or zf1<-3,zq);
x[SYSPARAM(3)];//涨幅
y[SYSPARAM(3)];//实体



引用:826.问:
分时走势图中的黄色的均价线如何在 K线图中显示,公式如何编?
    答(股市骑兵00):
1分钟周期个股使用:
x:=SUMBARS(date<>ref(date,1),1);
sum(AMOUNT,x)/sum(v*100,x);



引用:827.问:
具体到这个公式:
JJ:EMA(AMOUNT/V/100,10);
JJ3:EMA(AMOUNT/V/100,20);
如果该成选股或预警公式,那么,JJ3上行,现价重上JJ线,该怎么写呢
    答(股市骑兵00):
JJ:EMA(AMOUNT/V/100,10);
JJ3:EMA(AMOUNT/V/100,20);
cross(c,JJ) and jj3>ref(jj3,1);



引用:828.问:
a1:=(240/OPENMINUTES(TIME))*(v/"VOL.MA1##DAY");
a2:=(h-l)/a1;
aa1:=a1-ref(a1,1);
aa2:=a2-ref(a2,1);
var10:=aa1>0;
var101:=aa1<0;
var11:=aa2<0;
var12:=aa2>0;
var13:=var10 and var11;
var14:=var10 and var12;
var141:=var101 and var11;
var142:=var101 and var12;
DRAWICON(var13,0.5,12);
DRAWICON(var14,0.5,11);
DRAWICON(var141,0.5,10);
DRAWICON(var142,0.5,13);

按照上述公式原码,各色信号球应该是连续不断的,可为何出现间断?
    答(pengyou):
你看看

var10:=aa1>=0;
var101:=aa1<0;
var11:=aa2<0;
var12:=aa2>=0;



引用:829.问:
飞狐中自带的美国线(BAR线)含有开、高、低、收4个价,帮忙编个公式去表达成只有高、
低、收三个价的美国线;另外还想编一个只有高、低二个价的美国线
    答(cwy):
k:=(c>o or c=o and c>ref(c,1));
stickline(k,h,l,0.1,1),COLORCYAN;
stickline(not(k),h,l,0.1,0),COLORCYAN;
DRAWTEXT(k,c,' ̄')COLORCYAN;
DRAWTEXT(not(k),c,' ̄')COLORCYAN;

这是变通的办法,高、低、收三个价的美国线,如要高、低二个价的美国线,把下面两行
代码去掉即可



引用:830.问:
能否编个公式与SYSPARAM(4)类似,
用在副图VOL上显示最高成交量、最低成交量!
这样看起来多方便。

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

    答(hx817):
vol;

VC:=SYSPARAM(1);
VCV:=vol;
n:=SYSPARAM(3)-SYSPARAM(2);//計算畫面 K 線數量
hv:=hhv(v,n);//取畫面最大值
lv:=llv(v,n);//取畫面最小值
v=hv[DATACOUNT];//可視畫面中最大成交量位置
v=lv[DATACOUNT];//可視畫面中最小成交量位置

高低差:=hv[DATACOUNT]-lv[DATACOUNT];
百高: hv[DATACOUNT],COLORRED;
百低:Lv[DATACOUNT],COLORGREEN;
百875:高低差*0.875+Lv[DATACOUNT],POINTDOT,COLORYELLOW;
百750:高低差*0.75+Lv[DATACOUNT],COLORCYAN;
百667:高低差*0.667+Lv[DATACOUNT],POINTDOT,COLORYELLOW;
百625:高低差*0.625+Lv[DATACOUNT],POINTDOT,COLORCYAN;
百500:高低差*0.500+Lv[DATACOUNT],COLORMAGENTA;
百375:高低差*0.375+Lv[DATACOUNT],POINTDOT,COLORCYAN;
百333:高低差*0.333+Lv[DATACOUNT],POINTDOT,COLORYELLOW;
百250:高低差*0.25+Lv[DATACOUNT],COLORCYAN;
百125:高低差*0.125+Lv[DATACOUNT],POINTDOT,COLORYELLOW;

DRAWNUMBER(BARPOS=VC,VC,VCV,2),align3;

DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.039+Lv[DATACOUNT],'百分低量 ('+NUMTOSTR(百低,2)+')'),COLORGREEN;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.125+Lv[DATACOUNT],'12.5%↑ 87.5%('+NUMTOSTR(百125,2)+')'),COLORYELLOW;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.25+Lv[DATACOUNT],'25.0%↑ 75.0%('+NUMTOSTR(百250,2)+')'),COLORYELLOW;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.333+Lv[DATACOUNT],'33.3%↑ 66.7%('+NUMTOSTR(百333,2)+')'),COLORYELLOW;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.375+Lv[DATACOUNT],'37.5%↑ 62.5%('+NUMTOSTR(百375,2)+')'),COLORCYAN;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.500+Lv[DATACOUNT],'百分50('+NUMTOSTR(百500,2)+')'),COLORMAGENTA;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.625+Lv[DATACOUNT],'62.5%↓ 37.5%('+NUMTOSTR(百625,2)+')'),COLORCYAN;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.667+Lv[DATACOUNT],'66.7%↓ 33.3%('+NUMTOSTR(百667,2)+')'),COLORYELLOW;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.75+Lv[DATACOUNT],'75.0%↓ 25.0%('+NUMTOSTR(百750,2)+')'),COLORYELLOW;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.875+Lv[DATACOUNT],'87.5%↓ 12.5%('+NUMTOSTR(百875,2)+')'),COLORYELLOW;
DRAWTEXT(SYSPARAM(2)=BARPOS,高低差*0.991+Lv[DATACOUNT],'百分高量 ('+NUMTOSTR(百高,2)+')'),COLORRED;
因为 DRAWTEXT 还不支持序列变量,所以,你在光标移动的时候,上面百低 等等数值会变化,而在图线上的数值不会变化
引用:831.问:
从最后一次5日均线与10日均线交叉的地方画一线。
k1:=cross(ma(5),ma(10)) or cross(ma(10),ma(5)) ;
k2:=barslast(k1);
然后应该如何编写?
    答(股市骑兵00):
k1:=cross(ma(c,5),ma(c,10)) or cross(ma(c,10),ma(c,5));
sk:=sum(k1,0);
DRAWSL(sk>=sk[DATACOUNT]-1 and k1,c,0,0,0);



引用:832.问:
我觉得指南针的横盘度是一个把股价走势是否横盘进行了量化的不错的指标,但我不知道如何作,
我把指南针的相关的资料提供,能不能作一个类似的指标


HD(Horizontal Degree),中文名称叫横盘度。这是一个描述市场事实的指标,它把股价走势是否横盘进行了量化。
    股价横盘是被许多技术分析家和投资者所注意的一个市场特征,如何用指标来刻画这个特征,也是众多人追求的结果。指南针人终于巧妙地设计了这个指标。
    我们知道,股价横盘表示的是在一段时间内股价运行在一个区间内,并且没有明显的上涨或下跌趋势。也就是说股价在一段时期内走势为横盘包含两个要素:一是振幅要小,二是走势要水平。横盘度巧妙地综合了这两个要素。    指南针特有]横盘度指标是有参数的,在指南针软件里,横盘度指标一共有四个:HD5、HD20、HD60、HD200,它们分别表示5日横盘度、20日横盘度、60日横盘度、200日横盘度。这四个横盘类指标分别反映了从当日起,前5、20、60、200天的横盘状况。
    横盘度指标只考虑到股价走势因素,没有考虑到成交量的因素,所以横盘度指标基本上没考虑到市场成本的因素。
    横盘度指标的取值范围理论上为(-∞,+∞)。但是绝大多数时候取值都为(-100,+100)。  

    一般说来,横盘度指标的数值越靠近零(即绝对值越小),说明这段时间股价走势就越接近横盘。如果横盘度为0,说明这几天的走势可以认为看作是标准的横盘了。在横盘度取值很靠近0的条件下,如果横盘度为正数,说明股价走势为强势横盘,如果为负数,说明股价走势为弱势横盘。
    因为股价走势是否为横盘对于每个人来说答案还不是绝对一致的,也就是说每个人对横盘的标准还是有些差别的。有些走势,甲看来是横盘,而乙看来却不是横盘。所以,当横盘度指标到底多少时,股价走势才算横盘,我们并没有给出标准答案。建议大家自己去观察研究得出自己的标准。

    答(hx817):
简单可以这么理解
m5:=ma(c,5);
m20:=ma(c,20);
m60:=ma(c,60);
m200:=ma(c,200);
hd5:m5-ref(m5,1);
hd20:m20-ref(m20,1);
hd60:m60-ref(m60,1);
hd200:m200-ref(m200,1);



引用:833.问:
帮忙编个能在图中的高低点处显示涨跌幅或价格差数值的公式
    答(hx817):
input:n(10);
z:zig(4,n);
d:=refx(z>ref(z,1) and ref(z,1)g:=refx(zref(z,2),1);
w:=ref(barslast(d+g),1)+1;//少加1 修正
DRAWNUMBER(d+g,z,(z/ref(z,w)-1)*100,3),COLORYELLOW,ALIGN2;//涨跌幅
DRAWNUMBER(d+g,z,(z-ref(z,w)),3),COLORYELLOW,ALIGN1,shift1;//价格差



[Copy to clipboard]CODE:834.问:
如何求得下个月交易日总数
    答(股市骑兵00):
下个月。
r:=INTPART(date/100);
x:=r<>ref(r,1);y:=refx(x,1);
for i=LBOUND(y) to DATACOUNT-1 do
  for j=i+1 to DATACOUNT do
    if y[i] and y[j] then begin
      ts[i]:=j-i;
    break;
end;
DRAWNUMBER(y,h*1.02,ts,0);
    问:
我想求2005年4月的交易天数,或本月(3月)剩余的天数,
    答(hx817):
fm:=MONTH;lm:=fm[DATACOUNT];
//判断月份最后日期,有些年需要调整 28 为 29 日
lastday:=if(lm=1 or lm=3 or lm=5 or lm=7 or lm=8 or lm=10 or lm=12,31,
if(lm=4 or lm=6 or lm=9 or lm=11,30,28));
fd:=DAY;ld:=fd[DATACOUNT];
fw:=WEEKDAY;lw:=fw[DATACOUNT];
//上面取 K线数据的最后一个年、月、日
n:=0;m:=0;
while ld+n  lw:=mod(lw+1,7);
  n:=n+1;
  m:=m+if(BETWEEN(lw,0,6),1,0);
end;
星期几:lw;
多少天:n;
交易日:m;


引用:835.问:
     (1)这指标是用在实时图中选股。
     (2)个股当天实时图中,股价曾上穿均线后又回落,在再次穿越均线或靠住均线又拉起的那一刻。
     (3)最好能够加上股价均线是向上走,而量比曲线也是和股价均线同一趋势的量价配合完美的形态条件。
     (4)是用在下午14:00之后。是用作预警信号的,
    答(股市骑兵00):
这些笼统的问题呢,试着做了个给你参考吧。

//1分钟周期
if DATATYPE<>1 then exit;
sj:=hour>=14;
w:=OPENMINUTES(time);
量比:=240*sum(v,w)/w/"VOL.MA1##DAY";//量比的定义可能有误,你再看看。
tb:=sumbars(date<>ref(date,1),1);
均价:=sum(AMOUNT,tb)/sum(v*100,tb);
sum(cross(c,均价),tb)>1 and cross(c,均价) and 均价>ref(均价,1) and 量比>ref(量比,1) and sj;



引用:836.问:
飞狐F10公式--“户均持股”--统计`排序`解盘`选股能搞定吗
    答(yngs):
zt飞狐F10公式--“户均持股”--统计`排序`解盘`选股-

{2-户均持股:}{查找F10中股东人数的位置:}gdstar:=F10FIND('┃股东户数',1);
{取对应的数据资料:}       gdw1:=F10FIND('┃04-09-30',gdstar);gdw2:=F10FIND('┃04-06-30',gdw1);
    gdw3:=F10FIND('┃04-03-31',gdw3);gdw4:=F10FIND('┃03-12-31',gdw1);
{转换字符串为数值:}       gdtx1:=F10TEXT(gdw1+28,8);gdtx2:=F10TEXT(gdw2+28,8);
                         gdtx3:=F10TEXT(gdw3+28,8);gdtx4:=F10TEXT(gdw4+28,8);
{转换字符串为数值:}       gd1:=STRTONUM(gdtx1); gd2:=STRTONUM(gdtx2);
                         gd3:=STRTONUM(gdtx3); gd4:=STRTONUM(gdtx4);
{显示一:解盘显示户均持股}EXPLAIN(gdw1>1,'04-09-30 股/户:'+gdtx1);
                        EXPLAIN(gdw2>1,'04-06-30 股/户:'+gdtx2);
                        EXPLAIN(gdw3>1,'04-03-31 股/户:'+gdtx3);
                        EXPLAIN(gdw4>1,'03-12-31 股/户:'+gdtx4);
{显示二:对应显示户均持股在K线上:}
                        DRAWNUMBER(DATE=1041008,CLOSE,gd1,0),ALIGN4,COLORRED;
                        DRAWNUMBER(DATE=1040630,CLOSE,gd2,0),ALIGN4,COLORRED;
                        DRAWNUMBER(DATE=1040331,CLOSE,gd3,0),ALIGN4,COLORRED;
                        DRAWNUMBER(DATE=1031231,CLOSE,gd4,0),ALIGN4,COLORRED;
户均持股49:gd1;{2004 3季报户均持股量}  
户均持股46:gd2; {2004 2季报户均持股量}
户均持股43:gd3; {2004 1季报户均持股量}
户均持股312:gd4;{2003 年报户均持股量}
递增:gd1>gd2 and gd2>gd3 and gd3>gd4;
户均3至5千且递增:gd1>3000 and gd1<5000 and 递增;



引用:837.问:
我在用HHV函数时有2个疑问,想请教一下。
1、请问hhv(high,10)求10日最高价的表达式中的10日式怎么划分的
是从最后一根K线向回开始数的?还是第一天上市有K线开始数的?
2、我想求股票历史最高价用HHV(HIGH,0)好象并不能求,因为任何
股票的历史最高价只有一个,可是HHV(HIGH,0)能发出多个信号
为什么啊?
    答(hx817):
1、hhv(high,10),表示每个 K 线向前数 10 个
2、HHV(HIGH,0),表示每个 K 线是否历史最高价

hv:=hhv(h,0);
h=hv[DATACOUNT];

这样就可以找到你要的位置了



引用:838.问:
现在正在学习编制DLL公式,遇到困难。即怎样将飞狐的函数转化成编程语言,
即飞狐的函数怎么转化为如DELPHI语言代码?我看了博庭的DLL开发手册,里面没有这方面内容。
举一个简单的例子说明,如(C-REF(C,1))/REF(C,1)=0.1
在BEGIN和END 之间用DELPHI 应怎么写?因为好象DELPHI里是没有REF这类函数的。
    答(hx817):
用数组的方式
比如 (x[n]-x[n-1]/x[n-1]) = 0.1



引用:839.问:
这是结构波浪图,
1.每一波经过了几根k线能在转折时用数字表现出来吗  
2.每波中每根k线能用数字表现出来吗
    答(股市骑兵00):
大概这个样子的。

A1:=REF(HIGH,3)=HHV(HIGH,2*3+1); B1:=FILTER(A1,3); C1:=BACKSET(B1,3+1); D1:=FILTER(C1,3);{高点}
A2:=REF(LOW,3)=LLV(LOW,2*3+1); B2:=FILTER(A2,3); C2:=BACKSET(B2,3+1); D2:=FILTER(C2,3);{低点}

E1:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2; E2:=(HIGH+LOW)/2;{高低点出现在同一K线上时可作取舍}
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1=E2);
X1:=REF(BARSLAST(H1),1)+1; F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,10000),X1));
G1:=F1>REF(F1,1); I1:=BACKSET(G1,2); LD:=I1>REF(I1,1);{过滤后低点}
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1; F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
G2:=F2>REF(F2,1); I2:=BACKSET(G2,2); HD:=I2>REF(I2,1);{过滤后高点}
DRAWLINE(LD,L,HD,H,0),COLORWHITE,LINETHICK1,POINTDOT;
DRAWLINE(HD,H,LD,L,0),COLORWHITE,LINETHICK1,POINTDOT;
J1:=BACKSET(ISLASTBAR,MIN(BARSLAST(HD),BARSLAST(LD))+1); J2:=J1>REF(J1,1);
DRAWLINE(J2,IF(HD,H,L),ISLASTBAR,IF(BARSLAST(HD)>BARSLAST(LD),H,L),0),COLORWHITE,LINETHICK1,POINTDOT;
DRAWNUMBER(1,h*1.02,BARSLAST(ld or hd),0);



[Copy to clipboard]CODE:840.问:
       求移动平均线的写法
     答(hx817):
       移动平均线的N种写法(V3.5.30828 以上版本支持)
      (1).
      INPUT:n(5,1,300); //参数申明
VARIABLE:k=0; //变量申明
FOR i=0 TO n-1 DO k:=k+ref(close,i); //把最近 n 天的收盘价累加
MA1:k/n; //实现MA(C,N)
      (2).
      INPUT:N(5,1,300); //参数申明
VARIABLE:i=0,k=0,j=0; //变量申明
VAR1:=C;
FOR j=1 TO DATACOUNT DO BEGIN
  IF j>=n THEN BEGIN
    WHILE i      k:=k+VAR1[j-i];
      i:=i+1;
    END;
  MA2[j]:k/n; //实现MA(C,N)
  i:=0;
  k:=0;
  END;
END;
      (3).
      INPUT:N(5,1,300); //参数申明
VARIABLE:i=0,k=0,VAR1:=C; //变量申明
FOR j=1 TO DATACOUNT DO BEGIN
  k:=k+VAR1[j];
  IF j>=n THEN BEGIN
    IF j>n THEN k:=k-VAR1[j-n];
    MA3[j]:k/n; //实现MA(C,N)
    i:=0;
  END;
END;
   *    *    *    *    *
还有很多写法,还可以只计算最后1个有效数值,比如用于提高预警速度 引用:841.问:
      n日均线大角(八十度)向上,如何编代码?
      2.弧度如何换成角度值?

     答(bajatje):
      弧度*57.3=角度



引用:842.问:
5日、10日、21日线多头排列向上运行后,股价在5日线上方已超过八天。
这种形态的个股,在大盘处于下跌时,实用性很好。大盘强势时,不适用
     答(股市骑兵00):
ma5:=ma(c,5);
ma10:=ma(c,10);
ma21:=ma(c,21);
x1:=ma5>ma10 and ma10>ma21 and all(c>ma5,9);
x2:=ma5>ref(ma5,1) and ma10>ref(ma10,1) and ma21>ref(ma21,1);
xx:x1 and x2;



引用:843.问:
能不能编个公式,迅速算出某天或某个高低点距离今日的天数呢
     答(bajatje):
w:barslast(某天的条件);
w1:barslast(某个高低点的条件);



引用:844.问:
股票比例=
当天收盘价高于10日均线的股票数量 / 市场(沪深)全部股票的数量 * 100%

     答(hx817):
       (1)先做一个公式
          tj:c>ma(c,10);
       (2)而后用横向统计,将这个公式的数据刷到横向统计数据库中
          再建立公式调用横向统计数据
          ESTDATA(1)/STKCOUNT('上海A股');//对应数据库的位置,以及板块的设置



[Copy to clipboard]CODE:845.问:
看了南客老师的关于循环学习的贴,找了个南客老师编的移动成本的公式来练手,可是无意发现循环中的变量,没法按照我设想的显示,不知道是我哪里还没有体会到,55555,郁闷呀。

variable:pv[50]=0,pc[50]=0;
a0:=BARSCOUNT(c);
hh:=hhv(high,a0);
ll:=llv(low,a0);
fv:=100*vol/capital;
fh:=high;
fl:=low;
p:=sysparam(1);
dd:=(hh[p]-ll[p])/49;
for i=p downto 1 do begin
  sh:=(fh-ll[p])/dd+1;
  sl:=(fl-ll[p])/dd+1;
  dj:=fv/(sh-sl+1);
  for j=sl to sh do pv[j]:=pv[j]+dj;   
end;
s:=0;
for i=1 to 50 do if s
比如:我要显示s的变化,我直接跟
s;
但是出来的是一根直线,要移动光标才可以看见它曾经变化过,这个应该如何处理?
我怎么才能如同显示
c;

     答(股市骑兵00):
我按自己的理解说说。
你S变成序列变量来显示,运算量很大的,做出来也没意义了。
就把下面把公式的SL改成序列变量来显示,给你参考。

variable:pv[50]=0,pc[50]=0;
hh:=hhv(high,0);
ll:=llv(low,0);
fv:=vol;
fh:=high;
fl:=low;

dd:=(hh-ll)/49;
for i=1 to datacount do begin
  for j=i downto 1 do begin
    sh[i]:=(fh[j]-ll[i])/dd[i]+1;
    sl[i]:(fl[j]-ll[i])/dd[i]+1;
  end;
end;


[Copy to clipboard]CODE:846.问:
当close=high时,在high上5%处开始画一段压力线(如果后面再次出现close=high,则忽略此信号),直到close=low时停止画这段压力线,然后在low下5%开始画一段支撑线.(如果后面再出现close=low,则过滤此信号,直到下一次close=high),然后重复。。。

     答(dalong):
看看是否能满足你的要求?

a1:=c=l;
a2:=c=h;
a11:=BARSLAST(a1);
a21:=BARSLAST(a2);

a3:=(a11=0 and CROSS(a21,a11));
a31:=BARSLAST(a3);
ab:=if(a3,c*0.95,ref(c,a31)*0.95);

a4:=(a21=0 and CROSS(a11,a21));
a41:=BARSLAST(a4);
ac:=if(a4,c*1.05,ref(c,a41)*1.05);
ad:=if(a11>a21,ac,ab);
STICKLINE(1,ad,ad*1.0001,10,0);
    答(股市骑兵00):
dalong朋友思路高明,我只会循环笨办法做的。你的公式前段画线,有点小问题,我改了下。
a1:=c=l;a2:=c=h;
x1:=FILTER(a1 or a2,DATACOUNT);
a11:=BARSLAST(a1 or BARPOS=1);
a21:=BARSLAST(a2 or BARPOS=1);
x2:=CROSS(a21,a11);x3:=CROSS(a11,a21);
y:=BARSLAST(x1 or x2 or x3);
cc:=(x1 and a1)*l*0.95+(x1 and a2)*h*1.05+x2*l*0.95+x3*h*1.05;
c1:=ref(cc,y);c2:=ref(c1,1);
STICKLINE(y or y=0,c1,c1,10,1),COLORWHITE;
STICKLINE(x3 or x2,c2,c2,10,1),COLORWHITE;
    答(股市骑兵00):
       这是我做的笨办法,搞复杂了
a1:=c=h;b1:=c=l;
x:=ref(a1,BARSSINCE(a1 or b1));
za1:=0*c;zb1:=0*c;
for i=1 to datacount do begin
  za1[i]:=za1[i-1]+a1[i];
  zb1[i]:=zb1[i-1]+b1[i];
    if x[datacount] then begin
      if za1[i]-zb1[i]>1 then
        za1[i]:=za1[i-1];
      else
        za1[i]:=za1[i];
      if zb1[i]>za1[i] then
        zb1[i]:=zb1[i-1];
      else
        zb1[i]:=zb1[i];
    end;
    if x[datacount]=0 then begin
      if zb1[i]-za1[i]>1 then
        zb1[i]:=zb1[i-1];
      else
        zb1[i]:=zb1[i];
      if za1[i]>zb1[i] then
        za1[i]:=za1[i-1];
      else
        za1[i]:=za1[i];
    end;
end;
y1:=za1>ref(za1,1);y2:=zb1>ref(zb1,1);
h1:=ref(h,sumbars(y1 or y2,2)-1);
l1:=ref(l,sumbars(y1 or y2,2)-1);
DRAWLINE(y1,h*1.05,y2,h1*1.05,0);
DRAWLINE(y2,l*0.95,y1,l1*0.95,0);
z:=sum(y1 or y2,0);
xyz:=z=z[datacount] and (y1 or y2);
DRAWSL(xyz and y1,h*1.05,0,0,0);
DRAWSL(xyz and y2,l*0.95,0,0,0);  


引用:847.问:
《求各个周期内的起点和终点》源码中有一点不太懂
源码是:
INPUT: N(5,2,1000);
AA:=REF(H,N)=HHV(H,2*N+1); 不太明白的是,这句话是不是表示:短期高点同时也是长期高点啊,我还看不明白HHV(H,2*N+1)中2*N后面为什么还要+1啊,直接用2*N为什么不行?我改为HHV(H,2*N);好象没看到什么区别吗?

BB:=BACKSET(AA,N+1);
CC:=FILTER(BB,N) AND H+HHV(H,N+1);
DRAWICON(CC,H*1.02,10);
AA2:=REF(L,N)=LLV(L,2*N+1);
BB2:=BACKSET(AA2,N+1);
CC2:=FILTER(BB2,N) AND L=LLV(L,N+1);
DRAWICON (CC2,L*0.99,11);  
                                             
     答(bajatje):
       AA:=REF(H,N)=HHV(H,2*N+1);
       应该是:前面第N天的最高价=最近2*N+1天的最高价;
       加1   可能是为了对称
    答(dalong):
该公式是清扬老师根据分形峰状点的定义编写的。
形峰状点的定义是中间一点大(小)于左右N点。这样左右N点为2N再加上中间一点为2N+1了。



引用:848.问:
改变背景颜色:
5日线>=30日线;改变的背景颜色   黄
5日线<=30日线;改变的背景颜色   兰

     答(hx817):
实现以大盘为条件的背景图
{取大盘判断条件}
xma1:=MA(INDEXC,5);xma2:=MA(INDEXC,10);
xtj1:=CROSS(xma1,xma2) or xma1>xma2;
xtj2:=CROSS(xma2,xma1) or xma1{画符合条件的背景}
FILLRGN(xtj1,SYSPARAM(5),SYSPARAM(4)),ColorDB3FCA;
FILLRGN(xtj2,SYSPARAM(5),SYSPARAM(4)),Color528608;
{画个股 K 线图}
ktj:=(CLOSE>OPEN or CLOSE=OPEN and CLOSE>REF(CLOSE,1));
STICKLINE(ktj,HIGH,LOW,0.1,1),colorred;
STICKLINE(ktj,CLOSE,OPEN,7,1),colorred;
STICKLINE(NOT(ktj),HIGH,LOW,0.1,0),colorcyan;
STICKLINE(NOT(ktj),CLOSE,OPEN,7,0),colorcyan;
{画个股均线}
ma5:MA(CLOSE,5);
ma10:MA(CLOSE,10);
ma20:MA(CLOSE,20);
ma30:MA(CLOSE,30);
..........................................................................
别名: 画区间彩带
所属类别: 绘图函数  参数数量: 3

绘制指标区间彩带。
用法:
FILLRGN(COND,PRICE1,PRICE2),当COND条件满足时,以COLOR填充PRICE1和PRICE2的区间
例如:FILLRGN(MA1>MA2, MA1,MA2),colorred 表示MA1>MA2时以红色填充MA1和MA2之间的区域。
...........................................................................
SYSPARAM(4)
系统参数:主图可见K线最高价
注意:该函数仅K线图形分析且打开十字光标时有效,否则返回值不确定

SYSPARAM(5)
系统参数:主图可见K线最低价
注意:该函数仅K线图形分析且打开十字光标时有效,否则返回值不确定
............................................................................
用 ZIG 函数判断大盘趋势来看个股
{取大盘判断条件}
xtj:=ZIG(MA(INDEXC,5),10);
{画符合条件的背景}
FILLRGN(xtj>=ref(xtj,1),SYSPARAM(5),SYSPARAM(4)),ColorDB3FCA;
FILLRGN(xtj{画个股 K 线图}
ktj:=(CLOSE>OPEN or CLOSE=OPEN and CLOSE>REF(CLOSE,1));
STICKLINE(ktj,HIGH,LOW,0.1,1),colorred;
STICKLINE(ktj,CLOSE,OPEN,7,1),colorred;
STICKLINE(NOT(ktj),HIGH,LOW,0.1,0),colorcyan;
STICKLINE(NOT(ktj),CLOSE,OPEN,7,0),colorcyan;
{画个股均线}
ma5:MA(CLOSE,5);
ma10:MA(CLOSE,10);
ma20:MA(CLOSE,20);
ma30:MA(CLOSE,30);



引用:849.问:
怎么在实时图中叠加大盘价线?

     答(hx817):
小键盘 / 键



引用:850.问:
方便统计某段时间交易换手率的公式好吗
     答(bajatje):
w1:=barslast(date<=m);
w2:=barslast(date<=n);
ref(sum(v/capital*100,w1),w2);