打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
1000列 公式 6
650.问:涨幅大于4%的k线和他对应的换手率
651.问:DRAWICON (a AND b AND c,c,5) AND COST(33);
             ====飞狐显示这里有语法错误,请教应该怎么写?
       在分析家里这个语句就正确,在飞狐里怎么写?
652.问:我想"乖离率出击"这几字显示在上面
653.问:请教如何取两线交叉的时间?
       如题,  cross(diff,dea),这个交叉点发生的时间如何取得
654.问:k线站上5日均线3天,信号再出,如何描写?  
655.问:编120天内次大量和次次大量二者之和
656.问:当日均价线的正确写法   
657.问:在早盘9.30--10.30这一小时里,如果股价在当日均价线上方运行时间超过N分钟,
       就在10.30这一分钟预警一次((无须金......
658.问:一定周期(比如1个月)内的窄幅横盘?
659.问:取得深沪两市成交笔数及成交均量的排名位次,且可以在副图或主图中显示
660.问:谁有飞狐用的znz成本均线?
661.问:我想把下面的指标,在附图中上方的文字显示去除
662.问:火焰山筹码分布图上的“平均成本”的数值如何提取
663.问:能帮我写个筹码线公式吗
664.问:”回落平仓与最高价相比N周期内价格回落达N%“如何表达
665.问:今天,昨天的收盘价大于前五天期间的最低收盘价的5%,用于条件选股
666.问:我想找收盘价在10日均线之上的股票,
667.问:如何在主图上显示最近三十天的最高点和最低点,并向右延长,直到出现新的高低点
668.问:请问要如何得知X1和X2”交叉点的数值”X1和X2”交叉点的数值
669.问: 请问在这个公式中如何得到波峰(谷)的时间比值
670.问:任意的一根曲线,如何做成K线的形式呢?如:Y=FX,要把Y做成有开,高,低,收的K线
671.问:雙向成交
672.问:怎么编趋势线指标呀,历史最高点和厉史次高点,或历史最低点和历史次低点
673.问:如何编写均线(例如5日均线;10日均线。。)当日数直大与前一日数直发出信号
674.问:编一短周期引用长周期的公式如:日线周期的MACD同时引用周和月的MACD(DIFF).
675.问,能否详细解释一下 ZIG 函数?
676.问,怎样在指标中加入背景图片
677.问:求K线最后一个交易日的日期函数
678.问:求收盘价大于300日均线的飞狐选股公式
679.问:谁有K线型态写法
680.问:我应怎样在个股下求大盘的获利
681.问:请教平均股价指标怎么写
682.问:如何编突破前三天最高价为买进信号,跌破前三天最低价为卖出信号。
683.问:个股占权重的比例 有办法在公式中表示吗
684.问:阴量 和阳量 用什么函数表达
685.问:为什么我用了while do 或者for to do 就提示语法错误?
686.问:怎样得到开盘到现在的分钟数?
687.问:在个股副图指标中,如何显示大盘的获利盘(最好两市通用)?
       即建一个个股使用的大盘获利盘     
688.问:这个指标线▅▅ ▅▅ 怎表示?  
689.问:此公式在分析家里可以用,但在飞狐中显示不全,
       请看蓝色的柱状在飞狐中没有,只显黄色
690.问:
      钱龙软件营业部版的,里面有个静态分析,静态分析里有个选股功能就是利用股价来选股,
      如我要寻找2004年7月16日收盘后股价在5.00__5.30元的股票,有多少只,那好我只要输入
      2004年7月16日时间,股价在5.00__5.30元的股票,之后回车系统就会开始选股,
      之后把符合条件的股票选出来了.而我现在的股软里没有这项选股设置包括飞狐在内,
      只有低价股,中价股, 高价股之类,很泛泛,没有具体的设置,编写一个选股公式
691.问:怎样在收盘价上画一平行线
692.问:如何指标中画自最左至右画横向平行直线?
693.问: 求飞狐分时布林线
684.问:当前周期、分笔成交、1分钟、5分钟、15分钟、30分钟、
       60分钟.........望举例说明
695.问:
      1,怎样在最近高点处画一直线。
      2,怎样在比最近高点处还高一个的高点处画一直线。
696.问:
       在飞狐和分析家公式编写中,怎样编写对某指标进行指标排序后,取其排序后前十名
      上榜
697.问:在一个公式中,如果要同时看到流通盘、市值、净资产、收益、净利润、主营
          利、市盈率、      换手率等多个指标,他们都显示在同一行中,看起来很不方便。
          有什么办法使他们换行显示?
698.问:怎样 在主图中显示 某一高位 到 某一底位的天数
699.问:如何在日线图中显示3日均线,3周均线和3月均线
700.问:
      1.开盘后15分钟,总手是5日成交量的1倍以上.
      2.涨幅在2%左右.
      3.有跳空高开.
       上述三个条件缺一不可,同时俱备.



QUOTE:
651.问:
      DRAWICON (a AND b AND c,c,5) AND COST(33);
             ====飞狐显示这里有语法错误,请教应该怎么写?
      在分析家里这个语句就正确,在飞狐里怎么写?
    答(bajatje):
       分开
      DRAWICON (a AND b AND c,c,5) ;
      COST(33);



QUOTE:
652.问:
      我想"乖离率出击"这几字显示在上面
     答(hx817):
      LINETHICK0 表示不画出指标线,不影响坐标,但可在顶部显示数值
          {阿耀注:需加入乖离指标}



QUOTE:
653.问:
      请教如何取两线交叉的时间?
      如题,  cross(diff,dea),这个交叉点发生的时间如何取得
     答(hx817):
       别名: 上一次条件成立位置
       所属类别: 引用函数  参数数量: 1

       上一次条件成立到当前的周期数。
       用法:
       BARSLAST(X):上一次X不为0到现在的天数
       例如:
       BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)
       表示上一个涨停板到当前的周期数
    答(bajatje):
        这样可以返回时期
        ref(date,barslast(cross(diff,dea)));



QUOTE:
654.问:
      k线站上5日均线3天,信号再出,如何描写?  
     答(yngs):
      COUNT(c>ma(c,5),3)=3;



QUOTE:
655.问:
      编120天内次大量和次次大量二者之和
     答(bajatje):
      h1:=hhv(v,120);
      h2:=hhv(if(v=h1,0,v),120);
      h3:=hhv(if(v=h1 or v=h2,0,v),120);
      h2+h3



QUOTE:
656.问:
      当日均价线的正确写法
     答(bajatje):
      DYNAINFO(11) 在分笔成交下就有画线
      也可以
     sum(amount,0)/sum(v,0)/100;



QUOTE:
657.问:
      在早盘9.30--10.30这一小时里,如果股价在当日均价线上方运行时间超过N分钟,就在
10.30  
      这一分钟预警一次((无须金叉,不论股价当时是否在均价线之下)).这个盘中预警公式怎样写
     答(bajatje):
        F:=OPENMINUTES(TIME);
        a:=sum(if(F<=60*L>DYNAINFO(11),1,0),0)>N;
        F=60 and a;  



QUOTE:
658.问:
      一定周期(比如1个月)内的窄幅横盘?
     答(闲人):
      COUNT(CLOSE,0)>N AND (HHV(CLOSE,N)-LLV(CLOSE,N))/LLV(CLOSE,N)<=(N1/100)
       {n=周期    n1=振幅}



QUOTE:
659.问:
      取得深沪两市成交笔数及成交均量的排名位次,且可以在副图或主图中显示
     答(bajatje):
      用扩展数据中的横向排序功能就能解决问题 只是扩展数据资源有限 
      下面是南客老师写的帖子 你看看
      飞狐新增函数应用:股票代码遍历与横向排序
         一、如何进行板块股票代码遍历:
bk:='A股板块'; //bk赋值为字符串'A股板块'
stksum:=STKCOUNT(bk); //板块所包含证券数量
variable:dmstr[stksum]='';  //定义一个字符串数组用于记录股票代码,元素个数为stksum,初始值为空
for k=1 to stksum do  //以下循环,循环计数器k从1开始每次递增1,直到stksum
begin
    dm:=stkfromblk(bk,k);//板块bk中第k只证券的证券代码,赋值到字符串变量dm
    dmstr[k]:=dm;  //股票代码,记录到字符串数组dmstr的第k个元素中
end;

//以下是一些字符串函数及运算的综合应用
EXPLAIN(1,dmstr[1]);  //在解盘中,输出深圳A股第1只股票的代码
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称
EXPLAIN(1,bk+'第4只股票的代码是:'+dmstr[4]);
EXPLAIN(1,stkname+'最后收盘价:'+numtostr(close,2));
EXPLAIN(1,bk+'共有股票:'+numtostr(stksum,0)+'只');
        二、横向排序:
//本公式输出结果,请在解盘中查看,由于大量引用了其它指标,因此运算时间会稍长   
   bk:='A股板块'; //bk赋值为字符串'A股板块'
yygs:='macd.diff';//引用的指标,此处可修改为引用其它的指标

stksum:=STKCOUNT(bk); //板块所包含证券数量
dcount:=datacount; //K线图上,最后一根K线的位置
variable:dmstr[stksum]='',var_px[stksum]=0,var_indi[stksum]=0;  //定义一个字符串数组用于记录股票代码,元素个数为stksum,初始值为空
for k=1 to stksum do  //以下循环,循环计数器k从1开始每次递增1,直到stksum
begin
    dm:=stkfromblk(bk,k);//板块bk中第k只证券的证券代码,赋值到字符串变量dm
    dmstr[k]:=dm;  //股票代码,记录到字符串数组dmstr的第k个元素中
    temp1:=stkindi(dm,yygs,0,-1);  //引用其它个股的指标
    var_px[k]:=temp1[dcount];  //记录最后一个周期的指标值,此处可以使用参数,以便得到其它周期的排序
    var_indi[k]:=temp1[dcount];  //同上,但准备用于记录排序后的位置
end;

Num1:=sortpos(var_indi,1,1,stksum);  //计算排序后,按大小排列的位置
dm_max1:=var_indi[1];  //最大值的对应位置
dm_max2:=var_indi[2];  //次大值的对应位置
dm_max3:=var_indi[3];
dm_max4:=var_indi[4];
dm_max5:=var_indi[5];
dm_max6:=var_indi[6];
dm_min1:=var_indi[stksum];  //最小值的对应位置
dm_min2:=var_indi[stksum-1];

max1:=var_px[dm_max1];
max2:=var_px[dm_max2];
max3:=var_px[dm_max3];
max4:=var_px[dm_max4];
max5:=var_px[dm_max5];
max6:=var_px[dm_max6];
min1:=var_px[dm_min1];
min2:=var_px[dm_min2];

explain(islastbar,yygs+'前6名:'),colorred;
EXPLAINex(islastbar,'1:'+dmstr[dm_max1]+STKNAMEEX(dmstr[dm_max1])+':',max1,2,0),colorred;
EXPLAINex(islastbar,'2:'+dmstr[dm_max2]+STKNAMEEX(dmstr[dm_max2])+':',max2,2,0),colorred;
EXPLAINex(islastbar,'3:'+dmstr[dm_max3]+STKNAMEEX(dmstr[dm_max3])+':',max3,2,0),colorred;
EXPLAINex(islastbar,'4:'+dmstr[dm_max4]+STKNAMEEX(dmstr[dm_max4])+':',max4,2,0),colorred;
EXPLAINex(islastbar,'5:'+dmstr[dm_max5]+STKNAMEEX(dmstr[dm_max5])+':',max5,2,0),colorred;
EXPLAINex(islastbar,'6:'+dmstr[dm_max6]+STKNAMEEX(dmstr[dm_max6])+':',max6,2,1),colorred;

explain(islastbar,yygs+'后2名:'),colorgreen;
EXPLAINex(islastbar,'2:'+dmstr[dm_min2]+STKNAMEEX(dmstr[dm_min2])+':',min2,2,0),colorgreen;
EXPLAINex(islastbar,'1:'+dmstr[dm_min1]+STKNAMEEX(dmstr[dm_min1])+':',min1,2,0),colorgreen;
这里给出的代码示例,请下载飞狐0916测试版后使用,否则将会出现语法等错误。
  从上面代码示例可以看出,板块股票代码的遍历是基础,有了这个横向遍历,就可以实现横向排序、横向统计。
  上面未给出横向统计的示例,大家可以参照上面示例,根据自己的需要进行设计。
  几个关键函数:stkfromblk(),sortpos(),可进入公式编辑器,查看函数注释。
  飞狐的循环、条件控制语句,可以任意访问的数据,将给处理问题带来极大的方便。
  下面,再给一段代码,是利用循环、判断语句,设计一个鬼变脸的公式代码:
sensitivy:=-c;
direction:=c;
towero:=o;
towerc:=c;
fc:=c;
i:=2;
while i<=datacount do begin
  if towerc>towero and not(between(sensitivy,towero,towerc)) then
    direction:=1;
  else if towerc<towero and not(between(sensitivy,towero,towerc)) then
         direction:=0;
       else direction:=direction[i-1];
  if not(between(sensitivy[i-1],towero[i-1],towerc[i-1])) then begin
    towero:=towerc[i-1];towerc:=fc;
    sensitivy:=towero[i-1];
  end else begin
    towero:=towerc[i-1];towerc:=fc;
    sensitivy:=sensitivy[i-1];
  end;
  i:=i+1;
end;
tj:=between(sensitivy,towero,towerc);
stickline(tj,max(towero,towerc),sensitivy,7,0), colorred;
stickline(tj,min(towero,towerc),sensitivy,7,0), colorgreen;
stickline(sensitivy<towerc and not(tj),towero,towerc,7,0), colorred;
stickline(sensitivy>towerc and not(tj),towero,towerc,7,0), colorgreen;
stickline((towerc=towero or sensitivy=towerc) and direction=1,towero,towerc,7,0),colorred;
stickline((towerc=towero or sensitivy=towerc) and direction=0,towero,towerc,7,0),colorgreen;




QUOTE:
660.问:
      谁有飞狐用的znz成本均线?
    答(hx817):
      无穷:SUM(VOL*CLOSE,0)/SUM(VOL,0); //无穷成本均线算法




QUOTE:
661.问:
      我想把下面的指标,在附图中上方的文字显示去除
      MA5:简单移动平均(成交量,5), ,Colorred;  
      MA10:简单移动平均(成交量,10), , COLORGREEN;  
     答(财狼):
      MA5:=简单移动平均(成交量,5);  
      MA10:=简单移动平均(成交量,10);
      画分段线(收盘价>1,MA5),colorred;
      画分段线(收盘价>1,MA10),COLORGREEN;



QUOTE:
662.问:
      火焰山筹码分布图上的“平均成本”的数值如何提取
     答(lhl311):
      是cost(50)



QUOTE:
663.问:
      能帮我写个筹码线公式吗
     答(xuguannan):
      庄筹线:WINNER(C)*100 ,colorred, linethick2;
      散筹线: (WINNER(C*1.1)-WINNER(C*0.9))*100 ,colorgreen, linethick2;
      cc:=FILTER( (CROSS(5,庄筹线) and 散筹线<20 )*60,10 );
      抄底:cc,coloryellow,linethick2;
      {DRAWTEXT(cc ,11 ,'抄底' ) ,coloryellow;}
      aa:= ref(庄筹线,30)>40 or ref(庄筹线,20)>40;
      bb:=CROSS(28,庄筹线) and 散筹线>40 and aa=1 {and LLV(l ,60 )>LLV(l ,250 )};
      洗盘:IF(bb ,30 ,60 ) ,colorwhite,linethick2;
      {DRAWTEXT(FILTER(bb,4) ,66 ,'洗盘' ) colorcyan;}



QUOTE:
664.问:
      ”回落平仓与最高价相比N周期内价格回落达N%“如何表达
     答(yngs):
       (hhv(h,m)-c)/hhv(h,m)*100>=n;



QUOTE:
665.问:
      今天,昨天的收盘价大于前五天期间的最低收盘价的5%,用于条件选股
     答(bajatje):
       w:=llvbars(c,150);150天最低点的位置
       ll:=llv(c,150);150天最低价
       w<6 and count(c/ref(c,w)>1.05,2)=2;最低价到当前的距离小于6 并且最近两天的收盘价
             都大于最低价5%  



QUOTE:
666.问:
      我想找收盘价在10日均线之上的股票,
     答(hx817):
      close > ma(close,10)



QUOTE:
667.问:
      如何在主图上显示最近三十天的最高点和最低点,并向右延长,直到出现新的高低点
     答(bajatje):
      试试这个
      hh:=hhv(h,30);
      ll:=llv(l,30);
      PARTLINE(hh=ref(hh,1),hh),linethick2;
      PARTLINE(ll+ref(ll,1),ll),linethick2;



QUOTE:
668.问:
      请问要如何得知X1和X2”交叉点的数值”X1和X2”交叉点的数值

      {江恩角度线?:角度12  N日60 角度,N日值可调整}
       p1:=c-ref(c,1);
       p2:=sum(abs(p1),0);
       p3:=count(c>0,0);
       k1:=p2/p3/角度;

    X1:DRAWSL(FILTER(BACKSET(ISLASTBAR,HHVBARS(h,N日)+1),N日),h,-8*K1,0,0),COLORgreen;
    X2:DRAWSL(FILTER(BACKSET(ISLASTBAR,HHVBARS(h,N日)+1),n 日),h*0.618,8*K1,0,0),
        COLORgreen;
      答(yngs):
        if(CROSS(x1,x2),x1,0);      
        if(CROSS(x1,x2),x2,0);



QUOTE:
669.问:
      ZQ:ZIG(3,4);
      HD:=ZQ>REF(ZQ,1) AND ZQ>REFX(ZQ,1);
      LD:=ZQ<REF(ZQ,1) AND ZQ<REFX(ZQ,1);
      DRAWNUMBER(HD,1.01*H,BARSLAST(LD),0);
      DRAWNUMBER(LD,0.99*L,BARSLAST(HD),0);
       请问在这个公式中如何得到波峰(谷)的时间比值
     答(hx817):
      ZQ:ZIG(3,4);
      HD:=ZQ>REF(ZQ,1) AND ZQ>REFX(ZQ,1);
      LD:=ZQ<REF(ZQ,1) AND ZQ<REFX(ZQ,1);

      a1:BARSLAST(HD),linethick0;
      a2:BARSLAST(LD),linethick0;
      c1:BARSLAST(ref(a1,1)=0)-a2+1,linethick0;
      c2:BARSLAST(ref(a2,1)=0)-a1+1,linethick0;

      DRAWNUMBER(HD,1.05*H,BARSLAST(LD),0),COLORRED;
      DRAWNUMBER(HD,1.1*H,a2/c1,2),COLORWHITE;

      DRAWNUMBER(LD,0.95*L,BARSLAST(HD),0),COLORRED;
      DRAWNUMBER(LD,0.9*L,a1/c2,2),COLORWHITE;



QUOTE:
670.问:
      任意的一根曲线,如何做成K线的形式呢?如:Y=FX,要把Y做成有开,高,低,收的K线,       应该怎么做呢?
     答(cyw):
       x=任意的一根曲线。

      以MACD为例:
       x:="macd.dea";
       ox:=ma(o,1)*x;
       cx:=ma(c,1)*x;
       hx:=ma(h,1)*x;
       lx:=ma(l,1)*x;
       STICKLINE(Cx>=ref(cx,1),Hx,Lx,0,0) COLORred;
       STICKLINE(Cx>=ref(cx,1),Cx,Ox,6,1) COLORred;
       STICKLINE(Cx<= ref(cx,1),Hx,Lx,0,0) COLORgreen;
       STICKLINE(Cx<= ref(cx,1),Cx,Ox,6,0) COLORgreen;

      以均线为例:
       x:=ma(c,10);
       ox:=ma(o,10);
       cx:=ma(c,10);
       hx:=ma(h,10);
       lx:=ma(l,10);
       STICKLINE(Cx>=OX,Hx,Lx,0,0) COLORred;
       STICKLINE(Cx>=OX,Cx,Ox,6,1) COLORred;
       STICKLINE(Cx<= OX,Hx,Lx,0,0) COLORgreen;
       STICKLINE(Cx<= OX,Cx,Ox,6,0) COLORgreen;
      以上举例是由曲线显示转变为图形显示,我只是提供了一种思路,
      数据的正确性值得商榷,如MACD还可这样取值:
       oF:=EMA(o,12) - EMA(o,26);
       o1:=EMA(oF,9);
       cF:=EMA(c,12) - EMA(c,26);
       c1:=EMA(cF,9);
       hF:=EMA(h,12) - EMA(h,26);
       h1:=EMA(hF,9);
       lF:=EMA(l,12) - EMA(l,26);
       l1:=EMA(lF,9);
       STICKLINE(C1>=O1,H1,L1,0,0) COLORred;
       STICKLINE(C1>=O1,C1,O1,6,1) COLORred;
       STICKLINE(C1<= O1,H1,L1,0,0) COLORgreen;
       STICKLINE(C1<= O1,C1,O1,6,0) COLORgreen;
        从表面看比(ox:=ma(o,1)*x;)要来得正确,但实际还是不正确,
    (可显示O1,C1,H1,L1曲线观察比较),故编写指标不能照搬,应举一反三,
     融会贯通,才能编写出正确,实用的指标。

671.问:
      雙向成交
      成交量:VOL,POINTDOT;
      AA:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));
      主动买盘:IF(CLOSE>OPEN,AA*(HIGH-LOW),IF(CLOSE<OPEN,AA*((HIGH-OPEN)+(CLOSE-LOW)),VOL/2)),POINTDOT,COLORRED LINETHICK0;
      主动卖盘:IF(CLOSE>OPEN,0-AA*((HIGH-CLOSE)+(OPEN-LOW)),IF(CLOSE<OPEN,0-AA*(HIGH-LOW),0-VOL/2)),COLORGREEN LINETHICK0;

     上面是網路找到的公式  覺得有趣  但有些意含不懂  麻煩賜教
          1.  AA裡的  (HIGH-LOW)*2-ABS(CLOSE-OPEN) 是何種意思? 為何要*2
          2. 主動買盤裡的  AA*(HIGH-LOW)   及  AA*((HIGH-OPEN)+(CLOSE-LOW))
              是何意思 ?      為什麼要乘以((HIGH-OPEN)+(CLOSE-LOW))
    答(白郎):
       不知道我解释的对不对。
       作者企图用成交量在K线上的分布来表达出多空阵营。当当日收阳时,那么就假设最高到最底价之间都是多方力量主导。如果收阴,就用上线影线来代表多方。空方的原理以此类推。
        AA:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));   表示买卖盘在K线空间内的分布,如果没有*2,后面ABS(CLOSE-OPEN)如果是光头光角的阴线或阳线,两数相减就为零,而              分母是不能为零的,它的作用就是排除分母为零的情况。
       主動買盤裡的  AA*(HIGH-LOW) ,如果代表如果收阳,最高和最低价之间的成交全部假设为多方力量。((HIGH-OPEN)+(CLOSE-LOW))  代表上下影线。



