分享

公式求助1000例(19)

 黄楚涵 2010-12-19
引用:
901.问:
三數值大小 中間值 <<--- case closed
A, B, D三個數值比大小(不用sort 因為變數少)
A:=MA(C,5);
B:=MA(C,10);
D:=MA(C,20);
bMA:MAX(MAX(A,B),D);//Biggest
SMA:MIN(MIN(A,B),D);//Smallest

請問
中間數 mMA 應該如何表示

     答(清扬):
a+b+d-bma-sma



引用:
902.问:
以昨日收盘或开盘价为基点和今日的收盘价这样形成的角度线的公式,应该怎么编写!
     答(股市骑兵00):
drawsl(barpos=datacount-1,c,refx(c,1)-c,0,0);



引用:
903.问:
1)公式在左收盘于今收盘间在副图中捉只有线没有数值,请问两根K线间的角度计算及
   数值显示怎么编写。
2)用公式检测时提示有未来数据,怎样消除。

     答(股市骑兵00):
你说的数值没明白,画线才2天,数值就是这天的收盘价!

DRAWLINE(barpos=datacount-1,c,ISLASTBAR,c,1);
a:=c-ref(c,1);
斜率:a[datacount],LINETHICK0;



引用:
904.问:
畫線求助
例如  LLV20:LLV(L,20);
如圖 咱可以得到最後一個低點的起始位置A
當Close>LLV20的時候 希望在A點位置的最高價B劃一條水平線

我定位點是由barslast取得
可是 如果我用同樣方式畫線 就會出現所有符合barslast的位置C,D ...都有一條橫線 但是 我只要最後的一條水平線B

     答(股市骑兵00):
ll:=llv(l,20);z:=sum(ll<>ref(ll,1),0);
ref(h,BARSLAST(z=z[datacount] and ll<>ref(ll,1)));



引用:
905.问:
想编一个每周一高点是全周高点在整个周期的比例(概率)
     答(bajatje):
可这样
w:=barslast(weekday<ref(weekday,1));
a:=ref(if(weekday=1,h,0),w);
wh:=if(refx(w=0,1),hhv(h,w+1),0);
sv:=sum(w=0,0);
sum(a=wh,0)/sv;



引用:
906.问:
如果以 ref(h,7) 画一条水平线,该怎样写公式?

     答(cwy):
ts:BARSSINCE(BACKSET(islastbar,7))+1;
ref(h,ts);



引用:
907.问:
请问:RSI形成双底的指标应该怎么写!

     答(scl5858):
週線的W底,在日線上就是雙底.選股公式
LC := REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100;
RSU:=RSI>REF(RSI,1) AND REF(RSI,1)<REF(RSI,2),LINETHICK0;
RSD:=RSI<REF(RSI,1) AND REF(RSI,1)>REF(RSI,2),LINETHICK0;
BRSU:=BARSLAST(RSU),COLORRED,LINETHICK0;
BRSD:=BARSLAST(RSD),COLORGREEN,LINETHICK0;
COUNT(BRSU=0,3)=2 AND RSI>REF(RSI,2) AND REF(RSI,1)>REF(RSI,3);



引用:
908.问:
我直接用条件选股 F10资料搜索2005中报预约披露日的时候发现:选2005
中报预约披露日为2005-8-2的股票,软件会把2005-8-20,2005-8-21,2005-8-22,
2005-8-23,2005-8-24……都选出来,这应该怎么办?能够用公式选吗?

     答(hx817):
tx1:='2005中报预约披露日:';
txd:='2005-8-2';
w1:=f10find(tx1,1);
tx:=f10text(w1+strlen(tx1),0);
tj:STRCMP(tx,txd)=0;



引用:
909.问:
求帮我写想原来胜龙和乾隆中的SSL指标,就是历史成交堆积,叠加主图
例如:10元成交愈多运行时间俞长,横线逾长!也是成本线。

     答(peter109):
手边有个范例 供您参考
使用的时候 需要有十字光标

//主图叠加
a0:=BARSCOUNT(c);
a1:=SYSPARAM(1);
a2:=SYSPARAM(2);
a3:=SYSPARAM(3);
a4:=SYSPARAM(4);
a5:=SYSPARAM(5);

nn0:=a3-a2;
nn:=a0-a2;
hh1:=(a4-a5)/10;
y0:=a0>=a2;
vv0:=if(y0=1 and a1>=a0,v,0);
c1:=if(BETWEEN(c,a4-0*hh1,a4-1*hh1),vv0,0);
c2:=if(BETWEEN(c,a4-1*hh1,a4-2*hh1),vv0,0);
c3:=if(BETWEEN(c,a4-2*hh1,a4-3*hh1),vv0,0);
c4:=if(BETWEEN(c,a4-3*hh1,a4-4*hh1),vv0,0);
c5:=if(BETWEEN(c,a4-4*hh1,a4-5*hh1),vv0,0);
c6:=if(BETWEEN(c,a4-5*hh1,a4-6*hh1),vv0,0);
c7:=if(BETWEEN(c,a4-6*hh1,a4-7*hh1),vv0,0);
c8:=if(BETWEEN(c,a4-7*hh1,a4-8*hh1),vv0,0);
c9:=if(BETWEEN(c,a4-8*hh1,a4-9*hh1),vv0,0);
c10:=if(BETWEEN(c,a4-9*hh1,a4-10*hh1),vv0,0);
v1:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c1,nn0),0),2));
v2:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c2,nn0),0),2));
v3:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c3,nn0),0),2));
v4:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c4,nn0),0),2));
v5:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c5,nn0),0),2));
v6:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c6,nn0),0),2));
v7:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c7,nn0),0),2));
v8:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c8,nn0),0),2));
v9:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c9,nn0),0),2));
v10:=STRTONUM(NUMTOSTR(if(ISLASTBAR,sum(c10,nn0),0),2));
av0:=max(v1,max(v2,max(v3,max(v4,max(v5,max(v6,max(v7,max(v8,max(v9,v10)))))))));