QUOTE:
672.问:
      请问怎么编趋势线指标呀,历史最高点和厉史次高点,或历史最低点和历史次低点
     答(白郎):
      明白你的意思了,公式如下:
      input:m(20,1,100);
      ac:=hhv(h,0);
      az:=BARSLAST(h=hhv(h,0));
      bc:=PEAK(1,m,1);
      bz:=BARSLAST(h=PEAK(1,m,1));
      aa:=BACKSET(ISLASTBAR,az+1);
      bb:=BACKSET(ISLASTBAR,bz+1);
      DRAWLINE(h=ac and aa<>ref(aa,1),h,h=bc and bb<>ref(bb,1),h,1),coloryellow;



QUOTE:
673.问:
      请问如何编写均线(例如5日均线;10日均线。。)当日数直大与前一日数直发出信号
     答(bajatje):
      M:=Ma(c,N);
      m>ref(m,1);



QUOTE:
674.问:
请高手们编一短周期引用长周期的公式如:日线周期的MACD同时引用周和月的MACD(DIFF).
     答(bajatje):
用这个编

别名: 引用指标
所属类别: 其他函数  参数数量: 4

引用任意证券任意周期的任意指标输出
用法:
STKINDI(STKLABEL,INDINAME,INDITYPE,PERIOD)
STKLABEL指定证券代码,如为空表示当前证券
INDITYPE为指标类型,有效值范围为(0-2),依次表示技术指标、条件选股、交易系统公式;
PERIOD为周期类型,有效值范围为(-1-12),依次表示:
当前周期、分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、多分钟、多秒线
例如:STKINDI('1A0001','MA.MA1',0,DATAPERIOD);计算1A0001的当前周期MA指标的MA1指标线

STKINDI('','RSI.RSI1',0,DATAPERIOD);计算当前证券的当前周期MA指标的MA1指标线



QUOTE:
675.问,
能否详细解释一下 ZIG 函数?
    答(Yngs):
之字转向。
用法:
ZIG(X,N),当序列或K线变化量超过N%时转向
X为序列或常数,为常数时表示0:开盘价,1:最高价,2:最低价,3:收盘价,4:高点用最高价、低点用最低价
例如:
ZIG(3,10)表示收盘价的10%的ZIG转向
ZIG(MA(C,20),10)表示均线的10%的ZIG转向



QUOTE:
676.问,
怎样在指标中加入背景图片
     答(hx817):
别名: 画背景图
所属类别: 绘图函数  参数数量: 2

根据条件设置背景图
用法:
DRAWBKBMP(COND,BMP);
当图形上最后一组COND条件满足时,以MyBMP做背景
例如:DRAWBKBMP(C>O, 'MyBMP');
表示图形上最后一组C>O时背景显示子FmlDLL目录下的MyBMP.bmp图。



QUOTE:
677.问:
     求K线最后一个交易日的日期函数
目的:在可视的K线图的最后一个交易日写点自己的东西,如解盘、心得,
但仅限于最后一个交易日,其余各日不标注。如何实现?  
     答(zhiqi):
       ISLASTBAR



QUOTE:
678.问:
      求收盘价大于300日均线的飞狐选股公式
     答(hx817):
       c>ma(c,300):



QUOTE:
679.问:
      谁有K线型态写法
     答(yngs):
      早晨之星:=REF(CLOSE,2)/REF(OPEN,2) < 0.95 AND REF(OPEN,1) < REF(CLOSE,2) AND ABS(REF(OPEN,1)-REF(CLOSE,1))/REF(CLOSE,1)<0.03 AND
CLOSE/OPEN>1.05 AND CLOSE>REF(CLOSE,2);
黄昏之星:=REF(CLOSE,2)/REF(OPEN,2) > 1.03 AND REF(OPEN,1) > REF(CLOSE,2) AND ABS(REF(OPEN,1)-REF(CLOSE,1))/REF(CLOSE,1)<0.02 AND
CLOSE/OPEN<0.97 AND CLOSE<REF(CLOSE,2);
长十字:=CLOSE=OPEN AND HIGH/LOW >1.03;
垂死十字:=CLOSE=OPEN AND CLOSE=LOW AND CLOSE<>HIGH;
早晨十字星:=REF(CLOSE,2)/REF(OPEN,2) < 0.95 AND REF(OPEN,1) < REF(CLOSE,2) AND REF(OPEN,1)=REF(CLOSE,1) AND
CLOSE/OPEN>1.05 AND CLOSE>REF(CLOSE,2);
黄昏十字星:=REF(CLOSE,2)/REF(OPEN,2) > 1.05 AND REF(OPEN,1) > REF(CLOSE,2) AND REF(OPEN,1)=REF(CLOSE,1) AND
CLOSE/OPEN<0.95 AND CLOSE<REF(CLOSE,2);
射击之星:=MIN(OPEN,CLOSE)=LOW AND HIGH-LOW > 3*(MAX(OPEN,CLOSE)-LOW) AND CLOSE > MA(CLOSE,5);
倒转锤头:=MIN(OPEN,CLOSE)=LOW AND HIGH-LOW > 3*(MAX(OPEN,CLOSE)-LOW) AND CLOSE < MA(CLOSE,5);
锤头:=HIGH = MAX(OPEN,CLOSE) AND HIGH-LOW > 3*(HIGH-MIN(OPEN,CLOSE)) AND CLOSE < MA(CLOSE,5);
吊颈:=HIGH = MAX(OPEN,CLOSE) AND HIGH-LOW > 3*(HIGH-MIN(OPEN,CLOSE)) AND CLOSE>MA(CLOSE,5);
穿头破脚:=(REF(CLOSE,1)/REF(OPEN,1)>1.03 AND CLOSE/OPEN<0.96 AND CLOSE<REF(OPEN,1) AND OPEN>REF(CLOSE,1))
OR (REF(CLOSE,1)/REF(OPEN,1)<0.97 AND CLOSE/OPEN>1.04 AND CLOSE>REF(OPEN,1) AND OPEN<REF(CLOSE,1));
乌云盖顶:=REF(CLOSE,1)/REF(OPEN,1)>1.03 AND CLOSE/OPEN<0.97 AND OPEN>REF(CLOSE,1) AND CLOSE<REF(CLOSE,1);
曙光初现:=REF(CLOSE,1)/REF(OPEN,1)<0.97 AND CLOSE/OPEN>1.03 AND OPEN<REF(CLOSE,1) AND CLOSE>REF(CLOSE,1);
身怀六甲:=ABS(REF(CLOSE,1)-REF(OPEN,1))/REF(CLOSE,1) > 0.04 AND ABS(CLOSE-OPEN)/CLOSE<0.005 AND
MAX(CLOSE,OPEN) < MAX(REF(CLOSE,1),REF(OPEN,1)) AND MIN(CLOSE,OPEN) > MIN(REF(CLOSE,1),REF(OPEN,1));
十字胎:=ABS(REF(CLOSE,1)-REF(OPEN,1))/REF(CLOSE,1) > 0.04 AND CLOSE=OPEN AND
CLOSE < MAX(REF(CLOSE,1),REF(OPEN,1)) AND CLOSE > MIN(REF(CLOSE,1),REF(OPEN,1));
平顶:=ABS(HIGH-REF(HIGH,1))/HIGH<0.001;
平底:=(ABS(LOW-REF(LOW,1))/LOW<0.001 and abs(ref(low,1)-ref(low,2))/ref(low,1)<=0.001);
大阳烛:=CLOSE/OPEN>1.05 AND HIGH/LOW < CLOSE/OPEN+0.018;
三个白武士:=REF(CLOSE,2)>REF(OPEN,2) AND REF(CLOSE,1)>REF(OPEN,1) AND CLOSE>OPEN
AND REF(CLOSE,1)>REF(CLOSE,2) AND CLOSE>REF(CLOSE,1);
双飞乌鸦:=REF(CLOSE,1)<REF(OPEN,1) AND CLOSE<OPEN AND CLOSE/OPEN<0.98;
孕育线:=REF(CLOSE,2)>REF(OPEN,2) AND (REF(CLOSE,2)-REF(OPEN,2))/REF(OPEN,2)>=2/100  AND REF(OPEN,1)>=REF(CLOSE,1) AND
(REF(OPEN,1)-REF(CLOSE,1))/REF(CLOSE,1)<=2/100 AND REF(OPEN,1)<=REF(CLOSE,2) AND REF(CLOSE,1)>=REF(OPEN,2) AND C>=OPEN AND
(CLOSE-OPEN)/OPEN>=2/100 AND CLOSE>=REF(OPEN,1) AND OPEN<=REF(CLOSE,1) AND (MAX(CLOSE,REF(C,2))-MIN(CLOSE,REF(CLOSE,2)))/MIN(CLOSE,REF(CLOSE,2))<=1/100;
多方炮:=REF(CLOSE,2)>REF(OPEN,2) AND REF(CLOSE,1)<REF(OPEN,1) AND CLOSE>OPEN;
出水芙蓉:=(OPEN<EMA(C,20) OR OPEN<EMA(C,40) OR OPEN<EMA(C,60)) AND (C>MAX(EMA(C,20),MAX(EMA(C,40),EMA(C,60))))
AND (V/MA(V,30)>1.2 AND C/REF(C,1)>1.049);
上升三部曲:=REF(CLOSE,4)/REF(OPEN,4)>1.03 AND REF(CLOSE,3)<REF(OPEN,3) AND REF(CLOSE,2)<REF(OPEN,2) AND REF(CLOSE,1)<REF(OPEN,1) AND
REF(LOW,4)<REF(LOW,3) AND REF(LOW,4)<REF(LOW,2) AND REF(LOW,4)<REF(LOW,1) AND REF(HIGH,4)>REF(HIGH,3) AND REF(HIGH,4)>REF(HIGH,2) AND
REF(HIGH,4)>REF(HIGH,1) AND CLOSE/OPEN>1.03 AND CLOSE>REF(CLOSE,4);
下跌三部曲:= REF(CLOSE,4)/REF(OPEN,4)<0.97 AND REF(CLOSE,3)>REF(OPEN,3) AND REF(CLOSE,2)>REF(OPEN,2) AND REF(CLOSE,1)>REF(OPEN,1) AND REF(LOW,4)<REF(LOW,3) AND
REF(LOW,4)<REF(LOW,2) AND REF(LOW,4)<REF(LOW,1) AND REF(HIGH,4)>REF(HIGH,3) AND REF(HIGH,4)>REF(HIGH,2) AND REF(HIGH,4)>REF(HIGH,1) AND CLOSE/OPEN<0.97 AND
CLOSE<REF(CLOSE,4);
跳空缺口:=HIGH<REF(LOW,1) OR LOW>REF(HIGH,1);
三只乌鸦:=REF(CLOSE,2)<REF(OPEN,2) AND REF(CLOSE,1)<REF(OPEN,1) AND CLOSE<OPEN AND REF(CLOSE,1)<REF(CLOSE,2) AND CLOSE<REF(CLOSE,1);
光脚阴线:=LOW=CLOSE AND HIGH<>LOW;
光头阳线:=HIGH=CLOSE AND HIGH<>LOW;
分离:=OPEN=REF(OPEN,1) AND (CLOSE-OPEN)*(REF(CLOSE,1)-REF(OPEN,1))<0;
长下影:=(MIN(CLOSE,OPEN)-LOW)/(HIGH-LOW)>0.667;
长上影:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW)>0.667;
十字星:=CLOSE=OPEN AND HIGH<>LOW;
大阴烛:=OPEN/CLOSE > 1.05 AND HIGH/LOW < OPEN/CLOSE+0.018;
好友反攻:=(REF(CLOSE,1)<REF(OPEN,1) AND CLOSE>OPEN AND ABS(CLOSE-REF(CLOSE,1))/CLOSE<0.002)
OR (REF(CLOSE,1)>REF(OPEN,1) AND CLOSE<OPEN AND ABS(CLOSE-REF(CLOSE,1))/CLOSE<0.002);
倾盆大雨:=REF(C,1)/REF(O,1)>=1.03 AND O<REF(C,1) AND O>REF(O,1) AND C<REF(O,1);

EXPLAIN(倾盆大雨,'K线形态分析:倾盆大雨,见顶信号;'),COLORCYAN;
EXPLAIN(大阴烛,'K线形态分析:大阴烛,后市向淡,发生逆转;'),COLORCYAN;
EXPLAIN(好友反攻,'K线形态分析:好友反攻,底部反转;'),COLORRED;
EXPLAIN(跳空缺口,'K线形态分析:跳空缺口,注意向上还是向下跳空;'),COLORWHITE;
EXPLAIN(光脚阴线,'K线形态分析:光脚阴线,下跌信号;'),COLORCYAN;
EXPLAIN(光头阳线,'K线形态分析:光头阳线,后市看涨;'),COLORRED;
EXPLAIN(三只乌鸦,'K线形态分析:三只乌鸦,可能见顶回落;'),COLORCYAN;
EXPLAIN(分离,'K线形态分析:分离,注意看涨分离和看跌分离;'),COLORWHITE;
EXPLAIN(长下影,'K线形态分析:长下影,持续下跌后出现,有可能止跌回升;在升势末期出现,须多加留意;'),COLORRED;
EXPLAIN(长上影,'K线形态分析:长上影,表明行情上档压力沉重,升势受阻;'),COLORCYAN;
EXPLAIN(下跌三部曲,'K线形态分析:下跌三部曲,下跌信号;'),COLORRED;
EXPLAIN(上升三部曲,'K线形态分析:上升三部曲,上涨信号;'),COLORCYAN;
EXPLAIN(早晨之星,'K线形态分析:早晨之星,见底回升;'),COLORRED;
EXPLAIN(黄昏之星,'K线形态分析:黄昏之星,见顶回落;'),COLORCYAN;
EXPLAIN(十字星,'K线形态分析:十字星,有转向意味,注意股价位置在顶部还是底部;'),COLORWHITE;
EXPLAIN(长十字,'K线形态分析:长十字,注意在顶部还是底部;'),COLORWHITE;
EXPLAIN(垂死十字,'K线形态分析:垂死十字,下跌信号;'),COLORCYAN;
EXPLAIN(早晨十字星,'K线形态分析:早晨十字星,上涨信号,见底回升;'),COLORRED;
EXPLAIN(黄昏十字星,'K线形态分析:黄昏十字星,下跌信号,见顶回落;'),COLORCYAN;
EXPLAIN(射击之星,'K线形态分析:射击之星,可能见顶回落,可靠性低;'),COLORCYAN;
EXPLAIN(倒转锤头,'K线形态分析:倒转锤头,可能见底回升;'),COLORRED;
EXPLAIN(锤头,'K线形态分析:锤头,可能见底回升,如有量配合,信号强烈;'),COLORRED;
EXPLAIN(吊颈,'K线形态分析:吊颈,上升行情中见顶回落,顶部出现,见顶信号;'),COLORCYAN;
EXPLAIN(平顶,'K线形态分析:平顶,温和的反转;'),COLORCYAN;
EXPLAIN(穿头破脚,'K线形态分析:穿头破脚,顶部出现,见顶回落信号;'),COLORCYAN;
EXPLAIN(乌云盖顶,'K线形态分析:乌云盖顶,见顶回落信号;'),COLORCYAN;
EXPLAIN(曙光初现,'K线形态分析:曙光初现,后市见底回升;'),COLORRED;
EXPLAIN(身怀六甲,'K线形态分析:身怀六甲,出现在底部,是见底回升信号;出现在顶部,是见顶回落信号;'),COLORRED;
EXPLAIN(十字胎,'K线形态分析:十字胎;'),COLORRED;
EXPLAIN(平底,'K线形态分析:平底,温和的反转;'),COLORRED;
EXPLAIN(大阳烛,'K线形态分析:大阳烛,,看涨;'),COLORRED;
EXPLAIN(三个白武士,'K线形态分析:三个白武士,每日收盘价上移,表示可能见底回升;'),COLORRED;
EXPLAIN(双飞乌鸦,'K线形态分析:双飞乌鸦,行情将见顶回落;'),COLORCYAN;
EXPLAIN(孕育线,'K线形态分析:孕育线,注意股价位置;'),COLORWHITE;
EXPLAIN(多方炮,'K线形态分析:多方炮,在底部出现有上涨以为,在中间出现有可能是上涨中继,顶部出现是复合见顶信号;'),COLORRED;
EXPLAIN(出水芙蓉,'K线形态分析:出水芙蓉,见底回升;'),COLORRED;



QUOTE:
680.问:
      我应怎样在个股下求大盘的获利
     答(南客):
      1、先建一个公式,假设公式名称为yytest,代码如下:
获利比例:winner(close);

      2、再建一个公式,引用yytest公式的结果:

str1:=if(MARKETLABEL='SH','1A0001','399001');
大盘获利:stkindi(str1,'yytest.获利比例',0,-1);



QUOTE:
681.问:
      请教平均股价指标怎么写
    答(yngs):
      1、(c+o+h+l)/4;
      2、AMOUNT/(v*100);



QUOTE:
682.问:
      如何编突破前三天最高价为买进信号,跌破前三天最低价为卖出信号。
    答(lhl311):
      买进:cross(C,REF(H,3));
      卖出:CROSS(REF(L,3),C);



QUOTE:
683.问:
      个股占权重的比例 有办法在公式中表示吗
    答(bajatje):
       1.建总市值公式
         a:FINANCE(1)*c;
       并列入横向排序数据N中,选 算术累加总和
       2.建公式
         finance(1)*c/ESTDATA(N);



QUOTE:
684.问:
      阴量 和阳量 用什么函数表达
    答(bajatje):
      v,volstick;
      阴量:if(c<ref(c,1),v,0),linethick0;
      阳量:if(c>=ref(c,1),v,0),linethick0;



QUOTE:
685.问:
      为什么我用了while do 或者for to do 就提示语法错误?
      FOR I=1 TO BARPOS-1 DO
      IF REF(C,I+2)>REF(C,I+1) and REF(C,I)<REF(C,I+1) AND REF(C,I+2)>REF(C,I+3)
             and REF(C,I+4)<REF(C,I+3) THEN BEGIN
      A1:=I+2;
      BREAK;
      END  
    答(hx817):
      控制语句还不支持序列变量



QUOTE:
686.问:
      怎样得到开盘到现在的分钟数?
    答(hx817):
      别名: 开盘分钟数
      所属类别: 时间函数  参数数量: 1

      取得开盘分钟数。
      用法:
      OPENMINUTES(TIME)
      返回已开盘分钟数(1-总开盘分钟数),开盘前的都为1,收盘后都为总开盘分钟数
      例如:
      OPENMINUTES(CURRENTTIME),在日线上可得到现在已开盘分钟数
      OPENMINUTES(TIME),在分钟线上可得到当时已开盘分钟数



QUOTE:
687.问:
      在个股副图指标中,如何显示大盘的获利盘(最好两市通用)?
      即建一个个股使用的大盘获利盘
    答(南客):
      需要建立2个公式:
        公式一:
      ww:winner(close);
        公式二:
      str1:=if(STRCMP(MARKETLABEL, 'SH')=0,'1A0001','399001');
      stkindi(str1,'公式一.ww',0,-1);



QUOTE:
688.问:
      这个指标线▅▅ ▅▅ 怎表示?  

     坤宫:坤为地(六冲)      坤宫:地雷复(六合)
    六神 【本  卦】          【变  卦】
    朱雀 ▅▅ ▅▅ 子孙癸酉金 世   ▅▅ ▅▅ 子孙癸酉金 
    青龙 ▅▅ ▅▅ 妻财癸亥水     ▅▅ ▅▅ 妻财癸亥水 
    玄武 ▅▅ ▅▅ 兄弟癸丑土     ▅▅ ▅▅ 兄弟癸丑土 应
    白虎 ▅▅ ▅▅ 官鬼乙卯木 应   ▅▅ ▅▅ 兄弟庚辰土 
    螣蛇 ▅▅ ▅▅ 父母乙巳火     ▅▅ ▅▅ 官鬼庚寅木 
    勾陈 ▅▅ ▅▅ 兄弟乙未土  ×→ ▅▅▅▅▅ 妻财庚子水 世  
   答(bajatje):
      别名: 显示文字
      所属类别: 绘图函数  参数数量: 3

      在图形上显示文字。
      用法:
      DRAWTEXT(COND,PRICE,TEXT)
     当COND条件满足时,在PRICE位置书写文字TEXT,可用'\n'换行,可ALIGN0-5定义对齐方式。
     例如DRAWTEXT(CLOSE/OPEN>1.08,LOW,'▅▅ ▅▅')
     表示当日涨幅大于8%时在最低价位置显示'▅▅ ▅▅ '字样。