FILLRGN(v1/av0>=nn/nn0 and nn>=0,a4-0*hh1,a4-1*hh1+0.05),colormagenta;
FILLRGN(v2/av0>=nn/nn0 and nn>=0,a4-1*hh1,a4-2*hh1+0.05),colormagenta;
FILLRGN(v3/av0>=nn/nn0 and nn>=0,a4-2*hh1,a4-3*hh1+0.05),colormagenta;
FILLRGN(v4/av0>=nn/nn0 and nn>=0,a4-3*hh1,a4-4*hh1+0.05),colormagenta;
FILLRGN(v5/av0>=nn/nn0 and nn>=0,a4-4*hh1,a4-5*hh1+0.05),colormagenta;
FILLRGN(v6/av0>=nn/nn0 and nn>=0,a4-5*hh1,a4-6*hh1+0.05),colormagenta;
FILLRGN(v7/av0>=nn/nn0 and nn>=0,a4-6*hh1,a4-7*hh1+0.05),colormagenta;
FILLRGN(v8/av0>=nn/nn0 and nn>=0,a4-7*hh1,a4-8*hh1+0.05),colormagenta;
FILLRGN(v9/av0>=nn/nn0 and nn>=0,a4-8*hh1,a4-9*hh1+0.05),colormagenta;
FILLRGN(v10/av0>=nn/nn0 and nn>=0,a4-9*hh1,a4-10*hh1+0.05),colormagenta;



引用:
910.问:
在一分钟的图形中画昨天的最高最低价
     答(bajatje):
w:=barslast(day<>ref(day,1)):
hh:=hhv(h,w+1);
PARTLINE(w>0,ref(hh,w+1));
LL:=LLv(L,w+1);
PARTLINE(w>0,ref(LL,w+1));
引用:
911.问:
下面语句公式怎写
阳均价:
阴均价:

第一次除权日均价/配股或送股比例:
第一次除权日均价到第二次除权日均价/配股或送股比例:
也就是:第一次除权日均价到第N次除权日均价/配股或送股比例:

     答(cwy):
jj:=AMOUNT/v/100;
tj:=if(SPLITDATA(2)/10,SPLITDATA(2)/10,if(SPLITDATA(1)/10,SPLITDATA(1)/10,0));
tj1:=if(tj,jj/tj,0);
阳均价:if(ISUP,tj1,0)COLORRED;
阴均价:if(ISDOWN,tj1,0)COLORCYAN;



912.问:
请求帮写该种K线组合如下图:第一个K线是长K线,有上下影线也可以,
后三到五个K线运行在第一个K线最高价和最底价之内,(还有一个是十字星,
不一定绝对标准)的五彩K线,或选股K线组合!

    答(peter109):
cc:=c;
oo:=o;
up[1]:=MAX(cc[1],oo[1]);
dw[1]:=Min(cc[1],oo[1]);
tup:=up[1];
tdw:=dw[1];
for i=2 to datacount do begin
  if cc[i]>tup or cc[i]<tdw or oo[i]>tup or oo[i]<tdw then begin
    up[i]:=MAX(cc[i],oo[i]);
    dw[i]:=Min(cc[i],oo[i]);
    tup:=up[i];
    tdw:=dw[i];
  end;else begin
    up[i]:=0;
    dw[i]:=0;
  end;
end;
向右包羅K線數:BARSLAST(up<>0);


還可用來選股

順便也提供您懶兄寫的反向的包羅K線數

pc:=if(BARPOS=1,9999999,max(c,o));
t:=sumbars(ref(pc,1)-pc,0.005);
po:=if(barpos=1,0,min(c,o));
i:=sumbars(po-ref(po,1),0.005);
u:=min(t,i)-1;
向左包羅K線數:if(c>o,u,0);
向左包羅K線數2:if(c<o,u,0);



引用:
913.问:
请教飞狐这个时间概念怎么用公式表达:11点30分
     答(peter109):
TIME:=113000;



914.问:
请编个公式:季度收盘价,半年收盘价

    答(cwy):
j1:=month=1 or month=4 or month=7 or month=10;
bn:=month=1 or month=7 ;
ns:=BARSLAST(DAY<ref(day,1)and bn or barpos=1);
js:=BARSLAST(DAY<ref(day,1)and j1 or barpos=1);
jtj:=BACKSET(js=0,js+2);
ntj:=BACKSET(ns=0,ns+2);

js1:=IF(js>REF(js,1),1,0);
ns1:=IF(ns>REF(ns,1),1,0);
c1:=(jtj=1 AND js>REF(js,1))*C;
nc1:=(ntj=1 AND ns>REF(ns,1))*C;
jss:=js;
jss1:=REF(js,1);
nss:=nS;
nss1:=REF(ns,1);
jX:=0*C;
nX:=0*C;
FOR I=DATACOUNT DOWNTO 2 DO BEGIN
  IF jss[I]>jss1[I] OR jss[I]>0 THEN
  jX[I-1]:=jX[I]+js1[I];
  IF nss[I]>nss1[I] OR nss[I]>0 THEN
  nX[I-1]:=nX[I]+ns1[I];
END;
季度收盘价:REFX(c1,jX);
半年收盘价:REFX(nc1,nX);



915.问:
季度收盘价,半年收盘价,能否让指标线随K线收盘价变化,即
总是与最后1根K线的收盘价数值相同?
另:请把季度,半年收盘价分2个公式写,复杂的公式看不明白
    答(cwy):