QUOTE:
689.问:
      请给改一下这个公式

      黎明:SMA(WINNER((C+L)/2*0.99)*100,2,1)*1.8,stick,coloryellow;
      黎明,coloryellow;
      黑暗:SMA((100*(HHV((H+L)/2,21)-(O+L+C)/3)/(HHV((H+L)/2,21)-LLV                             (L,21))),1,1),colorblue;
      SMA((100*(HHV((H+L)/2,21)-(O+L+C)/3)/(HHV((H+L)/2,21)-LLV                             (L,21))),1,1),stick,colorblue;
      追涨:DRAWTEXT( CROSS(黎明,黑暗),黎明,'追涨');

      注:上面的小人处是个英文字母D,晕这个小人抹不掉。
      此公式在分析家里可以用,但在飞狐中显示不全,请看蓝色的柱状在飞狐中没有,只显黄色
    答(hx817):
       公式的问题在 SMA 上
        别名: 移动平均
        所属类别: 引用函数  参数数量: 3

        求移动平均。
        用法:
        SMA(X,N,M),求X的N日移动平均,M为权重。
        算法:
        若Y=SMA(X,N,M) 则 Y=(M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必须大于M。
        例如:
        SMA(CLOSE,20,1)
        表示求20日移动平均价

        其中 N必须大于M
        而上面公式中 sma(x,1,1) 当然就没有结果了
        可以改为
           源码:  
        黎明:SMA(WINNER((C+L)/2*0.99)*100,2,1)*1.8,stick,coloryellow;
        黎明,coloryellow;
        黑暗:SMA((100*(HHV((H+L)/2,21)-(O+L+C)/3)/(HHV((H+L)/2,21)-LLV(L,21))),2,1),colorblue;
        SMA((100*(HHV((H+L)/2,21)-(O+L+C)/3)/(HHV((H+L)/2,21)-LLV(L,21))),2,1),stick,colorblue;
        追涨:DRAWTEXT( CROSS(黎明,黑暗),黎明,'追涨');



QUOTE:
690.问:
      钱龙软件营业部版的,里面有个静态分析,静态分析里有个选股功能就是利用股价来选股
      如我要寻找2004年7月16日收盘后股价在5.00__5.30元的股票,有多少只,那好我只要输入
      2004年7月16日时间,股价在5.00__5.30元的股票,之后回车系统就会开始选股,之后把符合条
      件的股票选出来了.而我现在的股软里没有这项选股设置包括飞狐在内,只有低价股,中价股,       高价股之类,很泛泛,没有具体的设置,恳请各位大侠帮助给编写一个选股公式      
    答(hx817):
       input:年(2004),月(7),日(16),最小价格(5),最大价格(5.3);
       n:=DATEDIFF(((年-1900)*10000+月*100+日),DATE);//计算输入日期和现在日期周期
       tj:REF(CLOSE,n)>最小价格 and REF(CLOSE,n)<最大价格;




QUOTE:
691.问:
      怎样在收盘价上画一平行线?????
     答(bajatje):
      cc:=c;
      cc[datacount];   



QUOTE:
692.问:
      如何指标中画自最左至右画横向平行直线?
      如在垂直位置20,30,50,60,80画5根平行直线,20处的长度为1;
      30处的长度为0.5; 50处的长度为0.6; 60处的长度为0.3; 80处的长度为0.5;
      如何在指标中表示这样的指标线?
     答(南客):
      参考如下:

      别名: 画斜线
      所属类别: 绘图函数  参数数量: 5

      在图形上绘制指定斜率、长度和方向的直线。
      用法:
      DRAWSL(COND,PRICE,SLOPE,LEN,D)
      当COND条件满足时,以PRICE位置为起点绘制斜率为每个周期价差SLOPE,长度为LEN周期的直线,
      LEN为0则无限延伸,D为1、2分别表示从起点向左、双向绘制,其余表示向右绘制。
      例如:
      DRAWSL(low=llv(low,50),low,(refx(low,5)-low)/5,5,1)
      长度以周期为单位,只能是整数,不能用小数



QUOTE:
693.问:
      求飞狐分时布林线
     答(大漠狂风):
      分时布林(飞狐的版本要高一些才行)
      中轨:MA(CLOSE,21)COLORGREEN LINETHICK2;
      上轨:=中轨+STD(CLOSE,21),COLORCYAN ;
      下轨:=中轨-STD(CLOSE,21),COLORCYAN ;
      上极限: 中轨+2*STD(CLOSE,21),COLORMAGENTA LINETHICK2;
      下极限: 中轨-2*STD(CLOSE,21),COLORMAGENTA LINETHICK2;
      (注:如果是飞狐3.9版  只需将系统中的公式 用鼠标直接拖入分时图即可 )



QUOTE:
694.问:
      请问这个函数怎么用?

      别名: 引用指标STKINDI
      所属类别: 其他函数  参数数量: 4

      引用任意证券任意周期的任意指标输出
      用法:
      STKINDI(STKLABEL,INDINAME,INDITYPE,PERIOD)
      STKLABEL指定证券代码,如为空表示当前证券
      INDITYPE为指标类型,有效值范围为(0-2),依次表示技术指标、条件选股、交易系统公式;
      PERIOD为周期类型,有效值范围为(-1-12),依次表示:
      当前周期、分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、        多分钟、多秒线
        望举例说明
     答(hx817):
        STKINDI('1A0001','MA.MA1',0,DATAPERIOD);
        //计算1A0001的当前周期MA指标的MA1指标线
        STKINDI('','RSI.RSI1',0,DATAPERIOD);
        //计算当前证券的当前周期RSI指标的RSI1指标线



QUOTE:
695.问:
      1,怎样在最近高点处画一直线。
      2,怎样在比最近高点处还高一个的高点处画一直线。
     答(hx817):
       input:n(5);
       tj:=BARSLAST(HHV(HIGH,n)=HIGH),LINETHICK0;
       DRAWSL(tj=0,HIGH,0,n,0),COLORYELLOW;



QUOTE:
696.问:
       在飞狐和分析家公式编写中,怎样编写对某指标进行指标排序后,取其排序后前十名上榜 股票的选股公式?不知大家懂了没有?比如指标OBV进行指标排序后,只取其排序后前十名上榜股票,求这样的选股公式的编写方法??? 拿指标OBV举个例子,可以吗?
     答(bajatje):
       转帖 作者:南客

       飞狐新增函数应用:股票代码遍历与横向排序

       一、如何进行板块股票代码遍历:

       bk:='A股板块'; //bk赋值为字符串'A股板块'
       stksum:=STKCOUNT(bk); //板块所包含证券数量
       variable:dmstr[stksum]=''; //定义一个字符串数组用于记录股票代码,元素个数为         
stksum,初始值为空
       for k=1 to stksum do //以下循环,循环计数器k从1开始每次递增1,直到stksum
       begin
       dm:=stkfromblk(bk,k);//板块bk中第k只证券的证券代码,赋值到字符串变量dm
       dmstr[k]:=dm; //股票代码,记录到字符串数组dmstr的第k个元素中
       end;

       //以下是一些字符串函数及运算的综合应用
       EXPLAIN(1,dmstr[1]); //在解盘中,输出深圳A股第1只股票的代码
       EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称
       EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称
       EXPLAIN(1,bk+'第4只股票的代码是:'+dmstr[4]);
       EXPLAIN(1,stkname+'最后收盘价:'+numtostr(close,2));
       EXPLAIN(1,bk+'共有股票:'+numtostr(stksum,0)+'只');

        二、横向排序:
        //本公式输出结果,请在解盘中查看,由于大量引用了其它指标,因此运算时间会稍长

       bk:='A股板块'; //bk赋值为字符串'A股板块'
       yygs:='macd.diff';//引用的指标,此处可修改为引用其它的指标

       stksum:=STKCOUNT(bk); //板块所包含证券数量
       dcount:=datacount; //K线图上,最后一根K线的位置
       variable:dmstr[stksum]='',var_px[stksum]=0,var_indi[stksum]=0; //定义一个字符串 数组用于记录股票代码,元素个数为stksum,初始值为空
       for k=1 to stksum do //以下循环,循环计数器k从1开始每次递增1,直到stksum
       begin
       dm:=stkfromblk(bk,k);//板块bk中第k只证券的证券代码,赋值到字符串变量dm
       dmstr[k]:=dm; //股票代码,记录到字符串数组dmstr的第k个元素中
       temp1:=stkindi(dm,yygs,0,-1); //引用其它个股的指标
       var_px[k]:=temp1[dcount]; //记录最后一个周期的指标值,此处可以使用参数,以便得  到其它周期的排序
       var_indi[k]:=temp1[dcount]; //同上,但准备用于记录排序后的位置
       end;

       Num1:=sortpos(var_indi,1,1,stksum); //计算排序后,按大小排列的位置
       dm_max1:=var_indi[1]; //最大值的对应位置
       dm_max2:=var_indi[2]; //次大值的对应位置
       dm_max3:=var_indi[3];
       dm_max4:=var_indi[4];
       dm_max5:=var_indi[5];
       dm_max6:=var_indi[6];
       dm_min1:=var_indi[stksum]; //最小值的对应位置
       dm_min2:=var_indi[stksum-1];

       max1:=var_px[dm_max1];
       max2:=var_px[dm_max2];
       max3:=var_px[dm_max3];
       max4:=var_px[dm_max4];
       max5:=var_px[dm_max5];
       max6:=var_px[dm_max6];
       min1:=var_px[dm_min1];
       min2:=var_px[dm_min2];

       explain(islastbar,yygs+'前6名:'),colorred;
EXPLAINex(islastbar,'1:'+dmstr[dm_max1]+STKNAMEEX(dmstr[dm_max1])  +':',max1,2,0),colorred;
EXPLAINex(islastbar,'2:'+dmstr[dm_max2]+STKNAMEEX(dmstr[dm_max2])  +':',max2,2,0),colorred;
EXPLAINex(islastbar,'3:'+dmstr[dm_max3]+STKNAMEEX(dmstr[dm_max3])  +':',max3,2,0),colorred;
EXPLAINex(islastbar,'4:'+dmstr[dm_max4]+STKNAMEEX(dmstr[dm_max4])  +':',max4,2,0),colorred;
EXPLAINex(islastbar,'5:'+dmstr[dm_max5]+STKNAMEEX(dmstr[dm_max5])  +':',max5,2,0),colorred;
EXPLAINex(islastbar,'6:'+dmstr[dm_max6]+STKNAMEEX(dmstr[dm_max6])  +':',max6,2,1),colorred;

       explain(islastbar,yygs+'后2名:'),colorgreen;
EXPLAINex(islastbar,'2:'+dmstr[dm_min2]+STKNAMEEX(dmstr[dm_min2]) +':',min2,2,0),colorgreen;
EXPLAINex(islastbar,'1:'+dmstr[dm_min1]+STKNAMEEX(dmstr[dm_min1]) +':',min1,2,0),colorgreen;

       这里给出的代码示例,请下载飞狐0916测试版后使用,否则将会出现语法等错误。
     从上面代码示例可以看出,板块股票代码的遍历是基础,有了这个横向遍历,就可以实现         横向排序、横向统计。
     上面未给出横向统计的示例,大家可以参照上面示例,根据自己的需要进行设计。
     几个关键函数:stkfromblk(),sortpos(),可进入公式编辑器,查看函数注释。
     飞狐的循环、条件控制语句,可以任意访问的数据,将给处理问题带来极大的方便。
     下面,再给一段代码,是利用循环、判断语句,设计一个鬼变脸的公式代码:
          源码:  
        sensitivy:=-c;
        direction:=c;
        towero:=o;
        towerc:=c;
        fc:=c;
        i:=2;
        while i<=datacount do begin
        if towerc>towero and not(between(sensitivy,towero,towerc)) then
        direction:=1;
        else if towerc<towero and not(between(sensitivy,towero,towerc))            then
        direction:=0;
        else direction:=direction[i-1];
        if not(between(sensitivy[i-1],towero[i-1],towerc[i-1])) then begin
        towero:=towerc[i-1];towerc:=fc;
        sensitivy:=towero[i-1];
        end else begin
        towero:=towerc[i-1];towerc:=fc;
        sensitivy:=sensitivy[i-1];
        end;
        i:=i+1;
        end;
        tj:=between(sensitivy,towero,towerc);
        stickline(tj,max(towero,towerc),sensitivy,7,0), colorred;
        stickline(tj,min(towero,towerc),sensitivy,7,0), colorgreen;
        stickline(sensitivy<towerc and not(tj),towero,towerc,7,0), colorred;
        stickline(sensitivy>towerc and not(tj),towero,towerc,7,0), colorgreen;
        stickline((towerc=towero or sensitivy=towerc) and direction=1,towero,towerc,7,0),colorred;
        stickline((towerc=towero or sensitivy=towerc) and direction=0,towero,towerc,7,0),colorgreen;
         



QUOTE:
697.问:
      在一个公式中,如果要同时看到流通盘、市值、净资产、收益、净利润、主营利、市盈率、换手率等多个指标,他们都显示在同一行中,看起来很不方便。
      有什么办法使他们换行显示?
    答(bajatje):
       换行不行 可用这个试试ALIGN

       所属类别: 线型描述  参数数量: 0

       画图标、文字的对齐方式
       对于DRAWICON,0图标中对齐;1图标上缘;2图标中缘;3图中;4图上;5图下
       对于DRAWTEXT,DRAWNUMBER,0中对齐;1左对齐;2右对齐;3图中;4图上;5图下。
       对于DRAWYITEXT,3为竖排
        例如:
       drawicon(cross(ma(c,5),ma(c,20)),H,3),align3;



QUOTE:
698.问:
      怎样 在主图中显示 某一高位 到 某一底位的天数
     答(bajatje):
      hhvbars(h,N)-LLvbars(L,N);//N日内的高点到低点的周期 负值表示低点在前



QUOTE:
699.问:
      如何在日线图中显示3日均线,3周均线和3月均线
     答(yngs):
      ma(c,3);
      "MA.ma1#WEEK"(3);
      "MA.ma1#MONTH"(3);



QUOTE:
700.问:
      1.开盘后15分钟,总手是5日成交量的1倍以上.
      2.涨幅在2%左右.
      3.有跳空高开.
       上述三个条件缺一不可,同时俱备.
     答(yngs):
      ma(VOL ,5)<if(OPENMINUTES(TIME)<=15,v,0) and ref(c,1)*1.02<=c and c>ref(h,1);
        这个公式用于盘中预警
    答(hx817):
        ma(VOL ,5)<if(OPENMINUTES(TIME)<=15,v,0) and ref(c,1)*1.02<=c and o>ref(h,1);

[ 本帖最后由 AHFYXL1 于 2005-11-28 14:51 编辑 ]




 附件: 您目前的身份是游客,无法下载或查看附件。立即注册,即可享受MACD所有免费服务。

来此 -- 学习和交友!
变色卡 提升卡 加粗卡
龙帝实战讲解---高手快速进阶之路——龙帝老师  
发表于 2005-9-14 11:09  只看该作者
《第十六楼》

目录索引:

待整理.........



QUOTE:
701.问:
      请按年四个价格写成k线
    答(yngs):
        第一个公式:
      公式名:四个价格
      c1:C;
      o1:O;
      h1:H;
      l1:L;

        第二个公式:
      年K线

     STICKLINE("四个价格.c1#YEAR">"四个价格.o1#YEAR","四个价格.o1#YEAR","四个价格.c1#YEAR",6,0)COLORRED;
     STICKLINE("四个价格.c1#YEAR">"四个价格.o1#YEAR","四个价格.h1#YEAR","四个价格.l1#YEAR",1,0)COLORRED;
     STICKLINE("四个价格.c1#YEAR"<"四个价格.o1#YEAR","四个价格.o1#YEAR","四个价格.c1#YEAR",6,0)COLORGREEN;
     STICKLINE("四个价格.c1#YEAR"<"四个价格.o1#YEAR","四个价格.h1#YEAR","四个价格.l1#YEAR",1,0)COLORGREEN;




QUOTE:
702.问:
      以下是我编写公式,请高手们看看。

      HH1:=MAX(OPEN,CLOSE);{高价}
      LL1:=MIN(OPEN,CLOSE);{底价}
      A1:=REF(HH1,3)=HHV(HH1,2*3+1);
      B1:=FILTER(A1,3);
      C1:=BACKSET(B1,3+1);
      HD:FILTER(C1,3);{高点}
      A2:=REF(LL1,3)=LLV(LL1,2*3+1);
      B2:=FILTER(A2,3);
      C2:=BACKSET(B2,3+1);
      LD:FILTER(C2,3);{底点}
      H1:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
      HA1:=H1>REF(H1,1);{高点}
      CC:=REF(HH1,BARSLAST(HA1));
      DRAWNUMBER(HA1,H*1.01,CC,2);
      VARIABLE:WW[20]=0;{在此我申请了一数组}
      WW[1]:=CC;{在此处为什么不能赋值给这个数组呢}

      系统提示要赋单值数据,这是为什么??????  
     答(hx817):
       这里的 CC 是一个序列值



QUOTE:
703.问:
      当滿足条件,即从这一股价为起点向右延伸水平直线能编吗
     答(南客):
      参考下面的函数,斜率为0时即为水平直线:

      别名: 画斜线
      所属类别: 绘图函数  参数数量: 5

      在图形上绘制指定斜率、长度和方向的直线。
      用法:
      DRAWSL(COND,PRICE,SLOPE,LEN,D)
      当COND条件满足时,以PRICE位置为起点绘制斜率为每个周期价差SLOPE,长度为LEN周期的直      线,LEN为0则无限延伸,D为1、2分别表示从起点向左、双向绘制,其余表示向右绘制。
      例如:
      DRAWSL(low=llv(low,50),low,(refx(low,5)-low)/5,5,1)



QUOTE:
704.问:
      如何引用获利盘比例在6O、3O、15、5、分钟起作用的公式编制?
    答(南客):
      参考stkindi()函数的用法



QUOTE:
705.问:
      想编写一个公式,就是要求选出当天收盘价低于30天均线的股票
    答(hx817):
      tj:c<ma(c,30)  



QUOTE:
706.问:
      请教历史最高点和历史最低点的位置和价格如何定位?
      要求只显示一个历史最高点和历史最低点,并区分最高点在前(或最高点在后).
     答(南客):
      以高点为例,试试:

      hh0:=hhv(high,0);//历史高价
      hh:hh0[datacount];//最后一天看,历史高价

      tsh0:=barslast(high=hh);//高点位置
      tsh:=tsh0[datacount];//最后一天的高点位置
      drawicon(barpos=datacount-tsh,high,10);//标记



QUOTE:
707.问:
      怎么求一段时间内的最低点那点的的价格和时间。
      我想把他们求出来之后来编写公式用。
      价格好象是LLV的,那时间呢??
      最好时间出来后以距离现在的交易日数N来表示
    答(bajatje):
      LLvbars(L,N);  



QUOTE:
708.问:
       今天开盘价是最低价的阳线。必须是开盘价低于昨天的收盘价。昨天是阴线。
     答(bajatje):
       f:=c/ref(c,1);
       o=L and ref(f,1)<1  and o<ref(c,1) and c>o;



QUOTE:
709.问:
      如何编写引用60分钟的获利盘比例的公式
    答(lhl311):
      先建一个辅助指标:
       W:WINEER(c)*100;
      再引用:
       W60:“w.w#min60";
      就可以了。



QUOTE:
710.问:
      找一下机构时代中的薛斯通道飞狐版
     答(lhl311):
      {薛斯通道}
      v1:=ma(HIGH,30)*1.15 ;
      v2:=ma(HIGH,3)*1.03;
      v3:=ma(LOW,3)*0.97;
      v4:=ma(LOW,30)*0.85;
      {v5}大通道上:fft(v1,30);
      {v6}小通道上:fft(v2,30);
      {v7}小通道下:fft(v3,30);
      {v8}大通道下:fft(v4,30);
      A1:=大通道上-REF(大通道上,1);
      A2:=小通道上-REF(小通道上,1);
      A3:=小通道下-REF(小通道下,1);
      A4:=大通道下-REF(大通道下,1);
      PARTLINE(A1>0,大通道上) LINETHICK2 COLORRED;
      PARTLINE(A1=0,大通道上) LINETHICK1 COLORWHITE;
      PARTLINE(A1<0,大通道上) LINETHICK1 COLORGREEN;
      PARTLINE(A2>0,小通道上) LINETHICK2 COLORRED;
      PARTLINE(A2=0,小通道上) LINETHICK1 COLORWHITE;
      PARTLINE(A2<0,小通道上) LINETHICK1 COLORGREEN;
      PARTLINE(A3>0,小通道下) LINETHICK2 COLORRED;
      PARTLINE(A3=0,小通道下) LINETHICK1 COLORWHITE;
      PARTLINE(A3<0,小通道下) LINETHICK1 COLORGREEN;
      PARTLINE(A4>0,大通道下) LINETHICK2 COLORRED;
      PARTLINE(A4=0,大通道下) LINETHICK1 COLORWHITE;
      PARTLINE(A4<0,大通道下) LINETHICK1 COLORGREEN;





QUOTE:
711.问:
      公式名称:A指数kdj副图
      公式类型:技术指标
      显示区域:副图
      公式思路:方便看个股是否与大盘同步,以及编写短线组合条件的条件之一。
      公式结果:在打开个股图形时显示A指数KDJ副图。  
     答(yngs):
      RSV:=(INDEXC-LLV(INDEXL,N))/(HHV(INDEXH,N)-LLV(INDEXL,N))*100;
      K:SMA(RSV,M1,1);
      D:SMA(K,M2,1);
      J:3*K-2*D;



QUOTE:
712.问:
      写个公式:一月涨跌幅。二月涨跌幅。直到12月涨跌幅。(注:一定月分对月分)。
     答(hx817):
        1. 建立一个涨幅公式 aaa
      涨幅:100*(CLOSE-REF(CLOSE,1))/REF(CLOSE,1);
        2.另外建立一个公式调用
      "aaa.涨幅#MONTH"



QUOTE:
713.问:
      我想对分时图中横盘一段时间后向上突破的形态编写一个选股公式,使用一分钟周期

      hh:=hhv(h,60);//指定箱体顶部,箱体长度为60分钟
      ll:=llv(l,60);//箱体底部
      zs:=dynainfo(3);//昨日收盘价,可能不能引用动态函数,但不知其它方法如何引用
      zf:=(hh-ll)/ll<=0.022;//箱体高度为2。2%
      kk:=hh/zs<1.055//箱体顶部不能超过5。5%涨幅 (与昨日收盘价相比)
      and ll/zs>=0.085 //箱体的底部不能低于1。5%的跌幅
      and hh=dynainfo(5);//箱体的顶部价格为现在的最高价
      tp:=c>hh ;//价格突破
      zf and tp// and kk//选出个股
        但是在盘中对符合条件的个股未能选出来
     答(hx817):
        前面两个条件参考
         hh:=hhv(ref(h,1),60);//指定箱体顶部,箱体长度为60分钟
         ll:=llv(ref(l,1),60);//箱体底部
         zf:=(hh-ll)/ll<=0.022;//箱体高度为2。2%
         tp:=c>hh ;//价格突破,既然突破,最新价格就必须在 hhv(h,60)之外
         zf and tp// and kk//选出个股
        (zs:=dynainfo(3);//昨日收盘价,可能不能引用动态函数,但不知其它方法如何引用
         可以调用另外一个公式来取得 )  
         zs:"ohlc.fc#day";
         公式 ohlc 为:
          fc:c;



QUOTE:
714.问:
      这是一个针对一分钟K线图编写的箱体突破公式,语法没错就是符合要求的股不能选出?
      hh:=hhv(h,60);
      ll:=llv(l,60);
      zs:=dynainfo(3);
      zf:=(hh-ll)/ll<=0.022;
      kk:=hh/zs<1.055 and ll/zs>=0.015 and hh=dynainfo(5);
      tp:=c>hh and c/zs>1.03;
      cjl:=v>1.5*ma(v,60);
      zf and tp and cjl and kk  
     答(bajatje):
      最后一句改为
      hhv(zf and tp and cjl and kk,0);  
      每天在有盘后选  稍改一下  0改为240   



QUOTE:
715.问:
      1.计算两个时间中间的有效交易k线天数。如(2002年8月10日-2003年6月10)日
        之间的有效交易k线天数,去除节假日和星期天。
      2,以2002年8月10日为起始日,向后第一百天的位置画竖线,和显示文字。

     答(hx817):
      参考
      BARSLAST(date=1020809)-BARSLAST(date=1030610);//计算2002.8.9到2003.6.10之间交易
      日
      tj:=BARSLAST(date=1020809)=100;//从2002.8.9以后100天
      VERTLINE(tj);//画竖线
      DRAWTEXT(tj,c,'时间到');//写文字



QUOTE:
716.问:
      请帮助编写一个简单的条件选股公式,先谢了!
      今日以前20个交易日内收盘价都低于20日均价,
      今日K线第一次上穿20日均线。(或今日收盘价第一次大于或等于20日均价)

    答(bajatje):
      LONGCROSS(c,ma(c,20),20);



QUOTE:
717.问:
      我安装了 一目均衡表 的飞狐公式 但是有个问题 就是K线 在一目均衡表的
      云里的时候被 云当住了看不到 请问如何改公式 才能不被云遮 住
    答(bajatje):
重写K线公式 放到该公式的最后



QUOTE:
718.问:
关于乾坤烛的问题
     答(南客):
根据该狐友提供算法,大致如下:
if datatype<>0 then begin
  drawtext(islastbar,0,'只能运行在分笔周期!\n \n请切换到分笔周期!!'),align2;
  exit;
end;
fv:=vol;
fc:=close;
fcp:=fc;
a:=sortpos(fcp,0,1,datacount);
fvmax:=0; fvmaxp:=1; fvtemp:=fv[fcp[1]];
if datacount>1 then begin
  for i=2 to datacount do
    if fc[fcp]=fc[fcp[i-1]] then fvtemp:=fvtemp+fv[fcp]
    else begin
      if fvmax<fvtemp then begin
        fvmax:=fvtemp;
        fvmaxp:=i-1;
      end;
      fvtemp:=fv[fcp];
    end;
  if fvmax<fvtemp then begin
    fvmax:=fvtemp;
    fvmaxp:=i-1;
  end;
end;

svmin:=0; svminp:=fv[fcp[1]]; svmax:=0; svmaxp:=fv[fcp[1]];
for i=1 to datacount do begin
  svmin:=svmin+fv[fcp];
  if svmin>=dynainfo(8)/6 then begin
    svminp:=i;
    break;
  end;
end;
for i=datacount downto 1 do begin
  svmax:=svmax+fv[fcp];
  if svmax>=dynainfo(8)/6 then begin
    svmaxp:=i;
    break;
  end;
end;
集聚点:fc[fcp[fvmaxp]];
活跃上限:fc[fcp[svmaxp]];
活跃下限:fc[fcp[svminp]];
基本公式大致就是这样了,至于如何引用到日线的K线图,需要自行在扩展数据库定义
   答(南客):
直接引用分笔周期的公式的话,只能引用一天:
tj:=close>open or close=open and ref(close,1)>close;
jjd:stkindi('','qksj.聚焦点',0,0);
hyxx:=stkindi('','qksj.活跃下限',0,0);
hysx:=stkindi('','qksj.活跃上限',0,0);

stickline(tj,h,l,0,0),colorred;
stickline(tj,c,o,8,0),colorred;

stickline(not(tj),h,l,0,1),colorgreen;
stickline(not(tj),c,o,8,1),colorgreen;

stickline(1,hysx,hyxx,3,1),colorblue;
drawicon(1,jjd,10),align0;
开:open,linethick0;
高:high,linethick0;
收:close,linethick0;
低:low,linethick0;
聚焦点:jjd,linethick0;
活跃下限:hyxx,linethick0;
活跃上限:hysx,linethick0;



QUOTE:
719.问:
如何让电脑自动解盘显视当日的涨跌幅?
     答(hx817):
振幅:=100*(HIGH-LOW)/REF(CLOSE,1);
涨幅:=100*(CLOSE-REF(CLOSE,1))/REF(CLOSE,1);
EXPLAINEX(1,'今日振幅为:%f %',振幅,2,1);
EXPLAINEX(1,'今日涨幅为:%f %',涨幅,2,1);



QUOTE:
720.问:
请问,如果出现信号是在今天K线上,还是在N天前的K线上
ref(h,n)=llv(h,2*n+1)//
     答(hx817):
      应该是出现信号那天,前 n 天最高价格等于前 2*n+1 天内最高价格的最低值




QUOTE:
721.问:
      llv(h,2*n+1)//是最低价格的最高值,还是最高假价的最低值?
    答(yngs):
      llv(h,2*n+1)//2*n+1周期内h的最低值



QUOTE:
722.问:
      这是网上的"江恩时间窗"五彩K线公式:
c>o,colorred;
c<o,colorblue;
c=o and c<ref(c,1),colorblue;
c=o and c>ref(c,1),colorred;
c=o and c=ref(c,1),colorwhite;
FILTER(BACKSET(islastbar,13),12),colorgreen;
FILTER(BACKSET(islastbar,12),11),colorgreen;
FILTER(BACKSET(islastbar,11),10),colorgreen;
FILTER(BACKSET(islastbar,10),9),colorgreen;
FILTER(BACKSET(islastbar,9),8),colorgreen;
FILTER(BACKSET(islastbar,8),7),colorgreen;
FILTER(BACKSET(islastbar,22),21),colorgreen;
FILTER(BACKSET(islastbar,21),20),colorgreen;
FILTER(BACKSET(islastbar,20),19),colorgreen;
FILTER(BACKSET(islastbar,19),18),colorgreen;
FILTER(BACKSET(islastbar,32),31),colorgreen;
FILTER(BACKSET(islastbar,31),30),colorgreen;
FILTER(BACKSET(islastbar,30),29),colorgreen;
FILTER(BACKSET(islastbar,29),28),colorgreen;
FILTER(BACKSET(islastbar,50),49),colorgreen;
FILTER(BACKSET(islastbar,49),48),colorgreen;
FILTER(BACKSET(islastbar,48),47),colorgreen;
FILTER(BACKSET(islastbar,47),46),colorgreen;
FILTER(BACKSET(islastbar,46),45),colorgreen;
FILTER(BACKSET(islastbar,45),44),colorgreen;
FILTER(BACKSET(islastbar,44),43),colorgreen;
FILTER(BACKSET(islastbar,43),42),colorgreen;
FILTER(BACKSET(islastbar,66),65),colorgreen;
FILTER(BACKSET(islastbar,65),64),colorgreen;
FILTER(BACKSET(islastbar,64),63),colorgreen;
FILTER(BACKSET(islastbar,63),62),colorgreen;
FILTER(BACKSET(islastbar,62),61),colorgreen;
FILTER(BACKSET(islastbar,61),60),colorgreen;
FILTER(BACKSET(islastbar,60),59),colorgreen;
FILTER(BACKSET(islastbar,59),58),colorgreen;
FILTER(BACKSET(islastbar,58),57),colorgreen;
FILTER(BACKSET(islastbar,93),92),colorgreen;
FILTER(BACKSET(islastbar,92),91),colorgreen;
FILTER(BACKSET(islastbar,91),90),colorgreen;
FILTER(BACKSET(islastbar,90),89),colorgreen;
FILTER(BACKSET(islastbar,89),88),colorgreen;
FILTER(BACKSET(islastbar,88),87),colorgreen;
FILTER(BACKSET(islastbar,87),86),colorgreen;
FILTER(BACKSET(islastbar,86),85),colorgreen;
FILTER(BACKSET(islastbar,121),120),colorgreen;
FILTER(BACKSET(islastbar,120),119),colorgreen;
FILTER(BACKSET(islastbar,119),118),colorgreen;
FILTER(BACKSET(islastbar,118),117),colorgreen;
FILTER(BACKSET(islastbar,117),116),colorgreen;
FILTER(BACKSET(islastbar,116),115),colorgreen;
FILTER(BACKSET(islastbar,115),114),colorgreen;
FILTER(BACKSET(islastbar,114),113),colorgreen;
FILTER(BACKSET(islastbar,113),112),colorgreen;
FILTER(BACKSET(islastbar,158),157),colorgreen;
FILTER(BACKSET(islastbar,157),156),colorgreen;
FILTER(BACKSET(islastbar,156),155),colorgreen;
FILTER(BACKSET(islastbar,155),154),colorgreen;
FILTER(BACKSET(islastbar,154),153),colorgreen;
FILTER(BACKSET(islastbar,153),152),colorgreen;
FILTER(BACKSET(islastbar,152),151),colorgreen;
FILTER(BACKSET(islastbar,151),150),colorgreen;
FILTER(BACKSET(islastbar,186),185),colorgreen;
FILTER(BACKSET(islastbar,185),184),colorgreen;
FILTER(BACKSET(islastbar,184),183),colorgreen;
FILTER(BACKSET(islastbar,183),182),colorgreen;
FILTER(BACKSET(islastbar,182),181),colorgreen;
FILTER(BACKSET(islastbar,181),180),colorgreen;
FILTER(BACKSET(islastbar,180),179),colorgreen;
FILTER(BACKSET(islastbar,179),178),colorgreen;
FILTER(BACKSET(islastbar,178),177),colorgreen;
FILTER(BACKSET(islastbar,177),176),colorgreen;
FILTER(BACKSET(islastbar,176),175),colorgreen;
可以编写在日线K线图上同时显示日线和周线的指标吗?请施教.
不用五彩线可以表示吗?

    答(南客):
主图叠加公式:时间周期线示例代码
input:n(5,5,100);//参数定义
zig(1,n);//高点
ff:=PEAKBARS(1,n,1);
ff:=if(ff<6,PEAKBARS(1,n,2),ff);
barst:=sysparam(1);
variable:zq[序列数据量/2]:=1.236;
zq[2]:=1.309;zq[3]:=1382;zq[4]:=1.5;
zq[5]:=1.618;zq[6]:=1.746;zq[7]:=2;zq[8]:=2.618;
zq[9]:=3;zq[10]:=3.236;zq[11]:=4.236;zq[12]:=5.236;//周期线间隔比例,可另行定义
tj:=ff[barst]=barst-barpos;
for i=1 to 12 do tj:=tj or barpos-barst=round((zq-1)*ff[barst]+0.5);
VERTLINE(tj),POINTDOT,COLORMAGENTA;
必须打开十字光标才可以正常使用。自动寻找高点,可另加参数,改成高低点两用。
  公式含义:当K线与高点的时间间隔为十字光标与高点的时间间隔的等于指定比例时,显示竖线。即所谓的时间预测,如果您有好的测试方法,可以仿此代码编制。
  这段代码,进行适当的改造,可以向未来延伸,有兴趣的可以自行研究(提示:使用shift函数)。



QUOTE:
723.问:
      编个K线选股公式,条件如下:
      1.股价均线成多头排列顺序依次是5,10,22,42及55日[均线距离越近越好].
      2.股价上涨一段时间后[涨幅小于10%最好]后回调,股价回调到42日均线处
      [如破42日均线,则必须在3日内返回到42日均线之上]止跌,又重新开始上涨.
    答(闲人):
       {N:3   1   5}
tj1:=ma(c,5)>ma(c,10) and ma(c,10)>ma(c,22) and ma(c,22)>ma(c,2) and
(ma(c,5)-ma(c,42)) AND ma(c,42)<n;
tj2:=(ref(c,1)<=ma(c,42)*1.02 and c>ma(c,42)*1.02) or
ref(c,1)<=ma(c,42) and c>ma(c,42);
BARSLAST(tj1)>4 and tj2;



QUOTE:
724.问:
      下列 FXJ 5.0 公式改成飛狐公式  

if DISPSTATUS=2 then begin
a1:=hhvbars(v,n);
if a1>0 then begin
hh:=ref(h,a1);
ll:=ref(l,a1);
stickline(1,hh,hh,500,0);
stickline(1,ll,ll,500,0);
end;
end;  

    答(jsyjsybt):

A1:=HHVBars(V,N);
HH:=Ref(H,a1);
LL:=Ref(L,a1);
最高:Stickline(IsLastBar,HH,HH,500,0),Colorred;
最低:Stickline(IsLastBar,LL,LL,500,0),Colorgreen;



QUOTE:
725.问:
      如何编写将同在涨幅和现手前20位的股票选出的公式
    答(bajatje):
      南客老师的帖

横向排序:
//本公式输出结果,请在解盘中查看,由于大量引用了其它指标,因此运算时间会稍长

bk:='A股板块'; //bk赋值为字符串'A股板块'
yygs:='macd.diff';//引用的指标,此处可修改为引用其它的指标

stksum:=STKCOUNT(bk); //板块所包含证券数量
dcount:=datacount; //K线图上,最后一根K线的位置
variable:dmstr[stksum]='',var_px[stksum]=0,var_indi[stksum]=0;  //定义一个字符串数组用于记录股票代码,元素个数为stksum,初始值为空
for k=1 to stksum do  //以下循环,循环计数器k从1开始每次递增1,直到stksum
begin
    dm:=stkfromblk(bk,k);//板块bk中第k只证券的证券代码,赋值到字符串变量dm
    dmstr[k]:=dm;  //股票代码,记录到字符串数组dmstr的第k个元素中
    temp1:=stkindi(dm,yygs,0,-1);  //引用其它个股的指标
    var_px[k]:=temp1[dcount];  //记录最后一个周期的指标值,此处可以使用参数,以便得到其它周期的排序
    var_indi[k]:=temp1[dcount];  //同上,但准备用于记录排序后的位置
end;

Num1:=sortpos(var_indi,1,1,stksum);  //计算排序后,按大小排列的位置
dm_max1:=var_indi[1];  //最大值的对应位置
dm_max2:=var_indi[2];  //次大值的对应位置
dm_max3:=var_indi[3];
dm_max4:=var_indi[4];
dm_max5:=var_indi[5];
dm_max6:=var_indi[6];
dm_min1:=var_indi[stksum];  //最小值的对应位置
dm_min2:=var_indi[stksum-1];

max1:=var_px[dm_max1];
max2:=var_px[dm_max2];
max3:=var_px[dm_max3];
max4:=var_px[dm_max4];
max5:=var_px[dm_max5];
max6:=var_px[dm_max6];
min1:=var_px[dm_min1];
min2:=var_px[dm_min2];

explain(islastbar,yygs+'前6名:'),colorred;
EXPLAINex(islastbar,'1:'+dmstr[dm_max1]+STKNAMEEX(dmstr[dm_max1])+':',max1,2,0),colorred;
EXPLAINex(islastbar,'2:'+dmstr[dm_max2]+STKNAMEEX(dmstr[dm_max2])+':',max2,2,0),colorred;
EXPLAINex(islastbar,'3:'+dmstr[dm_max3]+STKNAMEEX(dmstr[dm_max3])+':',max3,2,0),colorred;
EXPLAINex(islastbar,'4:'+dmstr[dm_max4]+STKNAMEEX(dmstr[dm_max4])+':',max4,2,0),colorred;
EXPLAINex(islastbar,'5:'+dmstr[dm_max5]+STKNAMEEX(dmstr[dm_max5])+':',max5,2,0),colorred;
EXPLAINex(islastbar,'6:'+dmstr[dm_max6]+STKNAMEEX(dmstr[dm_max6])+':',max6,2,1),colorred;

explain(islastbar,yygs+'后2名:'),colorgreen;
EXPLAINex(islastbar,'2:'+dmstr[dm_min2]+STKNAMEEX(dmstr[dm_min2])+':',min2,2,0),colorgreen;
EXPLAINex(islastbar,'1:'+dmstr[dm_min1]+STKNAMEEX(dmstr[dm_min1])+':',min1,2,0),colorgreen;
   答(bajatje):
      另一方法
建公式
F:DYNAINFO(14);
S:DYNAINFO(9);
然后 将F、S分别加入扩展数据中 注意:要钩选 生成横向排名数据
再列公式调用



QUOTE:
726.问:
      股价回补 上下的 跳空缺口的公式
   答(bajatje):
      ws:=barslast(L>ref(h,1));
      L<ref(h,ws+1);

      wx:=barslast(h<ref(L,1));
      h>ref(L,ws+1);



QUOTE:
727.问:
      要编译一个主图指标,
      由30根不同价格的横线组成,其画面会随k线的价位大小自动调整,犹如MA均线一样,
    答(bajatje):
      方法
a:=条件;
a0:a[datacount];
a1:a[datacount]-k1;
a2:a[datacount]-k2;
a3:a[datacount]-k3;//k1,k2,k3....间隔值



QUOTE:
728.问:
      0amv 主图 飞狐如何能做出来?看见别人在用  有K线的
    答(hx817):
Var1:=SMA(AMOUNT,10,1)/1000000;
Var2:=REF(Var1,1);
Var3:=MA(REF(CLOSE,1),5);
收盘:Var1*CLOSE/Var3*1/10,COLOR009900,LINETHICK0,POINTDOT;
开盘:Var1*OPEN/Var3*1/10,POINTDOT,COLOR009900,LINETHICK0;
最高:Var1*HIGH/Var3*1/10,POINTDOT,COLOR009900,LINETHICK0;
最低:Var1*LOW/Var3*1/10,POINTDOT,COLOR009900,LINETHICK0;
生命线:EMA(收盘,12),COLORCYAN;
昨收盘:=REF(收盘,1),POINTDOT,COLOR009900,LINETHICK0;
涨跌:=(收盘-REF(收盘,1))/REF(收盘,1)*100,POINTDOT,COLOR009900,LINETHICK0;
STICKLINE(收盘>开盘,收盘,开盘,5,0),COLORRED;
STICKLINE(收盘>开盘,最高,MAX(收盘,开盘),0,1),COLORRED;
STICKLINE(收盘>开盘,MIN(收盘,开盘),最低,0,1),COLORRED;
STICKLINE(收盘<开盘,收盘,开盘,5,0),COLORGREEN;
STICKLINE(收盘<开盘,最高,MAX(收盘,开盘),0,1),COLORGREEN;
STICKLINE(收盘<开盘,MIN(收盘,开盘),最低,0,1),COLORGREEN;



QUOTE:
729.问:
      我想把a5和a6合成一根线,当慢KD金叉时画a6,当慢KD死叉时画a5..
a1:=IF(BARSLAST(LLV(LOW,3)< REF(LLV(LOW,3),1))>1,LLV(LLV(LOW,3),BARSLAST(LLV(LOW,3)< REF(LLV(LOW,3),1))),LLV(LOW,3));
a2:= IF(BARSLAST(hhV(h,  3)> REF(hhV(h,  3),1))<1,hhV(hhV(h,  3),BARSLAST(hhV(h,3)  > REF(hhV(h,3),  1))),  hhV(h,3));
a3:=LLV(LOW,n);
a4:=hhv(h,n);
a5:=if(a3>a4,a3,0);
a6:=if(a3<a4,a3,0);

{慢KD}
rSV:= (CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9));
FASTK:=SMA(RSV,3,1);
K:=SMA(FASTK,3,1);
D:=SMA(K,5,1);
b1:=cross(k,d);
b2:=cross(d,k);
AO:=MA(c ,5 )-MA(c ,34 );
AC:=AO-MA( AO,5);
ac1:=ref(AC,1);
ao1:=ref(ao,1);

KAC:IF( b1,a3,a4);
KAO:IF(b2,a4,a3);

    答(yngs):
a1:=IF(BARSLAST(LLV(LOW,3)< REF(LLV(LOW,3),1))>1,LLV(LLV(LOW,3),BARSLAST(LLV(LOW,3)< REF(LLV(LOW,3),1))),LLV(LOW,3));
a2:= IF(BARSLAST(hhV(h,  3)> REF(hhV(h,  3),1))<1,hhV(hhV(h,  3),BARSLAST(hhV(h,3)  > REF(hhV(h,3),  1))),  hhV(h,3));
a3:=LLV(LOW,n);
a4:=hhv(h,n);
a5:=if(a3>a4,a3,0);
a6:=if(a3<a4,a3,0);

{慢KD}
rSV:= (CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9));
FASTK:=SMA(RSV,3,1);
K:=SMA(FASTK,3,1);
D:=SMA(K,5,1);
b1:=cross(k,d);
b2:=cross(d,k);
AO:=MA(c ,5 )-MA(c ,34 );
AC:=AO-MA( AO,5);
ac1:=ref(AC,1);
ao1:=ref(ao,1);

{KAC:IF( b1,a3,a4);
KAO:IF(b2,a4,a3); }
if(k>=d,a6,a5);



QUOTE:
730.问:
      请问下面语句有什么语法错误,通过不了
VARIABLE:PP[DATACOUNT]=0,VARVOL:=VOL;
PP[1]:=100;
FOR I=2 TO DATACOUNT-1 DO
PP[I]:=IF(VARVOL[I]<VARVOL[I-1],PP[I-1]+100*(C-REF(C,1))/C,PP[I-1]);

   答(hx817):
c 为序列值,改为;
VARIABLE:PP[DATACOUNT]=0,VARVOL=VOL,fc=c;
PP[1]:=100;
FOR I=2 TO DATACOUNT-1 DO
PP[I]:IF(VARVOL[I]<VARVOL[I-1],PP[I-1]+100*(fc-fc[i-1])/fc,PP[I-1]);





QUOTE:
731.问:
编两个选股指标.
1:根据股价选股指标[股价可任意调整]
2:双底选股指标  
    答(bajatje):
1:
c>m and c<n;//m、n股价的范围M<N

2:
a:zig(4,n);
wa:=a>ref(a,1) and ref(a,2)>ref(a,1);
wb:=a<ref(a,1) and ref(a,2)<ref(a,1);
wl1:=barslast(wa)+1;    wl2:=ref(wl1,wl1+1)+wl1+1;  
wh:=barslast(wb)+1;       w:=llvbars(m,wh);
ll:=ref(l,wl2) ;      hh:=hhv(h,wh+2);    d:=ref(llv(l,w),w);
k:FILTER(w>0 and w<3 and d>ll*0.99 and a>ref(a,1),wh);



QUOTE:
732.问:
飞狐横向统计流通总市值怎么编,就是上海或深圳个股流通总市值

    答(bajatje):
法1
建相应的流通指数
法2
用横向统计功能   



QUOTE:
733.问:
    请问连续两天内两条均线重合在一起的公式是如何编的!如 MA5 与  MA10 重合

    答(hx817):
      重合 怎么定义?
是相等,还是两个差值小于多少?
如果是差值小于某个值,参考

ma5:=ma(c,5);
ma10:=ma(c,10);
tj1:=abs(ma5-ma10)<0.015;//差值小于 0.015,可自己修改
tj:ALL(tj1,2);//2 个周期内满足 tj1



QUOTE:
734.问:
    需要用到 如下两个 数据 ,主图中所显示K线的最高价,和最低价。应该如何写。

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



QUOTE:
735.问:
     当指定日期是"非交易日"时,用简单函数BARSLAS  或   BARSSINCE不能实现!
    答(hx817):
n:=1041001;
fd:=date;
d:=BARSSINCE(DATEDIFF(n,date)>=0);
fd[DATACOUNT-d[DATACOUNT]];//返回 1041007



QUOTE:
736.问:
      能否实现引用某个股票的周线状态下的某个指标的数值?
比如引用“上证指数周线乖离率的Bais3”的数值?Bais参数为6.12.24

    答(yngs):
      引用任意证券任意周期的任意指标输出
用法:
STKINDI(STKLABEL,INDINAME,INDITYPE,PERIOD)
STKLABEL指定证券代码,如为空表示当前证券
INDITYPE为指标类型,有效值范围为(0-2),依次表示技术指标、条件选股、交易系统公式;
PERIOD为周期类型,有效值范围为(-1-12),依次表示:
当前周期、分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、多分钟、多秒线
例如:STKINDI('1A0001','MA.MA1',0,DATAPERIOD);计算1A0001的当前周期MA指标的MA1指标线

STKINDI('','RSI.RSI1',0,DATAPERIOD);计算当前证券的当前周期MA指标的MA1指标线



QUOTE:
737.问:
      找出当天的平均成本.
    答(股市骑兵00):
      AMOUNT/v/100;  



QUOTE:
738.问:
    飞狐有个大手笔之差选股条件,就是100手以上主动买之和减100手以上主动卖之和,
我想把它变成副图指标,用柱状表示,正值在0轴之上红色,负值在0轴之下蓝色,如果可以的话,
k线是阴(阳),大手笔差是正(负),柱状用白色.

    答(bajatje):
主动买卖:-SELLVOL*(v>100)+BUYVOL*(v>100),colorstick,linethick5;0;



QUOTE:
739.问:
     当涨停或跌停时,分笔OBV的缺陷是为零,能否换算成涨停时OBV为增加,跌停时为减少,
正常情况下不变.

    答(hx817):
SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0);
涨停时:SUM(IF(CLOSE>=REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0);
跌停时:SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<=REF(CLOSE,1),-VOL,0)),0);
    问:  
      我的意思是两者能否合二为一,在一个公式中做到,这样计算和引用也方便
    答(hx817):
bl:=if(STKINBLOCK(STKLABEL,'ST板块') or STKINBLOCK(STKLABEL,'*ST板块'),1.0495,1.095);
ztb:=c>=intpart("ohlc.fc##day"*bl*100+0.495)/100;//判断涨停
dtb:="ohlc.fc##day">=intpart(c*bl*100+0.495)/100;//判断跌停

原公式:SUM(IF(c>ref(c,1),VOL,IF(c<ref(c,1),-VOL,0)),0);
新输出:SUM(if(c>ref(c,1) or (c=ref(c,1) and ztb=1),VOL,IF(c<ref(c,1) or (c=ref(c,1) and dtb=1),-VOL,0)),0);



QUOTE:
740.问:
      在飞狐obv指标上加一根30平均线,
    答(hx817):
A:SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0);
M30:MA(A,30);





QUOTE:
741.问:
      能否将流通股数也同时显示在主图上?就像显示板块信息一样

    答(hx817):
      和显示板块一样,在板块后面加上这部分数据(转字符串)即可



QUOTE:
742.问:
      怎样才能把画线部分写到公式中! 我需要的是起点的最低价! 终点的最高价
    答(yngs):
      在图形上绘制直线段。
用法:
DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)
当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。
例如:DRAWLINE(HIGH>=HHV(HIGH,10),HIGH,LOW<=LLV(LOW,10),LOW,1)
表示在创10天新高与创10天新低之间画直线并且向右延长。



QUOTE:
743.问:
     1、求5日和10日均线交叉时对应的close的数值?
     2、求kdj中,k、d金叉或死叉时对应的即时close股价值?:p

    答(南客):
       试试:
1、
ts:=barslast(cross(ma(close,5),ma(close,10))); //上次金叉距今周期数
fc:ref(close,ts);  //引用上次金叉时的收盘价
2、方法同上



QUOTE:
744.问:
      编一个上影线及下影线成交量的公式
    答(股市骑兵00):
      {分笔周期}
OO:=DYNAINFO(4);CC:=DYNAINFO(7);
S:=SUM((C>MAX(OO,CC))*V,0);X:=SUM((C<MIN(OO,CC))*V,0);
上影:S[DATACOUNT];
下影:X[DATACOUNT];
     问:上影量与成交量相等,下影量似乎可以,但没办法验证
        (引用公式)

今开:DYNAINFO(4);
收盘:DYNAINFO(7);
{前收:DYNAINFO(3);}
最高:DYNAINFO(5);
最低:DYNAINFO(6);
收:close;

(扩展数据用公式)
OO:=DYNAINFO(4);
CC:="oc.收#day";
S:=SUM((C>MAX(OO,CC))*V,0);
X:=SUM((C<MIN(OO,CC))*V,0);
上影:S[DATACOUNT];
下影:X[DATACOUNT];
//如将CC:="oc.收#day";改成 cc:="oc.收盘#day";得出的结果一样。我在想问题可能出在全日最终的收盘价定位上。用DYNAINFO(7)和日线的close显然不行,那么怎么样来正确定位全日的收盘价呢?用全日最后一笔的成交价?那岂不是又回到最新价(DYNAINFO(7))了吗?
我用了000581验证了上影线的成交量=128手正确,下影线=1248不正确,应该=1553.88手,用000578验证下影线的成交量=382手不正确,应该=242.3手,上影线=4789手正确。
之所以用这两只股票做例子是因为上下影线的成交量较小,用手工算也很快。
000581上影只有28、100两笔,000578下影有九笔2、6.3、10、24、40、21、9、16、114共计242.3手。请先帮我验证一下分笔数据是否正确
     答(股市骑兵00):
       分笔数据准确性是有点小问题的
你的公式,分笔数据准确性(除了最高和最低价外)是不会影响的。
你说的:用了000581验证了上影线的成交量=128手正确,下影线=1248不正确。俺没找到你说的那天数据。
就简单改了下公式,两跟横线是开盘价和收盘价,红图标成交量的和就是上影成交量了,绿图标成交量的和就是下影成交量了。
看的出图标都是画对的,相信数据出来肯定对的。你再看看好吗。公式如下:

cc:"oc.cc#day";oo:"oc.oo#day";{cc:fc[DATACOUNT];oo:fo[1];}
S:=SUM((C>MAX(OO,CC))*V,0);X:=SUM((C<MIN(OO,CC))*V,0);
上影:=S[DATACOUNT];
下影:=X[DATACOUNT];
DRAWICON(C>MAX(OO,CC),c,4);
DRAWICON(C<MIN(OO,CC),c,5);

     答(南客):
骑兵的公式,应该没什么问题吧?
为了便于检验数据,我简单写了2个公式,把分笔价格重新按从小到大的顺序排列,相应的成交量也相应调整,这样就便于手工计算检验了。
新建2个公式,代码如下:

{被调用公式,公式名称为“日线”}
fc:close;
fo:open;

原码
if datatype>0 then exit;  //公式只在分笔下运行
fv:=vol;
fc:close;  //经过以下代码处理,分笔价从小到大排列
pc:=close;
a:=sortpos(pc,0,1,datacount);  //分笔成交价位置排序
vv:vol,linethick0;  //经过下面代码处理,使这里输出的成交量跟分笔价对应
c_day:="日线.fc#day";  //当日收盘价
o_day:="日线.fo#day";  //当日开盘价
j_max:max(c_day,o_day);
j_min:min(c_day,o_day);
for i=1 to datacount do //使成交量跟大小重排后的分笔价对应
  vv:=fv[pc];
a:=sort(fc,0,1,datacount);  //分笔价从小到大排列
vstem:=sum(vv*(fc>j_max),0);
上影量:vstem[datacount],linethick0;
vxtem:=sum(vv*(fc<j_min),0);
下影量:vxtem[datacount],linethick0;
//至于分笔中的最高和最低价可能和日线有所区别,这个数据问题...........
1、这个问题没办法解决,仔细想想就会明白了,由于数据传输速度的原因,分笔接收时,没办法知道日线中的最高、最低价是何时发生的,日线最高、最低价对应的量是多少,除非刚好最高、最低价成交的分笔数据被传输到我们的电脑。
2、那么,这个日线最高、最低价的成交情况不一定能够被实际接收到,是怎么知道这2个价格的?是交易所发过来的。




QUOTE:
745.问:
      在同一个指标公式中怎么写
不是ST股票运用以下公式:
MA1:MA(CLOSE,5);MA2:MA(CLOSE,10);MA3:MA(CLOSE,30);
DRAWTEXT((LOW-MA(CLOSE,15))/MA(CLOSE,15)*100 <=-13  AND CLOSE/REF(CLOSE,1)>=0.95 ,LOW*0.99,'买' ),COLORF00FF0;
DRAWTEXT((HIGH-MA(CLOSE,15))/MA(CLOSE,15)*100 >=13 AND VOL/MA(VOL,3)>2 ,HIGH *1.01,'卖' ),COLORGREEN;
ST股票能运用以下公式:
MA1:MA(CLOSE,5);MA2:MA(CLOSE,10);MA3:MA(CLOSE,30);
DRAWTEXT((LOW-MA(CLOSE,15))/MA(CLOSE,15)*100 <=-8  AND CLOSE/REF(CLOSE,1)>=0.95 ,LOW*0.99,'买' ),COLORF00FF0;
DRAWTEXT((HIGH-MA(CLOSE,15))/MA(CLOSE,15)*100 >=8 AND VOL/MA(VOL,3)>2 ,HIGH *1.01,'卖' ),COLORGREEN;
    答(hx817):
bk:=if(STKINBLOCK(STKLABEL,'ST板块') or STKINBLOCK(STKLABEL,'*ST板块'),0,1);
MA1:MA(CLOSE,5);MA2:MA(CLOSE,10);MA3:MA(CLOSE,30);
if bk=1 then begin
//不是ST股票运用以下公式:
DRAWTEXT((LOW-MA(CLOSE,15))/MA(CLOSE,15)*100 <=-13  AND CLOSE/REF(CLOSE,1)>=0.95 ,LOW*0.99,'买' ),COLORF00FF0;
DRAWTEXT((HIGH-MA(CLOSE,15))/MA(CLOSE,15)*100 >=13 AND VOL/MA(VOL,3)>2 ,HIGH *1.01,'卖' ),COLORGREEN;
end;
if bk=0 then begin
//ST股票能运用以下公式:
DRAWTEXT((LOW-MA(CLOSE,15))/MA(CLOSE,15)*100 <=-8  AND CLOSE/REF(CLOSE,1)>=0.95 ,LOW*0.99,'买' ),COLORF00FF0;
DRAWTEXT((HIGH-MA(CLOSE,15))/MA(CLOSE,15)*100 >=8 AND VOL/MA(VOL,3)>2 ,HIGH *1.01,'卖' ),COLORGREEN;
end;

或者
bk:=if(STKINBLOCK(STKLABEL,'ST板块') or STKINBLOCK(STKLABEL,'*ST板块'),8,13);
MA1:MA(CLOSE,5);MA2:MA(CLOSE,10);MA3:MA(CLOSE,30);
DRAWTEXT((LOW-MA(CLOSE,15))/MA(CLOSE,15)*100 <=-bk  AND CLOSE/REF(CLOSE,1)>=0.95 ,LOW*0.99,'买' ),COLORF00FF0;
DRAWTEXT((HIGH-MA(CLOSE,15))/MA(CLOSE,15)*100 >=bk AND VOL/MA(VOL,3)>2 ,HIGH *1.01,'卖' ),COLORGREEN;



QUOTE:
746.问:
计算任意指定的两个日期内的最高价 high 是多少
    答(hx817):
REF(HIGH,BARSLAST(DATE=1040203));//取 2004.2.3的最高价格

    答(bajatje):
w1:=barslast(date<=M);
w2:=barslast(date<=N);
ref(hhv(h,m),n);//w1>W2

N=1040901
M=1040701



QUOTE:
747.问:
     描述求2003年度最高价的例子:
A:=HHV(H*(YEAR=2003),0); YH:A[DATACOUNT];
改写求2003年度最低价:
B:=LLV(L*(YEAR=2003),0);
YL:B[DATACOUNT];

输出是0,请问语句对吗?能修改吗
    答(股市骑兵00):  
试试:
N:=YEAR=2003;
A1:=BARSLAST(N);
A2:=BARSSINCE(N);
L1:=LLV(L,A2-A1+1);
LL:L1[DATACOUNT-A1[DATACOUNT]];



QUOTE:
748.问:
     “N周期内创新高的周期数”怎么写?
    答(股市骑兵00):
INPUT:n(20);
hh:=hhv(h,n);
sum(hh>ref(hh,1),n);



QUOTE:
749.问:
      想编一个(当日收K线收阳,且上穿日均线)的公式。
    答(hx817):
tj:ISUP=1 and cross(c,DYNAINFO(11));



QUOTE:
750.问:
1、求两个条件之间间隔天数用什么函数???
2、求某条件成立是对应的时间(年月日)的函数???

    答(hx817):
1、BARSLAST(tj1)-BARSLAST(tj2);
2、ref(date,BARSLAST(tj));

[ 本帖最后由 AHFYXL1 于 2005-11-28 15:17 编辑 ]




 附件: 您目前的身份是游客,无法下载或查看附件。立即注册,即可享受MACD所有免费服务。