1.季度
j1:=month=1 or month=4 or month=7 or month=10;
js:=BARSLAST(DAY<ref(day,1)and j1 or barpos=1);
jtj:=BACKSET(js=0,js+2);
js1:=IF(js>REF(js,1),1,0);
c1:=(jtj=1 AND js>REF(js,1))*C;
jss:=js;
jss1:=REF(js,1);
jX:=0*C;
FOR I=DATACOUNT DOWNTO 2 DO BEGIN
  IF jss[I]>jss1[I] OR jss[I]>0 THEN
  jX[I-1]:=jX[I]+js1[I];
END;
季度收盘价:if(REFX(c1,jX)>0,REFX(c1,jX),refx((BARSTATUS=2)*c,jx));
2.半年
bn:=month=1 or month=7 ;
ns:=BARSLAST(DAY<ref(day,1)and bn or barpos=1);
ntj:=BACKSET(ns=0,ns+2);
ns1:=IF(ns>REF(ns,1),1,0);
nc1:=(ntj=1 AND ns>REF(ns,1))*C;
nss:=nS;
nss1:=REF(ns,1);
nX:=0*C;
FOR I=DATACOUNT DOWNTO 2 DO BEGIN
   IF nss[I]>nss1[I] OR nss[I]>0 THEN
   nX[I-1]:=nX[I]+ns1[I];
END;
半年收盘价:if(REFX(nc1,nX)>0,REFX(nc1,nX),refx((BARSTATUS=2)*c,nx));



引用:
916.问:
请教如何在某一周期中同时显示本周期的均线和其上一级周期均线?
     答(股市骑兵00):
引用公式  X2
m1:ma(c,3);

使用公式:
m1:STKINDI(STKLABEL,'x2.m1',0,DATATYPE);
m2:STKINDI(STKLABEL,'x2.m1',0,DATATYPE+1);



引用:
917.问:
想要飞狐特色指标中,鳄鱼线原码!
     答(scl5858):
鳄鱼线原码:
Var1:=(H+L)/2;
上唇:REF(SMA(Var1,5,1),3),COLORGREEN;
牙齿:REF(SMA(Var1,8,1),5),COLORRED;
下颚:REF(SMA(Var1,13,1),8),COLORBLUE;



引用:
918.问:
请朋友帮忙编个连续N天阴线后,收2根阳线的公式,

     答(bajatje):
ref(all(c<o,n),2) and all(c>o,2)



引用:
919.问:
连续N天阴线后,收一根阳线的公式,

     答(清扬):
ref(count(c<o,n)=n,1) and c>o  



引用:
920.问:
1:如何修改才能二列顯示
2:那四列顯示呢

MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
MA3:MA(CLOSE,15);
MA4:MA(CLOSE,20);

AA:='MA1:'+NUMTOSTR(MA1[SYSPARAM(1)],3)+'MA2:'+NUMTOSTR(MA2[SYSPARAM(1)],3);
BB:='MA3:'+NUMTOSTR(MA3[SYSPARAM(1)],3);

if DISPSTATUS=2 then a:=BARPOS;
if DISPSTATUS=1 then b:=BARPOS;

d:=a-b;
e:=hhv(h,d);

DRAWTEXT(1, e*1.05,AA),COLOR00FFFF,ALIGN2;
DRAWTEXT(1, e*1.035,BB),COLORFFFF00,ALIGN2;

     答(bajatje):
大概这样
MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);
MA3:MA(CLOSE,15);
MA4:MA(CLOSE,20);
BB:='\n \nMA3:'+NUMTOSTR(MA3[SYSPARAM(1)],3);
AA:='MA1:'+NUMTOSTR(MA1[SYSPARAM(1)],3)+'\nMA2:'+NUMTOSTR(MA2[SYSPARAM(1)],3)+BB;
P:=SYSPARAM(1)-SYSPARAM(2);
e:=hhv(h,p);

DRAWTEXT(ISLASTBAR, e*1.05,AA),COLOR00FFFF,ALIGN2;
                                    

引用:
921.问:
每过一根K线 就这样在其中间画一个比较明显的线
    答(peter109):
這樣可以嗎

X:=barslast(C>ref(C,1) AND date<>ref(date,1));
Y:ref(C-((c-ref(C,1))/2),X),linethick0;
STICKLINE(X=0,Y,Y,10,0),COLORYELLOW;



引用:
922.问:
我要的其实是A和B的一个交集,但A是先发生,B选出的股必须是之前A选出的股之中的。
A:=open<ma(close,250) and ciose>(close,250)
B:=close>=ma(close,250) and close>=ma(close,250)+0.05

想要的源码是:当股价上穿年线(满足A)后,随后在一段时间内又回到年线(满足B),
这时选出股票。

    答(hx817):
input:n(10);
A:=open<ma(close,250) and close>ma(close,250);
B:=close>=ma(close,250) and close>=ma(close,250)+0.05;
tj:b and any(a,n);//满足B,之前N周期内必需满足A



引用:
923.问:
请教下面几个函数怎么写(或是用什么语句表达):
前一周最高价、前一周最低价、前一周收盘价(在日线分析中使用)、
前一日最高价、前一日最低价、前一日收盘价。
    答(hx817):
直接引用 周线数据的

前一日最高价、前一日最低价、前一日收盘价。
用 ref(high,1)



引用:
924.问:
想编一个公式:计算未来一个波段的目标价,
  n为常量,n1,n2...n5等为n的倍数
上升波段目标价=本波段最低开盘价 * n
下降波段目标价=本波段最高开盘价 * n
当该波段走完后,以实际价格计算下一波段的目标价
    答(cwy):