来此 -- 学习和交友!
变色卡 提升卡 加粗卡
期货交易系统(内日交易)—蒋敏老师  
发表于 2005-9-14 11:09  只看该作者
《第十七楼》

目录索引:

待续.........


QUOTE:
751.问:
      某年某月某日收市价的公式怎样写?
     答(bajatje):
w:=barslast(date=日期);2004/10/26写成1041026
ref(c,w);



QUOTE:
752.问:
cc:=c;
barslast(c=cc[datacount]);
barslast(c=cc[datacount-1]);
barslast(c=cc[datacount-2]);
能给解释下面几句的含义吗?
[datacount]
[datacount-1]
[datacount-2]  

     答(hx817):
[datacount] 最后一天,倒数第一天
[datacount-1] 倒数第二天
[datacount-2] 倒数第三天



QUOTE:
753.问:
      历史最低点和历史次低点的连线

     答(南客):
      这样的定义?恐怕不符合趋势线的本意吧
fl:=low;
pl:=fl;
a:=SORTPOS(pl,0,1,datacount);
if pl[2]>pl[1] then
  LINEVALUE(barpos=pl[1],fl[pl[1]],barpos=pl[2],fl[pl[2]],0,0)
else
  LINEVALUE(barpos=pl[2],fl[pl[2]],barpos=pl[1],fl[pl[1]],0,0)



QUOTE:
754.问:
我想从F10搜索出易方达基金管理公司旗下的8只基金,04年第三季的所有持仓品种,公式怎么设计

     答(hx817):
{基于鹏搏资讯,因为F10资料经常变动,所以在变动后,需要对应调整}
{基金代码 184712 184713 500029 500056 110001 110002 110003 110005}
jjstar:=F10FIND('十一、基金持股',1);//定位数据开始
jjend:=F10FIND('截止日期:2004-06-30',jjstar);//定位数据结束

jjcg:=F10TEXT(jjstar,jjend-jjstar);//取最新基金持股数据
s1:=STRFIND(jjcg,'184712',1);s2:=STRFIND(jjcg,'184713',1);
s3:=STRFIND(jjcg,'500029',1);s4:=STRFIND(jjcg,'500056',1);
s5:=STRFIND(jjcg,'110001',1);s6:=STRFIND(jjcg,'110002',1);
s7:=STRFIND(jjcg,'110003',1);s8:=STRFIND(jjcg,'110005',1);
tj:s1 or s2 or s3 or s4 or s5 or s6 or s7 or s8;
(阿耀注:F10 资料必须及时更新)
    答(莫大):
是这样子的,还有4个重复代码161101、161102、161103、161104要设进去。这样范围扩大到65个,这基本差不多了。
顺便告诉你们一下,长出来的东西,正在强势的可以短线跟做。已经弱势并且行业受宏观调控引起估值紊乱的,应该剔除,剩下来的再按选股程序选择第三季是增仓的品种(怎么设这个我还没想明白,不过样本少,靠肉眼看看也可以了)。这些品种理论上,未来半年是一定有较大的利润,并且不套人的。
易方达现在是市场最强者,其选股思路及波段策略,远远走在其他机构之前。所以,研究其持仓股指数和持仓品种,比较容易把握市场步调。不过这段时间,基金人才也在流动,湘合及广发的部分基金也延续了强悍基金的风格,可以顺便列入研究。




QUOTE:
755.问:
      主图如何显示股票的发行日期?  

     答(南客):
n:=F10FIND('发行日期:',1)+10;
str1:=F10TEXT(n,10);
drawtext(islastbar,close,'发行日期:\n'+str1),align2;



QUOTE:
756.问:
HHV和LLV功能是从当前时间到一定的时间取得最高最低价,如今天是10月1日,
HHV(C,60)它是从今天到前60天内取得最高价,但是如果我需要从二天前开始取
60个交易日内取得最高价,应该如何实现呢?
     答(bajatje):
ref(hhv(h,60),2);



QUOTE:
757.问:
INPUT:X(600,1,3000)

VARIABLE:ARR[3000]=0;  //为什么日线少于3000 就会 超出有效数据区间?
HH:=H*100;
LL:=L*100;
for j=1 to datacount  do
  for I=LL TO HH  do
    ARR[I]:=ARR[I]+1;
a:arr[X]; // 为什么算出来的数值不对?

     答(hx817):
       计算什么?
从表达式来看,计算出的结果全部是1个值
    问:
那是算, 价x 在历史日线上出现过多少次
比如
x=631时, 6.31元历史出见多少次  
     答(hx817):
那么
  for I=LL TO HH  do
    ARR[I]:=ARR[I]+1;
这个循环做什么呢?

是否要改为

  for I=LL[j] TO HH[j]  do



QUOTE:
758.问:
      想请教一下你,
   ARR[X]  能不能不用循环 把 他所有的值每天* (1-v/ CAPITAL) ?
     比如 ARR[600] 第1天的值为1 , 第二的初值为 1*(1-v/ CAPITAL)
     答(hx817):
那开始时计算一个
fhs:=1*(1-v/ CAPITAL);
就可以得到每个的值了



QUOTE:
759.问:
      现在可以用基本函数来模仿 cost 和 WINNER 这两个函数,
但还是有点出入,应是和我的算法不同,
还有就是我编的公式可能用的循环太多,运算起来太慢了,
你希望能再指点一下,如何简化
其实我并不是想模仿cost 和WINNER 这两个函数,
飞狐里有WINNER pWINNER LWINNER
而 没有  Pcost Lcost
想求出  x 天内获利多少 就不行了
我主要的目的是想编  x 天内获利多少
1.请帮我优化下面的公式

INPUT:X(20,1,100);

VARIABLE:ARR[3000]=0;  
HH:=HIGH*100;
LL:=LOW*100;
VV:=VOL/(HH-LL);
co:=0*CLOSE; a:=0*CLOSE; 总量:=0*CLOSE; 当日量:=VOL; 换手率:=VOL/CAPITAL;

for j=1 to DATACOUNT do BEGIN
       总量[j]:=总量[j-1]*(1-换手率[j])+当日量[j]; //累计总成交 按当天换手衰减
      
       LLL:=LLV(LOW,j)*100;         //j点时的历史最低价
       HHH:=HHV(HIGH,j)*100;        //j点时的历史最高价
      
       for p=LLL[j] to HHH[j] do               
           ARR[p]:=ARR[p] *(1-换手率[j]);  //ARR数组每个变量 按当天换手衰减


       for I=LL[j] TO HH[j]  do  ARR[I]:=ARR[I]+VV[j]; //累加 ARR每个变量
   
       for K=lll[j] to HHH[j] do  BEGIN      
           co[j]:=co[j]+ARR[k];
           a[j]:=k;
           IF co[j]>总量[j]*x/100 then                  
                  BREAK;
  
            end;
    end ;

正:COST(x);
模仿 :a/100;  

2.模仿 WINNER 函数
VARIABLE:ARR[3000]=0;  
HH:=HIGH*100;
LL:=LOW*100;
VV:=VOL/(HH-LL);
co:=0*CLOSE; a:=0*CLOSE; 总量:=0*CLOSE; 当日量:=VOL; 换手率:=VOL/CAPITAL; 收:=c;
for j=1 to DATACOUNT do BEGIN
       总量[j]:=总量[j-1]*(1-换手率[j])+当日量[j]; //累计总成交 按当天换手衰减
      
       LLL:=LLV(LOW,j)*100;                      //j点时的历史最低价
       HHH:=HHV(HIGH,j)*100;                     //j点时的历史最高价
      
       for p=LLL[j] to HHH[j] do               
           ARR[p]:=ARR[p] *(1-换手率[j]);       //ARR数组每个变量 按当天换手衰减


       for I=LL[j] TO HH[j]  do  ARR[I]:=ARR[I]+VV[j]; //累加 ARR每个变量
   
       for K=lll[j] to 收[j]*100 do        
           co[j]:=co[j]+ARR[k];
              a[j]:=co[j]/总量[j]*100;
           
           
    end ;

正:WINNER(c)*100;
fan :a;  

3.这个公式是根据上面的来改动一下,就可以变化为 x天内获利盘多少了
INPUT:X(40,0,100),Y(50,0,100);
//X 是获利盘比例  Y 天数
A := X / 100; JL := LLV(L, Y);LL := 0;JH := HHV(H, Y);HH := 1;

for i=0 to 6 do BEGIN
Z := (JH * (A-LL) + JL * (HH-A))/(HH-LL);
W:= lWINNER(Y,Z);
JL := IF(W < A, Z, JL);
LL := IF(W < A, W, LL);
JH := IF(W > A, Z, JH);
HH := IF(W > A, W, HH);

end

模仿:z;

     答(hx817):
这不好再优化,因为这取决于算法



QUOTE:
760.问:
      描述:
网上有专门有追涨停的指标,但那个存在一定的值后性。
我的思路是当股票在盘中涨幅超过2%-3.5%左右是即发出信号等于10--20数值,
并且利用飞狐的预警功能实现时时提醒。怎么用飞狐的预警功能实现时时提醒
     答(bajatje):
w:=barslast(hour<ref(hour,1));
LL:=LLv(L,w);
(c/LL>1.02 and c/LL<1.035)*10;




QUOTE:
761.问:
      怎么过滤信号(笑脸)

MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
MA3:MA(CLOSE,20);
MA4:MA(CLOSE,30);
DRAWICON(ma1>ma2,ma2,1);
过滤信号(笑脸),只求第一个;

     答(hx817):
DRAWICON(ma1>ma2,ma2,1);
改为
DRAWICON(cross(ma1,ma2),ma2,1);  



QUOTE:
762.问:
      如何自动计算30日最高价格,递减0.382元,至低于30日最低价格之间的所有位置,
     答(yngs):
      30日最高价格
hhv(h,30);
递减0.382元
0.382*hhv(h,30);
"至低于30日最低价格之间的所有位置"不理解  



QUOTE:
763.问:
      期货持仓量现在飞狐提供的是柱状的图,我很不习惯.怎么能给它变成一根线的图?
原来的公式是:
OPENINT,VOLSTICK;

//MA1:MA(OPENINT,N1);
//MA2:MA(OPENINT,N2)

     答(hx817):
是的,将 ,VOLSTICK 去掉



QUOTE:
764.问:
      第一部分:实现2日平均价
fc:=close;
for i=2 to datacount do
ma2:(fc[i-1]+fc)/2;
这个容易实现
      第二部分:实现第2天到第5天的平均价;
fc:=close;
for i=i+1 to i=i+4 do
ma5:(fc[i+1]+fc[i+4])/4;
则不显示,错在哪里?

     答(hx817):
i 的循环范围不对
fc:=close;
for i=5 to datacount do begin
  //方法一,输出 ma2 为 5日平均值
  ma2:(fc[i-4]+fc[i-3]+fc[i-2]+fc[i-1]+fc)/5;

  //方法二,输出 ma3 为 5日平均值
  s:=0;
  for j=0 to 4 do s:=s+fc[i-j];//循环叠加 5 个 fc 值
  ma3:s/5;
  end;  

    问:
      我要求的是从第二根K线到第5根K线的平均值的,而不是从一开始,否则这个问题就简单了
     答(hx817):
一样的道理呀
fc:=c;
//方法一
(fc[2]+fc[3]+fc[4]+fc[5])/4;

//方法二
s:=0;
for j=1 to 4 do s:=s+fc[j+1];
ma3:s/4;  
    问:
五天问题好解决,
fc:=close;
for i=5 to datacount do begin
  //方法一,输出 ma2 为 5日平均值
  ma2:(fc[i-4]+fc[i-3]+fc[i-2]+fc[i-1]+fc)/5;
  end;
如果我的i要取50天的,那么后面的ma2不很麻烦
fc:=close;
for i=50 to datacount do begin
  ma2:(fc[i-49]+fc[i-48]+fc[i-47]......+fc[i-1]+fc)/49;
  end;
这时又应该如何写?
     答(hx817):
当然是 1 个值啦,你不是求 2-50 共 49个的平均值么?
fc:=close;
for i=50 to datacount do begin
  s:=0;
  for j=0 to 48 do s:=s+fc[i-j];//循环叠加 49 个 fc 值
  ma3:s/49;
  end;  
     问:
这样写是不是还是比较笨
fc:=close;
for i1=50 to datacount do begin
  s1:=0;
  for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 fc 值
  ma3[i1]:s1/49;
  end;

for i2=25 to datacount do begin
  s2:=0;
  for j2=5 to 25 do s2:=s2+fc[i2-j2];//循环叠加80 个 fc 值
  ma4[i2]:s2/19;
  end;
象一般ma(c,30); ma(c,40); ma(c,60); ma(c,90); 这样多方便?
     答(hx817):
这只是循环的一种运用
再试试,用参数来计算任意周期的平均
也就是你上面的2次循环(i1,i2),这样只需要调整参数即可计算不同的值  
    问:
我知道,你的意思是说通过上面的参数1-4这里来调整i1,i2,那个很简单的,我会,但是我的本意还不是这个,我的意思是说还是要通过循环嵌套来实现,这样的话公式就很精练了,否则按上面的我觉得还是重复运算很多的。
     答(hx817):
你可以用判断语句来让大的循环只运行一次,比如
fc:=close;
for i1=1 to datacount do begin
  if i1>=50 then begin
    s1:=0;
    for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 fc 值
    ma3[i1]:s1/49;
    end;
  if i1>=25 then begin
    s2:=0;
    for j2=5 to 25 do s2:=s2+fc[i1-j2];//循环叠加 19 个 fc 值
    ma4[i1]:s2/19;
    end;
  end;
    答(南客):
你在这里的代码,就已经有问题了,不符合求平均值(ma函数)的愿意,这些基本的代码要搞清楚,基础不扎实,接下去会越搞越乱。
1、代码的缩格要清楚,这样程序代码才层次分明。否则别说是初学者,就算我来看代码,也是头大。
2、里面的 j1 循环,还有 j2 循环,起点、终点对吗?  



QUOTE:
765.问:
{fv:=v;ma2:=0*c;
x:=SETLBOUND(ma2,2);
for i=datacount downto 2 do {i终点已经是2了,干吗还用SETLBOUND来控制呢?}
ma2:(fv[i-1]+fv)/2;
Fc:=close;}

{ll:=l;x:=ll[1];
For i=1 to datacount do
if x>=ll then   
x:ll;{用这种解法怎么出来是单值?把X变成序列变量怎么写?}
For i=2 to datacount do
LL[I]:MIN(LL[I],LL[I-1]);}

     答(hx817):
1、去掉 x:=SETLBOUND(ma2,2); 看看输出是什么结果就知道了
2、因为前面你定义了 x: 为单值  



QUOTE:
766.问:
      好象没有
if  then elseif这个函数吧,假如有,那么会更加简单的

     答(hx817):
       试试爬台阶
fc:=0*c;
for i=1 to DATACOUNT do begin
if i<25 then fc:=1 else if i<50 then fc:=2 else if i<100 then fc:=3 else fc:=4;;
end;
fc;
所属类别: 控制语句  参数数量: 0

IF条件语句
语法:IF cond THEN expr1 ELSE expr2
当满足 cond 条件的时候,执行语句 expr1,否则执行 expr2 语句



QUOTE:
767.问:
      数组下标越界或者超过指数区间?错在哪里?
fc:=(H+L)/2;
for i=1 to datacount do begin
    s:=0;
    for j=2 to 25 do   fc:=s+fc[i-j];
    if i<25 then
       ma1:=fc/2;
else
    if i<50  then
       ma2:=fc/5;
else
    if i<80 then
       ma3:=fc/8;
else
      ma4:=fc/10;
end;
ma4;

     答(南客):
       这里,出错在 fc[i-j],想想看,i=1的时候,i-j 有可能等于什么值?
你的这段代码,已经在用 else if 这样的嵌套了,我稍加缩格排版后,就是这样了:
fc:=(H+L)/2;
for i=1 to datacount do begin
    s:=0;
    for j=2 to 25 do fc:=s+fc[i-j];
    if i<25 then
       ma1:=fc/2;
    else if i<50  then
       ma2:=fc/5;
    else if i<80 then
       ma3:=fc/8;
    else
      ma4:=fc/10;
end;
ma4;  



QUOTE:
768.问:
      循环、判断等控制语句作个类似薛师通道

     答(老实和尚):
fc:=c;
for i1=13 to datacount do begin
  s1:=0;
  for j1=2 to 13 do s1:=s1+fc[i1-j1];//循环取得第2根K线到第13根K线的值
  ma1[i1]:s1/10.8;
  end;

for i2=25 to datacount do begin
  s2:=0;
  for j2=12 to 25 do s2:=s2+fc[i2-j2];//循环取得第12根K线到第25根K线的值
  ma2[i2]:s2/15.2;
  end;
  
for i3=58 to datacount do begin
  s3:=0;
  for j3=35 to 58 do s3:=s3+fc[i3-j3];//循环取得第35根K线到第58根K线的值
  ma3[i3]:s3/24;
  end;  



QUOTE:
769.问:
       fm:ma(c,50),为什么起始下标不是从1开始,而是从5开始?
我想知道K线图上倒数第2根K线对应的5日均价怎么写公式代码

     答(lhl311):
fm:ma(c,50),第50天才有,当然第50天才开始 ;
fm:ma(c,5),第5天才有;当然第5天才开始 因为MA5:=(第1天收盘假+第2天收盘假+第3天收盘假+第4天收盘假+第5天收盘假)/5;
  



QUOTE:
770.问:
      主图有解盘、副图有解盘,“一个不能少”,但是太多了,显示不下,
后面的因吃在屏幕下方而看不到。解盘的显示框能否分屏显示(PAGE-UP 、PAGE-DOWN)?

     答(hx817):
       目前不行
可拖动左右的显示宽度查看





QUOTE:
771.问:
      飞狐有个大手笔之差选股条件,就是100手以上主动买之和减100手以上主动卖之和,
我想把它变成副图指标,用柱状表示,正值在0轴之上红色,负值在0轴之下蓝色,如果可以的话,
k线是阴(阳),大手笔差是正(负),柱状用白色.

     答(kjyhao):
       你说的公式是可以的,但重要的是要用到"分笔数据",这就要:
一;保持有足够的"分笔数据",以保证数据的准确性;(这是比较麻烦的事);
二;建立扩展数据库,以保存数据被随时调用;
以上两个条件满足了,就可做你说的公式了;  



QUOTE:
772.问:
      想编一个解盘指标,具体的想法是根据每天开盘后半小时的高低点做黄金分割
比如说今天开盘后30分钟的最高价为10.5元,30分钟的最低价为10元。在解盘里面显示10--》10.5的黄金分割的点位
阻力位的计算公式为:开盘30分钟低点+[(开盘30分钟高点-开盘30分钟低点)×{0.328或0.333、0.5、0.618或0.666}]      
支撑位计算公式为:开盘30分钟高点-[(开盘30分钟高点-开盘30分钟低点)×{0.328或0.333、0.5、0.618或0.666}]

     答(hx817):
       参考
公式取数据周期当日第一个K线值为计算,切换不同数据周期,结果不同,按照前面思路,切换为30分钟线即可}
aa:=BARSLAST(DAY<>REF(DAY,1));
hh:=REF(HIGH,aa);ll:=REF(LOW,aa);
阻力1:ll+(hh-ll)*0.328;阻力2:ll+(hh-ll)*0.5;阻力3:ll+(hh-ll)*0.618;
支撑1:hh-(hh-ll)*0.328;支撑2:hh-(hh-ll)*0.5;支撑3:hh-(hh-ll)*0.618;
EXPLAINEX(1,'阻力位价一:',阻力1,3,0),COLORGREEN;
EXPLAINEX(1,'阻力位价二:',阻力2,3,0),COLORGREEN;
EXPLAINEX(1,'阻力位价三:',阻力3,3,1),COLORGREEN;
EXPLAINEX(1,'支撑位价一:',支撑1,3,0),COLORRED;
EXPLAINEX(1,'支撑位价二:',支撑2,3,0),COLORRED;
EXPLAINEX(1,'支撑位价三:',支撑3,3,0),COLORRED;  



QUOTE:
773.问:
      能把dll的代码发给我学习一下吗
     答(股市骑兵00):
这是一段其他朋友帮我写的,他说是用我公式思路改的,速度也慢的,我也看不懂给你参考了