下降波段目标价:=PEAK(c,m,1)/n;
上升波段目标价:=TROUGH(c,m,1)*n;
m=5,//改变M值,可调整波段大小



引用:
925.问:
運用SYSPARAM(5)的困惑

A:=SYSPARAM(5)=L; B:=BARSCOUNT(C); G:=SYSPARAM(2)=B;
DRAWTEXT(REF(G,80 ),SYSPARAM(5)*1.02,'買進價:'),colorred;
DRAWTEXT(REF(G,80),SYSPARAM(5)*0.97,'賣出價:'),coloryellow;
DRAWTEXT(REF(G,80),SYSPARAM(5)*0.948,'價差:'),colorwhite;

又如最後KD金叉或死叉畫一條水平線(CA, CB),

DRAWTEXT(SYSPARAM(3)=SUM(1,0),CA*1.0025,'買入:');
DRAWTEXT(SYSPARAM(3)=SUM(1,0),CB*0.9975,'賣出:');

1:SYSPARAM(5)*1.02處顯示--買進價:
..SYSPARAM(5)*0.97處顯示--賣出價:
..SYSPARAM(5)*0.948處顯示--價差:

2:CA*1.0025處顯示--買入:
..CB*0.9975處顯示--賣出:

3:上述兩種顯示方式,皆會隨不同週期改變其位置.
如何修改才能固定

    答(cwy):
DRAWTEXT(SYSPARAM(2)=BARPOS,SYSPARAM(5)*1.02,'買進價:'),colorred;
DRAWTEXT(SYSPARAM(2)=BARPOS,SYSPARAM(5)*0.97,'賣出價:'),coloryellow;
DRAWTEXT(SYSPARAM(2)=BARPOS,SYSPARAM(5)*0.948,'價差:'),colorwhite;

DRAWTEXT(SYSPARAM(2)=BARPOS,CA*1.0025,'買入:');
DRAWTEXT(SYSPARAM(2)=BARPOS,CB*0.9975,'賣出:');

    问:
1:經不同週期測試,左右固定沒問題,只是上下無法固定啦.
2:原帖也是跟上述一樣.
3:希望在不同週期上下還是固定的.
    答(cwy):
显示文字的上下间距问题
s:=(SYSPARAM(4)-SYSPARAM(5))/10;
DRAWTEXT(SYSPARAM(2)=BARPOS,SYSPARAM(4),'買進價:'),colorred;
DRAWTEXT(SYSPARAM(2)=BARPOS,SYSPARAM(4)-s*1,'賣出價:'),coloryellow;
DRAWTEXT(SYSPARAM(2)=BARPOS,SYSPARAM(4)-s*2,'價差:'),colorwhite;



引用:
926.问:
指标金叉所对应的那天k线如何定义?(c或h)

    答(yngs):
ref(c,BARSLAST(CROSS(A,B)));



引用:
927.问:
我自编的公式,用于大盘处于弱势时,三十或六十日线向下进,找出逆市强庄股。
一、均价线五、十、三十、六十日线多头排列向上运行。
二、均量线五、十、二十日多头排列向上运行。
三、MACD指标的DIFF向上运行。
四、KDJ指标的J向上运行。
当满足以下条件,发出信号。


a1:=ma(close,5);
a2:=ma(close,10);
a3:=ma(close,21);
a4:=ma(close,60);
t1:=Count(a1>a2 and a2>a3 and a3>a4,1)=1 and isup;
t2:=count(a1>ref(a1,1) and a2>ref(a2,1) and a3>ref(a3,1) and a4>ref(a4,1),1)=1;
b1:=ma(vol,5);
b2:=ma(vol,10);
b3:=ma(vol,20);
t3:=Count(b1>b2 and b2>b3,1)=1;
t4:=count(b1>ref(b1,1) and b2>ref(b2,1) and b3>ref(b3,1),1)=1;
t5:=HHV(close,30)=close;
var1:="macd.diff"(26,12,9);
t6:=count(var1>ref(var1,1),1)=1;
t1 and t2 and t3 and t4 and t5 and t6;

有个问题请帮忙,满足以下条件的公式如何编。我也编过,也通过测试。但不能发出买进信号。
一、均价线五、十、三十、六十日线空头排列向上运行。
二、MACD指标的DIFF向下运行。
三、KDJ指标的J值向下运行。

    答(陈继胜):
diff:="macd.diff";
j:="kdj.j";
ma(c,5)<ma(c,10) and ma(c,10)<ma(c,30) and ma(c,30)<ma(c,60) and diff<ref(diff,1) and j<ref(j,1);



引用:
928.问:
求助修改下面公式度数显示在顶上,随光标移动度数在变化的.

j:="kdj.j";
jd:=atan(100*(j/ref(j,1)-1))*57.2956;
z:ZIGA(j,1);
n:=1;
zh:=PEAKA(Z,n,1);
wh:=PEAKBARSA(Z,n,1)+1;
zL:=TROUGHA(Z,n,1);
wL:=TROUGHBARSA(Z,n,1)+1;
x:=atan((zL/zh-1)/Wh*100)*57.3;
s:=atan((zH/zL-1)/WL*100)*57.3;
DRAWNUMBER(wh=1 or (ISLASTBAR and wL<wh),z*1.1,ref(s,1),3)ALIGN2,COLORMAGENTA;
DRAWTEXT(wh=1 or (ISLASTBAR and wL<wh),z*1.1,'上行:      ')ALIGN2,COLORMAGENTA;
DRAWTEXT(wh=1 or (ISLASTBAR and wL<wh),z*1.1,' 度'),COLORMAGENTA;
DRAWNUMBER(wL=1 or (ISLASTBAR and wL>wh),z/1.1,ref(x,1),3)ALIGN2,COLORGREEN;
DRAWTEXT(wL=1 or (ISLASTBAR and wL>wh),z/1.1,'下行:       ')ALIGN2,COLORGREEN;
DRAWTEXT(wL=1 or (ISLASTBAR and wL>wh),z/1.1,' 度'),COLORGREEN;

    答(peter109):