__declspec(dllexport) int WINAPI TEST(CALCINFO* pData) {   if(pData->m_pfParam1 &&     pData->m_nParam1Start<0 &&     pData->m_pfParam2==NULL && pData->m_dataType==2)     {       #define w3(i) pData->m_pDataEx.m_fSellPrice[2]       #define w2(i) pData->m_pDataEx.m_fSellPrice[1]       #define w1(i) pData->m_pDataEx.m_fSellPrice[0]       #define w3v(i) pData->m_pDataEx.m_fSellVol[2]       #define w2v(i) pData->m_pDataEx.m_fSellVol[1]       #define w1v(i) pData->m_pDataEx.m_fSellVol[0]       #define m3(i) pData->m_pDataEx.m_fBuyPrice[2]       #define m2(i) pData->m_pDataEx.m_fBuyPrice[1]       #define m1(i) pData->m_pDataEx.m_fBuyPrice[0]       #define m3v(i) pData->m_pDataEx.m_fBuyVol[2]       #define m2v(i) pData->m_pDataEx.m_fBuyVol[1]       #define m1v(i) pData->m_pDataEx.m_fBuyVol[0]        float hwv[pData->m_nNumData];       float hmv[pData->m_nNumData];       float zdz[pData->m_nNumData],zxz[pData->m_nNumData];       int i,j,k;       int nParam1,nParam2;       int nLast =pData->m_nNumData-1;       nParam1 = (int)(*pData->m_pfParam1);       nParam2 = (int)(*pData->m_pfParam2);       if(nParam2>nLast) nParam2=nLast;        for(i=0; i<=nLast; i++)       {         zdz=0;         zxz=9999999;         if(zdz<w1(i)) zdz=w1(i);         if(zdz<w2(i)) zdz=w2(i);         if(zdz<w3(i)) zdz=w3(i);         if(zdz<m1(i)) zdz=m1(i);         if(zdz<m2(i)) zdz=m2(i);         if(zdz<m3(i)) zdz=m3(i);          if(zxz>w1(i) && w1(i)) zxz=w1(i);         if(zxz>w2(i) && w2(i)) zxz=w2(i);         if(zxz>w3(i) && w3(i)) zxz=w3(i);         if(zxz>m1(i) && m1(i)) zxz=m1(i);         if(zxz>m2(i) && m2(i)) zxz=m2(i);         if(zxz>m3(i) && m3(i)) zxz=m3(i);         zdz+=0.004;         zxz-=0.004;         hwv=0;         hmv=0;          if(i<=nParam2)         {           if(nParam1==1)           {             for(j=i-1; j>=0; j--)             {               if(w1(j)>zdz)               {  hwv+=w1v(j);                 for(k=i; k>j; j--)                 {  if(w1(j)<zdz[k])                   {  hwv-=w1v(j);                     break;}}}               if(w2(j)>zdz)               {  hwv+=w2v(j);                 for(k=i; k>j; j--)                 {  if(w2(j)<zdz[k])                   {  hwv-=w2v(j);                     break;}}}               if(w3(j)>zdz)               {  hwv+=w3v(j);                 for(k=i; k>j; j--)                 {  if(w3(j)<zdz[k])                   {  hwv-=w3v(j);                     break;}}}             }           }else           {               for(j=i-1; j>=0; j--)             {               if(m1(j)<zxz)               {  hmv+=m1v(j);                 for(k=i; k>j; j--)                 {  if(m1(j)>zxz[k])                   {  hmv-=m1v(j);                     break;}}}               if(m2(j)<zxz)               {  hmv+=m2v(j);                 for(k=i; k>j; j--)                 {  if(m2(j)>zxz[k])                   {  hmv-=m2v(j);                     break;}}}               if(m3(j)<zxz)               {  hmv+=m3v(j);                 for(k=i; k>j; j--)                 {  if(m3(j)>zxz[k])                   {  hmv-=m3v(j);                     break;}}}             }           }         }         hwv+=w1v(i)+w2v(i)+w3v(i);         hmv+=m1v(i)+m2v(i)+m3v(i);          if(nParam1==0)           *(pData->m_pResultBuf+i)=*(hmv+i);         else pData->m_pResultBuf=*(hwv+i);       }       return 0;   }   return -1; }




QUOTE:
774.问:
     我看到这样一原码公式。我用了一段时间以后发现很有特点。它解盘中的百分比很有提示作用。
我想搞一个区间统计,但没有办法选出各类区间的股票。如选出区间为40%-45%的。
不知道有没有办法实现。你能帮忙看看吗
m1:=ma(c,5);
p1:ln(m1+1/m1);
pp:hhv(p1,0);
qq:llv(p1,0);
qq1:qq+(pp-qq)*n1;
qq2:qq+(pp-qq)*n2;
qq3:qq+(pp-qq)*n3;
pp1:qq+(pp-qq)*n4;
pp2:qq+(pp-qq)*n5;

ba1:= p1=qq;
ba2:=100*count(c>ref(c,3) and ba1,0)/count(ba1,0);
explainex(ba1,'p1在这个区间三天后上涨的几率为:百分之',ba2,1,4);
ba11:= p1>qq and p1<qq1;
ba21:=100*count(c>ref(c,3) and ba11,0)/count(ba11,0);
explainex(ba11,'p1在这个区间三天后上涨的几率为:百分之',ba21,1,4);
ba111:= p1>qq1 and p1<qq2;
ba211:=100*count(c>ref(c,3) and ba111,0)/count(ba111,0);
explainex(ba111,'p1在这个区间三天后上涨的几率为:百分之',ba211,1,4);
ba1111:= p1>qq2 and p1<qq3;
ba2111:=100*count(c>ref(c,3) and ba1111,0)/count(ba1111,0);
explainex(ba1111,'p1在这个区间三天后上涨的几率为:百分之',ba2111,1,4);
ba11111:= p1>qq3 and p1<pp1;
ba21111:=100*count(c>ref(c,3) and ba11111,0)/count(ba11111,0);
explainex(ba11111,'p1在这个区间三天后上涨的几率为:百分之',ba21111,1,4);
ba11112:= p1>pp1 and p1<pp2;
ba21112:=100*count(c>ref(c,3) and ba11112,0)/count(ba11112,0);
explainex(ba11112,'p1在这个区间三天后上涨的几率为:百分之',ba21112,1,4);
ba11113:= p1>pp2 and p1<pp;
ba21113:=100*count(c>ref(c,3) and ba11113,0)/count(ba11113,0);
explainex(ba11113,'p1在这个区间三天后上涨的几率为:百分之',ba21113,1,4);
ba11114:=  p1=pp;
ba21114:=100*count(c>ref(c,3) and ba11114,0)/count(ba11114,0);
explainex(ba11114,'p1在这个区间三天后上涨的几率为:百分之',ba21114,1,4);

参数:
N1:0.172
N2:0.383
N3:0.5
N4:0.618
N5:0.7

     答(hx817):
根据 ba*** 来选股  



QUOTE:
775.问:
       macd和价格的的底背离选股公式怎么作啊
     答(yngs):
A:=BARSLAST(ref(cross("macd.diff","macd.dea"),1));
B:=ref(c,A+1)>c and ref("macd.diff",A+1)<"macd.diff" and cross("macd.diff","macd.dea");
MACD底背离:FILTER(B>0,5);  



QUOTE:
776.问:
sin(x);cos(x);tan(x);asin(x);acos(x);atan(x);
这些函数没有示例,请给个简单的示例;学习一下

     答(hx817):
数学标准函数,高中数学  

第四章 三角函数 一、角的概念的推广
一、目的要求
1.理解任意角的概念。
2.学会建立直角坐标系讨论任意角,判断象限角,掌握终边相同角的集合的书写。
二、内容分析
1.初中阶段角的范围的研究仅局限于0度到360度的角,本节将在此基础上把角的概念扩展到任意角,有正角、负角及零角之分。这在数学认识上是一个飞跃。
实际上正与负是相对的,而零则介于它们之间。以实数轴为例,原点为零,原点向左数的数是负数,而原点向右数的数是正数。一般地,负数所表示的代数意义或几何意义与正数所表示的代数意义或几何意义恰好相反,因此在本节教学中,可以运用与上相似的对比法,讲解正角、负角以及零角的定义,并指出它们在日常生产、生活中的实际几何意义,有助于加深对正角、负角以及零角的理解。
2.象限角是本节的重要概念之一,关于象限的划分在初中已学习过,在这里有必要再强调一下。研究象限角的关键是平面直角坐标系的建立方法——角的顶点与坐标原点重合,角的始边与X轴的非负半轴重合,不能说成是与x轴的正半轴重合,不能说成是与x轴的正半轴重合,因为正半轴不包括原点,就不完全包括角的始边,角的始边是以角的顶点为其端点的射线。
3.终边相同角的集合的书写是本节的难点,也是学好三角函数这一章最主要的基本技能。为了更好地掌握它,更深刻地理解它,可以从“数”到“形”或“形”到“数”两个方面去研究。

①从“形”到“数”的研究:
按逆时针方向角α终边转一周与角α原终边重合,此时角β=α+360度;按顺时针方向角α终边转一周与角α原终边重合,此时角β=α-360度;如此类推,有角β=α+k·360度(k∈Z)。
②从“数”到“形”的研究:
当k=1时,角β=α+360度,表示角α的终边按逆时针方向转一周与原角α终边重合,其角的度数增大;当k=-1时,角β=α-360度,表示角α的终边按顺时针方向转一周与原角α终边重合,其角的度数减小。在角β=α+k·360度(k∈Z)中,当k>0,表示角α终边按逆时针旋转;当k<0,表示角α终边按顺时针旋转。
4.终边相同角的集合的书写,应当包括两种基本情况:
①象限角;
②非象限角,也就是终边落在x轴和y轴上的角,其详细研究写在下课时。
三、教学过程
1、提出问题
(为了更好地表现如下问题,有条件的学校可以使用多媒体辅助教学,让角β集合实际化、形象化。)
①初中所学角的范围。
②花样游泳中,运动员旋转的周数如何用角度计算来表示?
③汽车在前进和倒车中,车轮转动的角度如何表示才比较合理?
④工人师傅在拧紧或拧松螺丝时,转动的角度如何表示比较合适?
2.组织讨论,发表己见,得出角的概念的推广等有关概念
在这里把正角与汽车前进、螺丝拧紧等相联系;负角与汽车倒车,螺丝拧松等相联系;零角与汽车静止、螺丝不动等相联系,还可让学生举出更多日常生活中的实际例子。
3.象限角的产生
(可采用多媒体辅助教学)
①复习提问直角坐标系中的象限是如何划分?
②按规定,使角的顶点与直角坐标系原点重合,角的始边与x轴的非负半轴重合,那么角的终边落在第几象限,就叫做第几象限角。
③可问:当角的终边不落在象限内,这样的角叫做什么角?
4.终边相同角的集合的书写
遵守由特殊到一般的思维规律,让学生观察、联想,得出规律后,归纳集合书写,
①用多媒体投影(应具有动感)课本图4—3(l)中与30度终边相同的角。
Ⅰ.投影表示按逆时针方向旋转一周,得出k=1时,有390度=30度+360度。
Ⅱ.投影表示按顺时针方向旋转一周,得出k=-l时,有-330度=30度-360度。
②用多媒体再现k=±2,k=±3…时的角的大小,得出集合,30度+k·360度,k∈Z。
③把30度换成α,得出终边相同角的集合。
S={β|β=α+k·360度(k∈Z)}  



QUOTE:
777.问:
每月第N个交易日
     答(南客):
参考如下:
tj:=month<>ref(month,1);
ts:barslast(tj)+1;  



QUOTE:
778.问:
      不知每一周的第几天如何编写?
     答(hx817):
tj:=WEEKDAY<ref(WEEKDAY,1);
ts:barslast(tj)+1;
    答(南客):
停牌时间久的话,的确有可能会出错
我上面的代码要准确的话,修正如下:
tmp:=intpart(date/100);
tj:=tmp<>ref(tmp,1);
ts:barslast(tmp);
“每一周的第几天如何编写?”
参考如下:
tj:=weekday-ref(weekday,1)<>DATEDIFF(ref(date,1),date);
ts:barslast(tj)+1;  



QUOTE:
779.问:
那我刚帮朋友写了个,真实月均线变化(不含未来数据)那也错啦!
我改到飞狐里改不好,请二位老师有空看看!
分析家我会源码:
FXJ日线图任意月均线真实变化}
INPUT:N(3);{均线月数调节}
xx:=MONTH<>ref(MONTH,1);a:=0;
yy:=sum(xx,0)-n+1;yy1:=sum(xx,0);
for i=1 to BARPOS-1 do
if ref(yy1,i)=yy then begin
a:=i;
break;
end;
if n-2<yy1 then
月均线:if(a=0,(sum(xx*ref(c,1),a)+c)/n,(sum(xx*ref(c,1),a+1)+c)/n);

飞狐改了不对源码:
{日线图任意月均线真实变化}
INPUT:N(3);{均线月数调节}
xx:=MONTH<>ref(MONTH,1);a:=0*c;
yy:=sum(xx,0)-n+1;yy1:=sum(xx,0);
for j=2 to DATACOUNT do
for i=j-1 downto 1 do
if yy1=yy[j] then begin
a[j]:j-i;
break;
end;

//if n-2<yy1 then//这里不算,上面越界!
//月均线:if(a=0,(sum(xx*ref(c,1),a)+c)/n,(sum(xx*ref(c,1),a+1)+c)/n);

     答(南客):
MONTH<>ref(MONTH,1);
这行语句,在特殊情况下会判断出错,比如某股,去年6月2日开始停牌,今年6月2日(或今年6月的某天)开始复牌
这类问题,可以不用循环,参考sumbars()函数的用法。  
if yy1=yy[j] then
这行语句,你推敲一下,循环的时候,最小 i 等于多少?假如 i 最小的时候是i=1,那么yy1[1]是否可以?为什么?
前面你实际上已经考虑到了 j 应该从2开始循环,但忘了还要考虑 j 的起始循环位置。
当 J=1 时,I=>J-1=>1,这时,yy1[I]就是yy1[1],而yy1这个序列变量(数组)的有效起始位置是从第2根K线开始的。
你上面循环代码中的 a ,大概是这样的吧:
a:=sumbars(xx,n-1);
(阿耀用骑兵话代注:lbound()函数,前几天看您在创幻答题用过的,我没想到YY1[1]不存在的。
飞狐公式写法要求严谨功能强,分析家要求马虎功能也弱。
平时马虎贯了,到了飞狐里就出错了 )



QUOTE:
780.问:
      我这个公式怎么不过关啊?
QQ:=IF((REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))-(ASKVOL(1)+ASKVOL(2)+ASKVOL(3))>=0,(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))-(ASKVOL(1)+ASKVOL(2)+ASKVOL(3)),0);
AA:=IF((REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))-(ASKVOL(1)+ASKVOL(2)+ASKVOL(3))<=0,close,0);
new:SUM(QQ+AA),0);
     答(hx817):
new:SUM(QQ+AA,0);


--------------------------------------------------------------------------------




QUOTE:
781.问:
求得一个数据

我要求得一个数据,   X=(REF(X,1)+C)/2;
假定某一支股票,从它上市第一天开始计算。
因为第一天没有REF(X,1),用X=(C+O)/2来替代。

假定第一天C=10,O=8,则第一天的X=(10+8)/2=9,
第二天C=12,X=(REF(X,1)+C)/2=(9+12)/2=10.5,
第三天C=14,X=(REF(X,1)+C)/2=(10.5+14)/2=12.25,
第四天C=16,X=(REF(X,1)+C)/2=(12.25+16)/2=14.125,
以后以此類推。

实际上就是用X来替代O,(因为第一天没有REF(X,1),则O=X)请教如何把数据转换过来,我对控制语句函数实在是一窍不通。
     答(hx817):
表达式有了,直接用 x 替换 o 来画 K 线
x:if(BARPOS=1,(C+O)/2,(REF(X,1)+C)/2);
    问:
我是想编写一个操盘线的指标,计算的方式如上所述
因为第一天的X是从(C+O)/2而来的,所以REF(X,1)就是上一天的(C+O)/2,画操盘线的规则是,第一天只能从C----O处画线,第二天从第一天的X----C处画线,第三天开始从第二天的(X+C)/2----C处画线,以后以此類推
     答(hx817):
fc:=CLOSE;fo:=OPEN;
for i=1 to DATACOUNT do begin
  if i=1 then x:=(fc+fo)/2;
  if i>1 then x:=(x[i-1]+fc)/2;
end;
x;  



QUOTE:
782.问:
能否把您的源码仔细地解释一下
fc:=CLOSE;fo:=OPEN;
for i=1 to DATACOUNT do begin
  if i=1 then x:=(fc+fo)/2;
  if i>1 then x:=(x[i-1]+fc)/2;
end;
x;

     答(hx817):
fc:=CLOSE;//收盘价赋值给 fc ,为数组准备
fo:=OPEN;//同上
for i=1 to DATACOUNT do begin //循环从 1 到最后一个 K 线
  if i=1 then x:=(fc+fo)/2; //判断是否第一根 K 线,如果是,处理第一个数据,即 x[1]=(fc[1]+fo[1])/2=第一个收盘价+开票价除2
  if i>1 then x:=(x[i-1]+fc)/2;//除了第一根 K 线以后的算法
end;
x;//所有数据计算后在 x 的数组,就是 x 的序列变量  



QUOTE:
783.问:
      请教,[i-1]中的-1是表示什么意思?(是减去第一根K线吗?)
     答(hx817):
当 i=2 时
if i>1 then x:=(x[i-1]+fc)/2;
就是 x[2]=(x(1)+fc[2])/2
i-1 就是取前一个数据  



QUOTE:
784.问:
      申明250天线不存在,怎么编写
     答(股市骑兵00):
不知这样可以吗?
BARPOS<250;  



QUOTE:
785.问:
      能否将每天的分时均价编成曰k线的形式连接起来
     答(bajatje):
分时相当于1分钟。。。
要分两步
1、建名为 fj 的公式
w:=barslast(hour<ref(hour,1));
jc:sum(amount,w)/sum(v,w)/100;
jo:ref(amount,w)/ref(v,w)/100;
jh:hhv(jc,w);
jL:LLv(jc,w);
2、另建公式
jc:=STKINDI('','fj.jc',0,1);
jo:=STKINDI('','fj.jo',0,1);
jh:=STKINDI('','fj.jh',0,1);
jL:=STKINDI('','fj.jL',0,1);
STICKLINE(jc>jo or (jc=jo and jc>ref(jc,1),jh,jL,0.1,0),colorred;
STICKLINE(jc>jo or (jc=jo and jc>ref(jc,1),jo,jc,6,0),colorred;
STICKLINE(jc<jo or (jc=jo and jc<ref(jc,1),jh,jL,0.1,0),colorcyan;
STICKLINE(jc<jo or (jc=jo and jc<ref(jc,1),jo,jc,6,0),colorcyan;  



QUOTE:
786.问:
我想将如图中的分时均价线编制成日k线形态,因为一天中的均价有开盘.最高.最低.收盘。将图中绿色均天变成分析中的曰k线。
     答(bajatje):
均价K线需要有足够的1分钟数据(天数)
K线.ALG  



QUOTE:
787.问:
      我想对当天和昨天的量进行提取处理(只要后2位)
我编的语句电脑不认 请帮忙编一下 最好把头一天的量也能进行处理
     答(kjyhao):
       改了一下,通过了;但你的思路我不太清楚
a:=FRACPART(DYNAINFO(47)/100)*100;
B:=FRACPART(DYNAINFO(33)/100)*100;
a1:=(A-FLOOR(A))*10;
A2:FLOOR(a);
B1:=(B-FLOOR(B))*10;
b2:FLOOR(B1);



QUOTE:
788.问:
1.请帮忙分别写出分时图上的均价线上方和下方的成交量公式,要求能在日线显示。
2.某条均线今天处于向下(下跌)例如30均线吧。股价上涨几天使均线走平或向上,这个公式怎样写。

     答(清扬):
1、
先建立一个公式,比如是TEST2,公式内容为:
A:=OPENMINUTES(TIME);
B:=SUM(V*C,A)/SUM(V,A);
JX:=IF(B=0,C,B),COLORYELLOW;
D:SUM((C>JX)*V,A); //均线上方成交量
E:SUM((C<JX)*V,A); //均线下方成交量。
//两者相加未必是全天的成交量,因为没有考虑相等的情况。

以上公式是被引用的,可在一分钟K线中观察输出。
然后建立公式:
A:=STKINDI(STKLABEL,'TEST2.D',0,1);
B:=STKINDI(STKLABEL,'TEST2.E',0,1);
均线上方成交量:A,LINETHICK0;
均线下方成交量:B,LINETHICK0;
STICKLINE(A>0,0,A,3,0),COLORRED;
STICKLINE(B>0,0,-B,3,0),COLORCYAN;
//在日K线中显示。
这样一分钟K线保存了几天,就显示几天。如果想显示多天,也可以用第一个公式来建立扩展数据,每天保存,第二个公式就要作相应修改。
2、
均线走平或向上:
A:=MA(C,30);
A>=REF(A,1);
至于前面拐头在前几天等情况,要视具体而定。



QUOTE:
789.问:
怎样在以下公式内加入可条件选股的内容(或改写成可以预警的指标公式)。
要求:1 当股价上穿XX时发出买入信号。
      2 当股价下穿YY时发出买出信号。                                                      {Pivot Point Channe , PPC , 基准点信道}
XA:=REF(H, 1)>H and REF(H , 1)>REF(H , 2) ;
XB:=REF(H , 1)>H and REF(H , 1)=REF(H , 2) and REF(H , 2)>REF(H , 3) ;
XC:=REF(H , 1)=H and REF(H , 1)<REF(H , 2) ;
X:=XA+XB+XC ;
XR:=BARSLAST(X),LINETHICK0;
XS:=REF(High,1);
XT:=REF(XS,XR);
XX:REFX(XT,1); {峰位}
YA:=REF(L , 1)<L and REF(L , 1)<REF(L , 2) ;
YB:=REF(L , 1)<L and REF(L , 1)=REF(L , 2) and REF(L , 2)<REF(L , 3);
YC:=REF(L , 1)=L and REF(L , 1)<REF(L , 2) ;
Y:=YA+YB+YC;
YR:=BARSLAST(Y),LINETHICK0;
YS:=REF(Low,1);
YT:=REF(YS,YR);
YY:REFX(YT,1); {谷位}

GG:=" kkk20.情況A " ;
HH:=" kkk20.情況B " ;
X:=BarsLast( HH>=2 ) ;
Y:=BarsLast( GG>=1 ) ;
SG:=IF( GG>=1 , SUM( GG , X ) , 0 ) ;
SH:=IF( HH>=2 , SUM( HH , Y ) , 0 ) ;
DRAWICON(sg=1,l,4);
DRAWICON(sh=2,h,5);

     答(hx817):
别名: 交叉函数
所属类别: 逻辑函数  参数数量: 2

两条线交叉。
用法:
CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0
例如:
CROSS(MA(CLOSE,10),MA(CLOSE,20))表示10日均线与20日均线交金叉

1 当股价上穿XX时发出买入信号。CROSS(CLOSE,XX)
2 当股价下穿YY时发出买出信号。CROSS(YY,CLOSE)  



QUOTE:
790.问:
      能涨多少公式 ?
     答(pengyou):
Var1:=ABS(l-REF(CLOSE,P1));
Var2:=MA(VOL,P1)/capital;
Var3:=Var1/CLOSE*10;
Var4:=Var3/Var2;
Var5:=ABS(l-REF(CLOSE,P1+P2));
Var6:=Var5/CLOSE*10;
Var7:=Var6/Var2;
L1: Var7*Var4*10;
L2: EMA(L1,10)*1.5;  





QUOTE:
791.问:
该公式为何不能输出股票代码(作文件名),输出的文件名为当天日期
使用版本:3。0。40208试用版
源码:  
var1:=c;//成交价
var2:=vol;//成交量
var3:=ISBUYORDER;//是否主动性买单
var4:=STRTONUM(STKLABEL);//ZQDMNUM;
var5:=date;
var6:=time;
<%
v1=FFL.VarData("var1")
v2=FFL.VarData("var2")
v3=FFL.VarData("var3")
vCode=FFL.VarData("var4")
v5=FFL.VarData("var5")
v6=FFL.VarData("var6")
dim fso,txtf
filename="e:\data\" & cstr(vCode(1)) & ".txt"
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(FileName) then
  iomode=8
  create=False
  Set txtf=fso.OpenTextFile(FileName,iomode,create)
else
  iomode=2
  create=True
  Set txtf=fso.OpenTextFile(FileName,iomode,create)
end if
for i=0 to ubound(v1)
  s=cstr(date) & " " & cstr(v5(i)) & " " & cstr(v1(i)) & " " & cstr(v2(i)) & " " & cstr(v3(i))
  txtf.WriteLine(s)
  s=""
next
txtf.close
%>
var4:1

    答(南客):
试试:
var1:c;//成交价
var2:=vol;//成交量
var3:=ISBUYORDER;//是否主动性买单
var4:=STKLABEL;//ZQDMNUM;
var5:=date;
var6:=time;
<%
v1=FFL.VarData("var1")
v2=FFL.VarData("var2")
v3=FFL.VarData("var3")
vCode=FFL.VarData("var4")
v5=FFL.VarData("var5")
v6=FFL.VarData("var6")
dim fso,txtf
filename="e:\data\" & vCode & ".txt"
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(FileName) then
  iomode=8
  create=False
  Set txtf=fso.OpenTextFile(FileName,iomode,create)
else
  iomode=2
  create=True
  Set txtf=fso.OpenTextFile(FileName,iomode,create)
end if
for i=0 to ubound(v1)
  s=cstr(date) & " " & cstr(v5(i)) & " " & cstr(v1(i)) & " " & cstr(v2(i)) & " " & cstr(v3(i))
  txtf.WriteLine(s)
  s=""
next
txtf.close
%>




QUOTE:
792.问:
我想在主图背面上下的条形色块如图,怎么搞?
    答(kjyhao):
试试这个,条件可根据自己的要求定,
xma1:=MA(C,5);xma2:=MA(C,10);//以均线为条件;
xtj1:=CROSS(xma1,xma2) or xma1>xma2;
xtj2:=CROSS(xma2,xma1) or xma1<xma2;
FILLRGN(xtj1,SYSPARAM(5),SYSPARAM(4)),ColorDB3FCA;
FILLRGN(xtj2,SYSPARAM(5),SYSPARAM(4)),Color528608;
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);



QUOTE:
793.问:
请你看看以下一段文字,能不能按它的意思做一个指标
%B 布林极限
--判断原则
  是由布林线所衍生出来的指标,主要的作用在于辅助布林线辨别买卖点的真伪。
%BB的计算方法和随机指标类似。但是,随机指标波动于0~100之间,而%BB指标可以大于100,也可以小于0。
(1)%BB>100时,代表股价超越布林线上限。
(2)%BB<0时,代表股价超越布林线下限。
(3)股价一顶比一顶高,而%BB一顶比一顶低时,暗示股价将反转下跌。
(4)股价一底比一底低,而%BB一底比一底高时,暗示股价将反转上涨。

    答(kjyhao):
是否象下面这个制标!振荡指标的波动区间;它的原理是由布林线所衍生出来的;但不是布林线;
看看是不是这个:
CY%BB优化布林极限指标

指标原理:

CY%BB指标是把短线波动放大,并通过指数平滑移动平均产生买卖信号,特别适合捕捉盘整行情中高抛低吸的机会。
形态特点:
一、CY%BB指标共有5条横坐标线,中间的一条为0线,在±1倍(±100)标准差和±1.7倍(±170)标准差的位置各有一条横坐标线,±1倍线相当于KD指标的20和80,±1.7倍线相当于KD指标的0和100;
二、CY%BB指标还有两条走势线,一条是黄色线,另一条是白色线;
三、CY%BB指标值约70%的时间运行在±100之间,约95%的时间运行在±170之间,超过±170标准差的机会少于5%。
主要作用:
一、捕捉盘整行情中高抛低吸的机会;
二、突破行情中防止在庄家震仓、整理时提前下车。
使用要领:
一、在盘整行情中CY%BB指标黄线达-100以下,并上穿CY%BB指标白线形成金叉时买入;
二、CY%BB指标黄线达+100以上,并下穿CY%BB指标白线形成死叉时卖出;
三、突破行情中CY%BB指标黄线可以在较长时间内保持在+100以上运行,此时应持股,等其下穿+100线时再卖出。
代码:  
input:n(20,1,60);
A:=MA(C,N);
布林极限:100*(c-a)/std(C,n);
布林K值:EMA(布林极限,3);
100,POINTDOT;
-100,POINTDOT;
170,POINTDOT;
-170,POINTDOT;



QUOTE:
794.问:
前期高点,一般股票在上升时,总有一个突破前期高点的问题,我的想法是能不能做一个类似移动黄金线的指标,就是当我启动光标时,指向今日股价时,这样相对着的前期高点就会显出一条线,只是这个高点最少也得在今日股价的5%以上,或者就是前面的M头一类的高点,你看可以吗?或者就在股价的颈线位处表达出来,
我之所以这样想,就是看股价能不能涨,如果能加上量的变化,分辩出真突破和假突破就更好了.

    答(kjyhao):
试试;
V1:=sysparam(4);//启动光标,图可见区间最高点;
qh:v1,colorred;

把它放在任何主图公式后面既可,前期高点线就只在光标出现时有!!!
A:=BARSCOUNT(C);
A1:=A=SYSPARAM(2);
A2:=A=SYSPARAM(1);
A3:=IF(c>0,A2,A1);
B:=BARSLAST(A3);
v1:=hhv(h,b);
qh:v1,colorred;



QUOTE:
795.问:
求教:如何求某月指定交易日的数据,不是日历日
即某月第一或第三个交易日的数据,而不是一月一日,一月三日的数据

    答(hx817):
先建立一个引用的公式 OHLC
fc:c;

再建立新公式
fm:=10411;//指定年月
n:=3;//指定第 N 个交易日
zqdm:='SH1A0001';//指定证券
tj:=COUNT(fm-(year-1900)*100-month=0,0)=n;
ref(STKINDI(zqdm,'ohlc.fc',0,-1),BARSLAST(tj));//取证券对应年月第 N 个交易日的收盘价




QUOTE:
796.问:
是这样一个公式,比方股价从5.00元往上打5.01元,那5.01元成交的都计算为主动性买盘,
再往上打5.02元成交的都计算为主动性买盘,再往上打5.03元成交的也都是主动性买盘,当回下
(也就是往下打5.02元的都为主动性卖盘).同理,它是以价格成交来决定主动性买盘和主动性卖盘的.
    答(hx817):
通过重新定位前面比较的收盘价来做为比较价位,完成上面要求
参考:
tj:=CLOSE=REF(CLOSE,1);
N:=tj*(BARSLAST(CROSS(tj,0.5))+1)+1;
OBV:SUM(IF(CLOSE>REF(CLOSE,N),VOL,IF(CLOSE<REF(CLOSE,N),-VOL,0)),0);



QUOTE:
797.问:
若以今天为起点,如何在今日的前5天K线上画一竖直线?又在今日的前10天处画竖直线?并在直线上标出数字?
能做出来吗?
还有不是以今天为起点,而是以任意选的一天为起点,再往前画直线可能吗?

    答(bajatje):
p:=BARPOS=datacount-n;//n--前移天数
VERTLINE(p);

p:=if(条件成立,BARPOS,0);
VERTLINE(p-n>0);
    问:
低版本的飞弧好象不能做这个公式,
     答(bajatje):
低版本可写为:
VERTLINE(CROSS(BACKSET(条件成立,N),0.5));



QUOTE:
798.问:
怎么写回调上攻
    答(yngs):
INPUT:涨幅(29,8,94);
a:=(c-ref(c,1))/ref(c,1)*100;
a1:=BARSLAST( a>涨幅);
a2:=if(a1>0,1,0);
TT:=MA((CLOSE-REF(CLOSE,14))/REF(CLOSE,14),7);
HZ:=EMA(TT,14);
m47:=ma(c,47);
m48:=Ema(m47,3);
m49:=ema(m48,3);
m50:=Ema(m49,3);
HZ>=-0.028 and a2=0 and m47>m48 and m47>m49 and m47>m50 and h/c<1.008



QUOTE:
799.问:
波动性----N的含意
海龟用一个理查德.丹尼斯和比尔.埃克哈特称之为N的概念来表示某个特定市场根本的波动性。N就是TR(True Range,实际范围)的20日指数移动平均,现在更普遍地称之为ATR。从概念上来看,N表示单个交易日某个特定市场所造成的价格波动的平均范围,它说明了开盘价的缺口。N同样用构成合约基础的点(points)进行度量。
每日实际范围的计算:
TR(实际范围)=max(H-L,H-PDC,PDC-L)
式中:
H-当日最高价
L-当日最低价
PDC-前个交易日的收盘价
用下面的公式计算N:
N=(19×PDN+TR)/20
式中:PDN-前个交易日的N值
TR-当日的实际范围
因为这个公式要用到前个交易日的N值,所以,你必须从实际范围的20日简单平均开始计算初始值。

我只写出来TR表达式,N应该怎么表达的请版主指点一下:
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW))

    答(kjyhao):
试试:
方法1
TR:=MAX(MAX((HIGH-LOW),ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW));
NN:=MA(TR,20);
FOR I=23 TO DATACOUNT DO BEGIN
  N[I]:(19*NN[I-1]+TR[I])/20;
  NN[I]:=N[I];
END;




QUOTE:
800.问:
请问如何自编公式实现WINNER函数, 用 C 语言或飞狐,分析家语言都行
我找遍internet, 也问许多人,可就是没人知道答案
CC := DYNAINFO(7); { 今日收盘 }
ww := IF(L>CC, 0, IF(H<CC, 1, (CC-L+0.01)/(H-L+0.01))); { 每日获利盘 }
Winner: DMA(ww, VOL/CAPITAL)*100; { 获利盘 }
比较起来还是和分析家,飞狐的有很大出入
    答(股市骑兵00):
转个南客老师的贴:

在飞狐中,如何自行编写筹码分布公式
以一个简单的按成交量平均分配为例,
variable:pv[50]=0,pc[50]=0;
hh:=hhv(high,0);
ll:=llv(low,0);
fv:=vol;
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 <pv then s:=pv;
bl:=s/(sysparam(3)-sysparam(2))*2;
drawsl(barpos=sysparam(3),sysparam(5),0,pv[1]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd,0,pv[2]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*02,0,pv[03]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*03,0,pv[04]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*04,0,pv[05]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*05,0,pv[06]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*06,0,pv[07]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*07,0,pv[08]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*08,0,pv[09]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*09,0,pv[10]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*10,0,pv[11]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*11,0,pv[12]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*12,0,pv[13]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*13,0,pv[14]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*14,0,pv[15]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*15,0,pv[16]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*16,0,pv[17]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*17,0,pv[18]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*18,0,pv[19]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*19,0,pv[20]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*20,0,pv[21]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*21,0,pv[22]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*22,0,pv[23]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*23,0,pv[24]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*24,0,pv[25]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*25,0,pv[26]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*26,0,pv[27]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*27,0,pv[28]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*28,0,pv[29]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*29,0,pv[30]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*30,0,pv[31]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*31,0,pv[32]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*32,0,pv[33]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*33,0,pv[34]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*34,0,pv[35]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*35,0,pv[36]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*36,0,pv[37]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*37,0,pv[38]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*38,0,pv[39]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*39,0,pv[40]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*40,0,pv[41]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*41,0,pv[42]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*42,0,pv[43]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*43,0,pv[44]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*44,0,pv[45]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*45,0,pv[46]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*46,0,pv[47]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*47,0,pv[48]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*48,0,pv[49]/bl+1,1),COLORGRAY;
drawsl(barpos=sysparam(3),sysparam(5)+dd*49,0,pv[50]/bl+1,1),COLORGRAY;

[ 本帖最后由 AHFYXL1 于 2005-11-29 17:09 编辑 ]




 附件: 您目前的身份是游客,无法下载或查看附件。立即注册,即可享受MACD所有免费服务。

来此 -- 学习和交友!
变色卡 提升卡 加粗卡
龙帝实战讲解---高手快速进阶之路——龙帝老师  
发表于 2005-9-14 11:09  只看该作者
《第十八楼》

目录索引:





QUOTE:
801.问:
均线拐头向上向下,均线日期可设
    答(股市骑兵00):
INPUT:N(5);//参数
ma1:=ma(c,n);
ma1>ref(ma1,1);//上。
ma1<ref(ma1,1);//下。



QUOTE:
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<B,A,L,1,0),COLORGREEN; }

控盘点:(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)<vl(i) then vl(i)=vo(i) else vl(i)=vl(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<fo AND (fc<REF(fo,1)  or REF(fc,1)<REF(fo,1)),-1,0));
多空线:=(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(天<ref(天,1) AND ISLASTBAR,天,5),shift1,align2;
drawicon(天>ref(天,1) And ISLASTBAR,天,4),shift1,,align1;

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

drawicon(中>ref(中,1) and ISLASTBAR,中,4),shift1,,align1;
drawicon(中<ref(中,1) And ISLASTBAR,中,5),shift1,,align2;

drawicon(地<ref(地,1) and islastbar,地,5),shift1,,align2;
drawicon(地>ref(地,1) and islastbar,地,4),shift1,,align1;

drawicon(网>ref(网,1) and ISLASTBAR,网,4),shift1,,align1;
drawicon(网<ref(网,1) and ISLASTBAR,网,5),shift1,,align2;母倍数:=IF(DATAPERIOD>=6,10000,100000);




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



QUOTE:
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<REF(AO,1),AO,0,0.8,1),COLORGREEN;



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

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


count(o<c,3)=3;



QUOTE:
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;



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

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

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



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



QUOTE:
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(q<y,k1),1);
g:=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(q<y,k1);
g:=BACKSET(REFX(p1,1) and u and REFX(p2,1)=0 and k<4,k),LINETHICK0;
FILLRGN(g>0 ,q,y);



QUOTE:
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意思换行。





QUOTE:
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);



QUOTE:
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;



QUOTE:
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);



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

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



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

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



QUOTE:
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));



QUOTE:
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);



QUOTE:
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;



QUOTE:
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);



QUOTE:
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;





QUOTE:
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);//中间显示




QUOTE:
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



QUOTE:
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(C<MA(h1a,13),MA(h1a,13),MA(h1a,13),3,0),color005500,linethick3;}
DRAWBKBMP(CLOSE>=OPEN or CLOSE<OPEN,'背景8');
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>=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(c<o or c=o and c<=ref(c,1),l,h,0.1,0),colorcyan;
STICKLINE(c<o or c=o and c<=ref(c,1),o,c,7,0),colorcyan;

把公式设为主图、主图叠加
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(c<o or c=o and c<=ref(c,1),l,h,0.1,0),colorcyan;
STICKLINE(c<o or c=o and c<=ref(c,1),o,c,7,0),colorcyan;



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

    答(bajatje):
试下
obv:sum(if(c>ref(c,1),v,if(v<ref(c,1),-v,0)),0),linethick0;
hh:=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];



QUOTE:
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)];//实体



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



QUOTE:
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);



QUOTE:
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;



QUOTE:
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;

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



QUOTE:
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 还不支持序列变量,所以,你在光标移动的时候,上面百低 等等数值会变化,而在图线上的数值不会变化





QUOTE:
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);



QUOTE:
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);



QUOTE:
833.问:
帮忙编个能在图中的高低点处显示涨跌幅或价格差数值的公式
    答(hx817):
input:n(10);
z:zig(4,n);
d:=refx(z>ref(z,1) and ref(z,1)<ref(z,2),1);
g:=refx(z<ref(z,1) and ref(z,1)>ref(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;//价格差



QUOTE:
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 and y[j] then begin
      ts:=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<lastday do begin
  lw:=mod(lw+1,7);
  n:=n+1;
  m:=m+if(BETWEEN(lw,0,6),1,0);
end;
星期几:lw;
多少天:n;
交易日:m;



QUOTE:
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;




QUOTE:
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 递增;



QUOTE:
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];

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



QUOTE:
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



QUOTE:
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)); H2:=D1 AND NOT(D2 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);



QUOTE:
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<n DO BEGIN
      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个有效数值,比如用于提高预警速度
            




QUOTE:
841.问:
      n日均线大角(八十度)向上,如何编代码?
      2.弧度如何换成角度值?

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



QUOTE:
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;



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



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

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



QUOTE:
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 <pv then s:=pv;

比如:我要显示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:=(fh[j]-ll)/dd+1;
    sl:(fl[j]-ll)/dd+1;
  end;
end;



QUOTE:
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:=za1[i-1]+a1;
  zb1:=zb1[i-1]+b1;
    if x[datacount] then begin
      if za1-zb1>1 then
        za1:=za1[i-1];
      else
        za1:=za1;
      if zb1>za1 then
        zb1:=zb1[i-1];
      else
        zb1:=zb1;
    end;
    if x[datacount]=0 then begin
      if zb1-za1>1 then
        zb1:=zb1[i-1];
      else
        zb1:=zb1;
      if za1>zb1 then
        za1:=za1[i-1];
      else
        za1:=za1;
    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);



QUOTE:
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了。




QUOTE:
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<xma2;
{画符合条件的背景}
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<ref(xtj,1),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);



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

     答(hx817):
小键盘 / 键



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

[ 本帖最后由 AHFYXL1 于 2005-11-29 17:11 编辑 ]




 附件: 您目前的身份是游客,无法下载或查看附件。立即注册,即可享受MACD所有免费服务。

来此 -- 学习和交友!
变色卡 提升卡 加粗卡
股市万能交易系统——
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
公式求助1000例(16)
飞弧公式月周日K线一眼可见--------------不用切换
【技术分析】
压力支撑线
自动画趋势线
黑马回调预测指标公式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服