幫您修改一個數字部分 其他的文字或數字您可依法泡置
將  DRAWNUMBER(wh=1 or (ISLASTBAR and wL<wh),z*1.1,ref(s,1),3)ALIGN2,COLORMAGENTA;
改為
DRAWNUMBER(barpos=sysparam(1) AND wh=1,z*1.1,ref(s,1),3)ALIGN2,COLORMAGENTA;
DRAWNUMBER(ISLASTBAR AND wh>wL,z*1.1,ref(s,1),3)ALIGN2,COLORMAGENTA;
//文字最好不要 畫面複雜許多



引用:
929.问:
我想对分时图中横盘一段时间后向上突破的形态编写一个选股公式,使用一分钟周期,源码如下:
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//选出个股
但是在盘中对符合条件的个股未能选出来,请老师指点!
还有我想知道在一分钟周期中引用日线的数据为什么编译错误,如N:=REF(C#DYA,1),另外如果使用分笔数据,要实现上述选股要求如何编写代码?希望能得各位朋友的指点!

    答(bajatje):
zs:=dynainfo(3);//昨日收盘价,可能不能引用动态函数,但不知其它方法如何引用

昨收盘不用动态函数  可分两步实现
1、先建一个名为 sj 的公式 rc:ref(c,1);
2、用这个式子调用  昨收盘:"sj.rc#day";

and hh=dynainfo(5);//箱体的顶部价格为现在的最高价
不宜用动态函数 改为 and hh=hhv(h,barslast(hour<ref(hour,1)));//barslast(hour,ref(hour,1))--用于N分钟图  如在分笔中使用改为 0

tp:=c>hh ;//价格突破
改为  tp:=c>ref(hh,1);  或  tp:=c=hh;

在N分钟图中引用昨收盘 也可写为  昨收盘:ref(c,barslast(hour<ref(hour,1))+1);



引用:
930.问:
公式意思是这样如:100日内有60根阳线,40根阴线,分别写出100日60根阳线,40根阴线对应的换手率。两者总和应等于100日的总换手率。
    答(清扬):
阳换:SUM((C>=O)*V,100)/CAPITAL*100;
阴换:SUM((C<O)*V, 100)/CAPITAL*100;
总换:SUM(V,100)/CAPITAL*100;
引用:
931.问:
求平行线的写法.
取60天最低点或者最高点,作水平线,然后每隔1.5(价格)作平行线,直到屏幕上端.
    答(cwy):
a:=BARSTATUS=2;
ll:=llv(l,60);
s:=(ll)*a;
STICKLINE(s,s,s,150,1);
STICKLINE(s,s+1.5,s+1.5,150,1);
STICKLINE(s,s+3,s+3,150,1);



引用:
932.问:
内外盘差在日线上显示且能统计n天内差和,请高手编制公式
    答(peter109):
1.公式名稱: (名稱自定)
X:SUM(BUYVOL,0)-SUM(SELLVOL,0);//內外盤差
//建立擴展數據 (N 被引用)
2.新建公式 (名稱自定)
內外盤差:EXTDATA(N),linethick0;//N為擴展數據
M內外盤和:SUM(內外盤差,M),linethick0;//M日



引用:
933.问:
集合竞价的量比大于1 咋写公式
    答(yngs):
tj:BARSSINCE(v)+1=1;
zq:=BARSLAST(tj);
集合竞价量比:if(tj,sum(v,0)/DYNAINFO(38)*240,ref(sum(v,0)/DYNAINFO(38)*240,zq));



引用:
934.问:
1:求5日线上穿10日线处的均线值与5日线前一次下穿10日线处的均线值的比;
2:求5日线下穿10日线处的均线值与5日线前一次上穿10日线处的均线值的比;
    答(股市骑兵00):
m1:=ma(c,5);m2:=ma(c,10);
tj1:=cross(m1,m2);tj2:=cross(m2,m1);
w:=sumbars(tj1 or tj2,2)-1;
(tj1 or tj2)*m1/ref(m1,w);



引用:
935.问:
1求助,怎样取得特定日期的价格和时间?
例如,之字转向指标zig(x,n),转向成立的时间;
指定日期如20040818,如何取得当日的开收高的四价;

2下面这个,错在那里???
zp:=NUMBERSUM(INTPART(c),0);
xp:=NUMBERSUM(ROUND(FRACPART(c)*1000),0);

fi1:=MOD(NUMBERSUM(INTPART(c),0),8);ss:=IF(fi1=0,8,fi1);
fi2:=MOD(xp,8);xx:=IF(fi2=0,8,fi2);
yui:=MOD(zp+xp,6);dd:=IF(yui=0,6,yui);
guaxiang:=ss+xx;

fz:=zig(4,15);
tj1:=fz=high;
tj2:=fz=low;
DRAWYITEXT(tj1,h,guaxiang,1),colorred,ALIGN3;
DRAWYITEXT(tj2,l,88-guaxiang,1),ALIGN3;

    答(bajatje):
参考
z:=FLATZIG(4,10);
w:=barslast(z=0 or z=1);
时间:ref(date,w);
收:ref(c,w);
............



引用:
936.问:
能否将每天的第二笔成交手数和换手率用公式写出?
    答(bajatje):
vv:=v;
vv[2];
(vv[2])/capital*100;



引用:
937.问:
求助一个K线模式的公式!!!
    一根长阳线后,是五至六根K线的整理,整理的幅度最低不能超过阳线的三分之一
    长阳的定义是涨幅在7%以上,往下的调整不能超过阳线的三分一,往上多少都行
    答(cwy):
ts:=BARSLAST(((c/ref(c,1)-1)*100)>7);
jg:=ref(if(ts=0,h-(h-l)/3,0),ts);
COUNT(c>jg,6)>=6;
    答(闲人):
形似老鸭头的话,我这里倒有一个好象是南客老师的公式
老鸭头形态
input:n(10,3,30);
m5:=ma(c,5);
m10:=ma(c,10);
m20:=ma(c,20);
tj:m5>m10 and m10>m20 and BARSLAST(cross(m5,m10))<n;
当然鸭头有大小,看均线怎么设。



引用:
938.问:
求MA(C,5)的仰角和俯角且能够排序的公式.

    答(bajatje):
参考
x:=SLOPE(ma(c,5),n);//N=2~6
atan(x*10)*57.3;
其中57.3 弧度化成度
(注:10为放大作用)



引用:
939.问:
编个选股公式:最近50天前、150天内连续3天跌幅大于20% .
    答(bajatje):
ref(sum(c/ref(c,3)<0.8,100),50)>0;



引用:
940.问:
求所有K线的收盘价总数是  sum(Close,0);
如果要得到符合某一个条件的K线收盘总和,要如何表示?
例如符合 C>MA(C,60) 的K线收盘总和
    答(hx817):
sum(if(c>ma(c,60),c,0),0);

941.问:
(1)今日k线在N天位置排序值,即收盘,开盘价在n天的排序值 如今天收盘价在10天内收盘价由高至低排序为第2,收盘价排序=2,如何飞弧函数表示;
(2)30日次高点,第3高点的值和位置(距今日的天数)如何飞弧函数表示.
    答(peter109):
HH: =H;
A: =MA(C,5);
B: =MA(C,10);
CC: =MA(C,20);
D: =MA(C,30);
要求做下降排序

這是我照做的做法
可是當中有一個值(D) 始終為零
哪位可以幫我看一下並修正嗎

HH: =H;
A: =MA(C,5);
B: =MA(C,10);
CC: =MA(C,20);
D: =MA(C,30);

VARIABLE:SLN[5]=0, SLNPOS[5]=0, SS[5]='';
ss[1]:='HH:'; ss[2]:='A:'; ss[3]:='B:'; ss[4]:='CC:'; ss[5]:='D:';
for n=LBOUND(HH) to ubound(HH) do begin
  SLN[1]:=HH[n]; LBNO:=1;
  if n>=LBOUND(A) then begin
    SLN[2]:=A[n]; LBNO:=LBNO+1;
  end;
  else SLN[2]:=0;
  if n>=LBOUND(B) then begin
    SLN[3]:=B[n]; LBNO:=LBNO+1;
  end;
  else SLN[3]:=0;
  if n>=LBOUND(CC) then begin
    SLN[4]:=CC[n]; LBNO:=LBNO+1;
  end;
  else SLN[4]:=0;
  if n>=LBOUND(D) then begin
    SLN[5]:=D[n]; LBNO:=LBNO+1;
  end;
  else SLN[5]:=0;
  for i = 1 to 5 do begin
    SLNPOS[i]:=SLN[i];
  end;
  tmp:=SORT(SLN,1,1,LBNO);
  tmp:=SORTPOS(SLNPOS,1,1,LBNO);
  EXPN1[n]:=SLN[1]; EXPS1[n]:=SLNPOS[1];
  EXPN2[n]:=SLN[2]; EXPS2[n]:=SLNPOS[2];
  EXPN3[n]:=SLN[3]; EXPS3[n]:=SLNPOS[3];
  EXPN4[n]:=SLN[4]; EXPS4[n]:=SLNPOS[4];
  EXPN5[n]:=SLN[5]; EXPS5[n]:=SLNPOS[5];
end;

EXPLAINEX(EXPS1=1,ss[1],EXPN1,2,0),ColorGreen;
EXPLAINEX(EXPS1=2,ss[2],EXPN1,2,0),ColorGreen;
EXPLAINEX(EXPS1=3,ss[3],EXPN1,2,0),ColorGreen;
EXPLAINEX(EXPS1=4,ss[4],EXPN1,2,0),ColorGreen;
EXPLAINEX(EXPS1=5,ss[5],EXPN1,2,0),ColorGreen;

EXPLAINEX(EXPS2=1,ss[1],EXPN2,2,0),ColorGreen;
EXPLAINEX(EXPS2=2,ss[2],EXPN2,2,0),ColorGreen;
EXPLAINEX(EXPS2=3,ss[3],EXPN2,2,0),ColorGreen;
EXPLAINEX(EXPS2=4,ss[4],EXPN2,2,0),ColorGreen;
EXPLAINEX(EXPS2=5,ss[5],EXPN2,2,0),ColorGreen;

EXPLAINEX(EXPS3=1,ss[1],EXPN3,2,0),ColorGreen;
EXPLAINEX(EXPS3=2,ss[2],EXPN3,2,0),ColorGreen;
EXPLAINEX(EXPS3=3,ss[3],EXPN3,2,0),ColorGreen;
EXPLAINEX(EXPS3=4,ss[4],EXPN3,2,0),ColorGreen;
EXPLAINEX(EXPS3=5,ss[5],EXPN3,2,0),ColorGreen;

EXPLAINEX(EXPS4=1,ss[1],EXPN4,2,0),ColorGreen;
EXPLAINEX(EXPS4=2,ss[2],EXPN4,2,0),ColorGreen;
EXPLAINEX(EXPS4=3,ss[3],EXPN4,2,0),ColorGreen;
EXPLAINEX(EXPS4=4,ss[4],EXPN4,2,0),ColorGreen;
EXPLAINEX(EXPS4=5,ss[5],EXPN4,2,0),ColorGreen;

EXPLAINEX(EXPS5=1,ss[1],EXPN5,2,0),ColorGreen;
EXPLAINEX(EXPS5=2,ss[2],EXPN5,2,0),ColorGreen;
EXPLAINEX(EXPS5=3,ss[3],EXPN5,2,0),ColorGreen;
EXPLAINEX(EXPS5=4,ss[4],EXPN5,2,0),ColorGreen;
EXPLAINEX(EXPS5=5,ss[5],EXPN5,2,0),ColorGreen;



引用:
942.问:
假如变量是var,现在要输出这个var
var;
运行第:var;

实际要显示出:运行第45天,但是这个天字如何出来?
因为一般不能单独对常量进行输出的。
假如变量var值为30
我想这样输出
var1:=ma(c,3);
var2:=SELFSTRING('天');
var:=var1+var2;
第:var;

输出结果是第30天
我关键是想输出var,“天”这个字符串并连接在一起

     答(cwy):
变通办法,不知可否,例如:
运行第:=BARPOS;
sz:='运行第(天):'+NUMTOSTR(运行第[SYSPARAM(1)],2);
DRAWTEXT(BARPOS=SYSPARAM(2),c,sz)align4;

    问:
你的还是数字后面没有文字
     答(股市骑兵00):
变通改下

运行第:=BARPOS;
sz:='MA1:'+NUMTOSTR(运行第[SYSPARAM(1)],2)+'天';
DRAWTEXT(BARPOS=SYSPARAM(2),c,sz)align4
(注: joneslee写了一个更好的办法,上市第:var4,LINETHICK0;年 :PARTLINE(0,0); )



引用:
943.问:
M1:= C>REF(C,1) AND REF(C,1)<REF(C,2); //漲跌=1 今日漲昨日跌
M2:= C<REF(C,1) AND REF(C,1)>REF(C,2); //跌漲=2 今日跌昨日漲
M3:= C>REF(C,1) AND REF(C,1)>REF(C,2); //漲漲=3 今日漲昨日漲
M4:= C<REF(C,1) AND REF(C,1)<REF(C,2); //跌跌=4 今日跌昨日跌

漲跌標記:M1*1+M2*2 +M3*3 +M4*4,linethick0;
drawnumber(1,漲跌標記,漲跌標記,0),align5;
我需要在N周期內 出現1 / 2 / 3 / 4 四個數值都有的時候 做個標記

     答(bajatje):
M1:= C>REF(C,1) AND REF(C,1)<REF(C,2); //漲跌=1 今日漲昨日跌
M2:= C<REF(C,1) AND REF(C,1)>REF(C,2); //跌漲=2 今日跌昨日漲
M3:= C>REF(C,1) AND REF(C,1)>REF(C,2); //漲漲=3 今日漲昨日漲
M4:= C<REF(C,1) AND REF(C,1)<REF(C,2); //跌跌=4 今日跌昨日跌
a:=any(m1,n) and any(m2,n) and any(m3,n) and any(m4,n);
漲跌標記:M1*1+M2*2 +M3*3 +M4*4,linethick0;
drawnumber(1,漲跌標記,漲跌標記,0),align5;
DRAWICON(a,LOW,4)

    问:
或許沒說清楚

要標記的位置點是A區和B區分隔線的地方
C區和B區分隔線
    答(bajatje):
DRAWICON(a and 区域划分条件,LOW,4)
    答(peter109):
//作業要求
DRAWTEXT(barpos=sysparam(2),1.8,'漲,跌=1');
DRAWTEXT(barpos=sysparam(2),1.6,'跌,漲=2');
DRAWTEXT(barpos=sysparam(2),1.4,'漲,漲=3');
DRAWTEXT(barpos=sysparam(2),1.2,'跌,跌=4');
DRAWTEXT(barpos=sysparam(2),1.1,'平=前一');

INPUT:N(7);
varA:=C>ref(C,1);
varB:=REF(varA,1);
AA:=IF(varA=0 AND varB=1,2,IF(varA=1 AND varB=0,1,IF(varA=1 AND varB=1,3,IF(varA=0 AND varB=0,4,0)))),LINETHICK0;
FH:=IF(C=ref(C,1),ref(AA,1),AA),LINETHICK0;
XX:=COUNT(FH=1,N)>0 AND COUNT(FH=2,N)>0 AND COUNT(FH=3,N)>0 AND COUNT(FH=4,N)=1,linethick;//條件判定 N區間內 包含1 2 3 4的數值
XX1:=FILTER(XX,3);
Y:=MOD(count(FH,0),2);
//分天地兩列
drawnumber(Y=0,3,FH,0);//天
drawnumber(Y>0,2,FH,0);//地
//判定結果
DRAWTEXT(XX1 AND FH=1,2.5,'1'),COLORCYAN;
DRAWTEXT(XX1 AND FH=2,2.5,'2'),COLORYELLOW;
DRAWTEXT(XX1 AND FH=3,2.5,'3'),COLORRED;
DRAWTEXT(XX1 AND FH=4,2.5,'4'),COLORGREEN;
1,COLORBLACK;



引用:
944.问:
修改公式:加上条件kd金叉如超过5天不指示的写法?
cci:="cci"(14);
a:=ref(c,1);
rsi:=sma(max(c-a,0),6,1)/sma(abs(c-a),6,1)*100;
a1:=c-ma(c,5)/ma(c,5)*100<1;
a2:=c-ma(c,13)/ma(c,13)*100<-10;
a3:=c-ma(c,34)/ma(c,34)*100<-15;
a4:=rsi<18;
a5:=cci<-120;
a6:=EMA(IF(L<= LLV(l,99),SMA(ABS(L-REF(L,1)),99,1)/SMA(MAX(L-REF(l,1),0),99,1),0),3);
超跌:(a1 and a2 and a3 and a4 and a5 and a6>0 *85),COLORRED,LINETHICK2 ;
k:="kdj.k#day";
d:="kdj.d#day";
j:="kdj.j#day";

金叉1:cross(BARSLAST(cross(超跌,0.5)),BARSLAST(cross(k,d)));

     答(cwy):
cci:="cci"(14);
a:=ref(c,1);
rsi:=sma(max(c-a,0),6,1)/sma(abs(c-a),6,1)*100;
a1:=c-ma(c,5)/ma(c,5)*100<1;
a2:=c-ma(c,13)/ma(c,13)*100<-10;
a3:=c-ma(c,34)/ma(c,34)*100<-15;
a4:=rsi<18;
a5:=cci<-120;
a6:=EMA(IF(L<= LLV(l,99),SMA(ABS(L-REF(L,1)),99,1)/SMA(MAX(L-REF(l,1),0),99,1),0),3);
超跌:(a1 and a2 and a3 and a4 and a5 and a6>0 *85),COLORRED,LINETHICK2 ;
k:="kdj.k#day";
d:="kdj.d#day";
j:="kdj.j#day";
金叉1:cross(BARSLAST(cross(超跌,0.5)),BARSLAST(cross(k,d))) and BARSLAST(cross(超跌,0.5))<6;



引用:
945.问:
如何才能再一条语句里输出:A年B月C日,ABC都是字符变量.
     答(bajatje):
y:=YEAR;
m:=MONTH;
d:=DAY;
p:=SYSPARAM(1);
U:=NUMTOSTR(y[p],0)+'年'+NUMTOSTR(m[p],0)+'月'+NUMTOSTR(d[p],0)+'日';
DRAWTEXT(ISLASTBAR,H,u)ALIGN2;
EXPLAIN(1,u);



引用:
946.问:
100日内上升区域和下跌区域所对应的换手率
1. 100日内上升区域换手率。
2. 100日内下跌区域换手率。
公式意思是这样如:100日内有30天属于上升区域,70天属于下跌区域,分别写出100日
上升区域和下跌区域所对应的换手率。两者总和应等于100日的总换手率

     答(股市骑兵00):
上升:sum(v*ISUP,100)/FINANCE( 7);
下跌:sum(v*ISDOWN,100)/FINANCE( 7);



引用:
947.问:
sum((date>=1050413 and date<=1050606)*v,0)/FINANCE(7);
sum((date>=1050607 and date<=1050818)*v,0)/FINANCE(7);
区域能否用周期代替时间, 以利于调整参数.
     答(股市骑兵00):
时间定位是你要求的呀?

INPUT:n(56),m(32);
sum(v,n)/FINANCE(7);
ref(sum(v,m)/FINANCE(7),n+1);



引用:
948.问:
大智指数转向低点时间
先用之字转向取得大盘指数1a0001产生低点的时间,再以该时间为基准日,取股票的前后n个交易日内的最低价,再求最低价之后的最高价和最后一个交易日与该最低价的比值.
     答(bajatje):
p:="1A0001close";
w:=PEAKBARS(p,10,1);
LL:=LLv(L,if(w>n,2*n,n+w));
wL:=LLvbars(L,if(w>n,2*n,n+w));
hh:=hhv(h,wL);
bh:hh/LL;
bc:c/LL

    问:
能不能把低点以前的信号过滤掉?
     答(cwy):
P:="1A0001$CLOSE";
W:=BARSSINCE(BACKSET(ISLASTBAR,PEAKBARS(P,10,2)+1));
WL:=BARSSINCE(BACKSET(ISLASTBAR,LLvbars(L,W)+1))+1;
LL:REF(L,WL-1),LINETHICK0;
HH:=HHV(H,WL),LINETHICK0;
BH:HH/LL;
BC:C/LL



引用:
949.问:
求历史最低点的时间,但是上市首日的点就是历史最低点,分开取很简单,怎样合成一个语句?
历史低点:ref(date+19000000,BARSLAST(历史最低值<ref(历史最低值,1)));
首日:ref(date+19000000,barssince(c));
历史最低时:if(历史低点>0,历史低点,首日);
     答(bajatje):
d:=LLvbars(L,0)=barscount(c)-1;
if(d,ref(date,llvbars(L,0)),0);//不要加19000000,否则日期会出现1~2天的偏差

    答(cwy):
参考:
(BACKSET(ISLASTBAR,LLvbars(L,0))=0)*date;//这是首日是历史最低点,取时间

cross(BACKSET(ISLASTBAR,LLvbars(L,0)+1),0.5)*date;//这是非首日是历史最低点,取时间

cross(BACKSET(ISLASTBAR,LLvbars(L,0)),0.5)*ref(date,1);//这是首日与非首日是历史最低点,取时间
(注:南客提示,日期不要想当然地加上19000000,飞狐软件不能表达这么大的整数,
硬要加上这个数字,会导致很简单的加减都出错)



引用:
950.问:
怎样求历史最高点向后五天内的最低点?
     答(bajatje):
wh:=hhvbars(h,0)+1;
w:=if(wh<6,wh,6);
a:ref(LLv(L,w),wh-w);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多