881.問(wèn):
當(dāng)出現(xiàn)買入信號(hào)時(shí)都會(huì)出現(xiàn)很多"買入"字樣,因?yàn)榉蠗l件的K線太多,我只想讓它只出現(xiàn)前兩個(gè),
后面的就不顯示了.除非由"買入"轉(zhuǎn)入"賣出",就再只顯示"賣出"的前兩個(gè)..
答(股市騎兵00):
B:=MA(C,20);
A:=C>B;
A1:=C<B;
B1:=REF(HHV(H,5),1);
B2:=REF(LLV(L,5),1);
X:=A AND c>B1 AND C>O or barpos=1 or barpos=2;
Y:=A1 AND c<B2 AND C<O or barpos=1 or barpos=2;
dx:=sumbars(x,1);ex:=sum(y,dx);
dy:=sumbars(y,1);ey:=sum(x,dy);
x1:=(cross(ey,ex) or ey<3 and barpos<>2 and barpos<>1)*x;
y1:=(cross(ex,ey) or ex<3 and barpos<>2 and barpos<>1)*y;
DRAWTEXT(X1,L,'買進(jìn)'),colorWHITE;
DRAWTEXT(Y1,H,'賣出'),colorGREEN;
問(wèn):如果我只單獨(dú)選擇第一個(gè)或者單獨(dú)選擇第二個(gè)用公式怎么表達(dá)?
答(股市騎兵00):
每次買賣只發(fā)一個(gè)信號(hào),就去除
or ey<3
or ex<3
問(wèn):如果只顯示第二個(gè)"買進(jìn)",而不顯示第一個(gè),應(yīng)該怎么表示???
答(股市騎兵00):
改這2句,上面barpos=2多余了
x1:=(ey=2 and barpos<>1)*x;
y1:=(ex=2 and barpos<>1)*y;
882.問(wèn):
選出股價(jià)在60均線正負(fù)2%之內(nèi)的股票
答(股迷):
ABS(CLOSE-MA(CLOSE,60))/CLOSE<0.02;
883.問(wèn):
x1:=(cross(ey,ex) and barpos<>2 andbarpos<>1)*x;
y1:=(cross(ex,ey) and barpos<>2 and barpos<>1)*y;
我是想把x1這個(gè)K線的收盤價(jià)作為買進(jìn)價(jià)寫在電腦解盤里面
EXPLAINEX(BBB>0,'★起始多單價(jià)位= ',起始買進(jìn)價(jià)位,0,0),colorcc10ff;
就是不知道怎么樣來(lái)用 "起始買進(jìn)價(jià)位"表達(dá)x1時(shí)K線的收盤價(jià)???
答(股市騎兵00):
B:=MA(C,20);
A:=C>B;
A1:=C<B;
B1:=REF(HHV(H,5),1);
B2:=REF(LLV(L,5),1);
X:=A AND c>B1 AND C>O or barpos=1;
Y:=A1 AND c<B2 AND C<O or barpos=1;
dx:=sumbars(x,1);ex:=sum(y,dx);
dy:=sumbars(y,1);ey:=sum(x,dy);
x1:=(cross(ey,ex) or ey<3 and barpos<>1)*x;
y1:=(cross(ex,ey) or ex<3 and barpos<>1)*y;
DRAWTEXT(X1,L,'買進(jìn)'),colorWHITE;
DRAWTEXT(Y1,H,'賣出'),colorGREEN;
sj:=MOD(date,10000)/100;fc:=c;x2:=sumbars(x1,1);y2:=sumbars(y1,1);gb:=SYSPARAM(1);
EXPLAIN(X2,'買入時(shí)間:'+NUMTOSTR(sj[gb-x2[gb]+1],2)+' 買入價(jià):'+NUMTOSTR(fc[gb-x2[gb]+1],2)),COLORRED;
EXPLAIN(Y2,'賣出時(shí)間:'+NUMTOSTR(sj[gb-y2[gb]+1],2)+' 賣出價(jià):'+NUMTOSTR(fc[gb-y2[gb]+1],2)),COLORGREEN;
884.問(wèn):
可以在一個(gè)選股公式里面設(shè)多個(gè)條件,而且這多個(gè)條件里面的數(shù)值都可以設(shè)置,如選擇
1、最高價(jià)與最低價(jià)10元到15元;
2、開盤價(jià)在某一范圍;
3、漲跌幅度在某一范圍等。
答(hx817):
input:年(2004),月(7),日(16),收盤小價(jià)格(5),收盤大價(jià)格(5.3),最高價(jià)格(15),最低價(jià)格(10);
n:=DATEDIFF(((年-1900)*10000+月*100+日),DATE);//計(jì)算輸入日期和現(xiàn)在日期時(shí)間差
tj1:REF(CLOSE,n)>收盤小價(jià)格 and REF(CLOSE,n)<收盤大價(jià)格;//選擇收盤價(jià)
tj2:REF(HIGH,n)<最高價(jià)格 and REF(LOW,n)>最低價(jià)格;//選擇收盤價(jià)
//開盤價(jià)、漲跌幅度 方法和 tj1 類似
885.問(wèn):
對(duì)飛狐RSI指標(biāo)理論性失誤的疑問(wèn)
在飛狐里的RSI公式為
N1:6,2,10O
N2:12,2,100
N3:24,2,100
LC := REF(CLOSE,1);
RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;
以下是我翻看函數(shù)說(shuō)明的一些個(gè)人注解,不知道對(duì)不對(duì)
ABS(X) 絕對(duì)值 數(shù)學(xué)
取X的絕對(duì)值
MAX (A,B) 最大值 數(shù)學(xué) 取A和B中最大的值
SMA (X,N,M) 移動(dòng)平均 引用 求X的N日靜態(tài)平均,M為權(quán)重
若Y=SMA(X,N,M) 則 Y=[M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必須大于M。
REF(X,N) 向前引用 引用 引用N周期前的X值
LC:=REF(CLOSE,1)
該句為中間語(yǔ)句,不顯示
因?yàn)?天前的收盤價(jià)格CLOSE
可以理解為“上日收盤價(jià)格”
CLOSE-LC:今日收盤價(jià)格-上日收盤價(jià)格“LC:=REM(CLOSE,1)”
max(a,b)back to max a,or b.
max(close-lc,0)
取CLOSE-LC 或0的最大值
可以理解為,如果收盤價(jià)格大于LC,則取他們的差值,否則取0。
SMA(MAX(CLOSE-LC,0),N1,1)
求移動(dòng)平滑因子為1時(shí)的N1日的(今日收盤價(jià)-上日收盤價(jià))或0的移動(dòng)平均價(jià)
ABS(CLOSE-LC)
取CLOSE-LC的絕對(duì)值
SMA(ABS(CLOSE-LC),N1,1)
取移動(dòng)平滑因子為1是的N1天前的(收盤價(jià)-上日收盤價(jià)的絕對(duì)值)的移動(dòng)平均價(jià)
在期貨市場(chǎng)技術(shù)分析書中第273頁(yè),對(duì)RSI的定義是
RS=X天內(nèi)上漲收市價(jià)的平均值/X內(nèi)下跌收市價(jià)的平均值
解釋:X天內(nèi)的上漲了的收市價(jià)格的上漲幅度相加,然后除于X,在結(jié)算下跌幅度時(shí)則把所有的下跌了的收市價(jià)格的下跌幅度相加,然后除于X,得出相對(duì)力度(RS)
RSI=100-(100/(1+RS))
我覺(jué)的飛狐里的RSI出現(xiàn)了理論性的錯(cuò)誤。
SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100
里面取的是
N1天前的收盤差最大值/N1天前的收盤差絕對(duì)值*100
而墨非定義的是漲跌幅度之間的關(guān)系,RSI并非是最大值與絕對(duì)值之間的關(guān)系。
因?yàn)椴粫?huì)編程,不能夠自己編寫與原來(lái)RSI進(jìn)行對(duì)比嚴(yán)整
答(hx817):
在期貨市場(chǎng)技術(shù)分析書中第273頁(yè),對(duì)RSI的定義是
RS = X天內(nèi)上漲收市價(jià)的平均值/X內(nèi)下跌收市價(jià)的平均值
解釋:X天內(nèi)的上漲了的收市價(jià)格的上漲幅度相加,然后除于X,
在結(jié)算下跌幅度時(shí)則把所有的下跌了的收市價(jià)格的下跌幅度相加,然后除于X,得出相對(duì)力度(RS)
RSI=100-(100/(1+RS))
漲跌幅度=C-REF(C,1)=C-LC
上漲幅度 C>LC 即 C-LC>0
MAX(C-LC,0) 只計(jì)算上漲的幅度
X天內(nèi)上漲幅度的平均值=SMA(MAX(C-LC,0),X,1)
每天漲跌幅度的總和:ABS(CLOSE-LC)
SMA(ABS(CLOSE-LC),N1,1)
RSI = 100-100/(1+RS)
= (100*(1+RS)-100)/(1+RS)
= (100+100*RS-100)/(1+RS)
= (100*RS)/(1+RS)
= RS/(1+RS)*100
RS = X天內(nèi)上漲幅度的平均值/X天內(nèi)下跌幅度的平均值
假設(shè) RS=R1/R2
那么:
RSI = (R1/R2)/(1+R1/R2)*100
= R1/(R1+R2)*100
R1為 X天內(nèi)上漲幅度的平均值 = SMA(MAX(C-LC,0),X,1)
R2為 X天內(nèi)下跌幅度的平均值
R1+R2 為X天內(nèi)漲跌幅度的平均值 = SMA(ABS(CLOSE-LC),N1,1)
那么:
RSI = SMA(MAX(C-LC,0),X,1)/SMA(ABS(CLOSE-LC),N1,1)*100
886.問(wèn):
請(qǐng)南客老師將這段源碼轉(zhuǎn)成飛狐公式,謝謝。
input:N(5,0,100,1),D(1050426,0,1999999,1),M(80,1,1000,1),
M1(50,1,1000,1),N1(0,0,1000,1);
variable:AA=0,BB=0,CC=0,DD=0, EE=0,FF=0,HH=0,II=0;
varAA:=0;
varBB:=0;
varCC:=0;
varDD:=barpos-1;
varEE:=capital*(M/100);
varFF:=capital*(m1/100);
varD:=date>=D;
var0:=ma( ref(vol,1),N );{N=1,與上一交易日比較}
var00:=var0*( (100+N1)/100 );
varV:=vol/var00-1;
var1:=if(vol>var00,vol-var00,0);
var2:=if(vol<var00,var00-vol,0);
var3:=(vol-var0)*100/var0;
差:vol-var0,colorffcc00,linethick0,precis0;
幅%:var3,colorccffff,linethick0,precis0;
STICKLINE(vol>var0,0,var1,6,0),COLORffccff;
STICKLINE(vol<var0,0,var2,6,1),colorccff33;
if varD then begin
for i=0 to varDD do begin
if varAA< varEE then begin
varAA := varAA + ref(vol,i);
if varAA >= varEE then
varZZ:=i+1;
end
end
for i=0 to varDD do begin
if varBB< varFF then begin
varBB := varBB + ref(var1,i);
if varBB >= varFF then
varXX:=i+1;
end
end
for i=0 to varDD do begin
if varCC< varFF then begin
varCC := varCC + ref(var2,i);
if varCC >= varFF then
varYY:=i+1;
end
end
if Vol>var00 then begin
AA:=AA+varV;
BB:=BB+1;
end
else if Vol<var00 then begin
CC:=CC+varV;
DD:=DD+1;
end
if C>O then begin
EE:=EE+varV;
FF:=FF+1;
end
else if C<O then begin
HH:=HH+varV;
II:=II+1;
end
end
漲%:if(BB=0,0,AA*100/BB),precis2,colorffccff;
跌%:if(DD=0,0,CC*100/DD),precis2,colorcyan;
陽(yáng)%:if(FF=0,0,EE*100/FF),precis2,color99ffff;
陰%:if(II=0,0,HH*100/II),precis2,colorffff99;
(天):varZZ,precis0,linethick0,coloreeeeee;
天↑:varXX,precis0,linethick0,colorffcccc;
天↓:varYY,precis0,linethick0,colorccff33;
答(股市騎兵00):
上面的公式是分析家的,和飛狐寫法不同,一個(gè)字都沒(méi)改怎么能用呢
input:N(5,0,100,1),D(1050426,0,1999999,1),M(80,1,1000,1),
M1(50,1,1000,1),N1(0,0,1000,1);
variable:AA=0*c,BB=0*c,CC=0*c,DD=0*c, EE=0*c,FF=0*c,HH=0*c,II=0*c;
varAA:=0*c;
varBB:=0*c;
varCC:=0*c;
varDD:=barpos-1;
varEE:=capital*(M/100);
varFF:=capital*(m1/100);
varD:=date>=D;
var0:=ma( ref(vol,1),N );{N=1,與上一交易日比較}
var00:=var0*( (100+N1)/100 );
varV:=vol/var00-1;
var1:=if(vol>var00,vol-var00,0);
var2:=if(vol<var00,var00-vol,0);
var3:=(vol-var0)*100/var0;
差:vol-var0,colorffcc00,linethick0,PRECISION0;
幅%:var3,colorccffff,linethick0,PRECISION0;
STICKLINE(vol>var0,0,var1,6,0),COLORffccff;
STICKLINE(vol<var0,0,var2,6,1),colorccff33;
fv:=v;fc:=c;fo:=o;
for i=1 to datacount do begin
if varD[i] then begin
for j=i downto 1 do begin
if varaa[j]<varee then
varaa[i]:=varaa[i]+fv[j];
if varaa[i]>=varee then begin
varzz[i]:=i-j+1;
break;
end;
end;
for j=i downto LBOUND(var1) do begin
if varbb[j]<varff then
varbb[i]:=varbb[i]+var1[j];
if varbb[i]>=varff then begin
varxx[i]:=i-j+1;
break;
end;
end;
for j=i downto LBOUND(var2) do begin
if varcc[j]<varff then
varcc[i]:=varcc[i]+var2[j];
if varcc[i]>=varff then begin
varyy[i]:=i-j+1;
break;
end;
end;
if fv[i]>var00[i] then begin
aa[i]:=aa[i-1]+varv[i];
bb[i]:=bb[i-1]+1;
end;else begin
aa[i]:=aa[i-1];
bb[i]:=bb[i-1];
end;
if fv[i]<var00[i] then begin
cc[i]:=cc[i-1]+varv[i];
dd[i]:=dd[i-1]+1;
end;else begin
cc[i]:=cc[i-1];
dd[i]:=dd[i-1];
end;
if fc[i]>fo[i] then begin
ee[i]:=ee[i-1]+varv[i];
ff[i]:=ff[i-1]+1;
end;else begin
ee[i]:=ee[i-1];
ff[i]:=ff[i-1];
end;
if fc[i]<fo[i] then begin
hh[i]:=hh[i-1]+varv[i];
ii[i]:=ii[i-1]+1;
end;else begin
hh[i]:=hh[i-1];
ii[i]:=ii[i-1];
end;
end;
end;
漲%:if(BB=0,0,AA*100/BB),PRECISION2,colorffccff;
跌%:if(DD=0,0,CC*100/DD),PRECISION2,colorcyan;
陽(yáng)%:if(FF=0,0,EE*100/FF),PRECISION2,color99ffff;
陰%:if(II=0,0,HH*100/II),PRECISION2,colorffff99;
(天):varZZ,PRECISION2,linethick0,coloreeeeee;
天↑:varXX,PRECISION2,linethick0,colorffcccc;
天↓:varYY,PRECISION2,linethick0,colorccff33;
887.問(wèn):
在電腦解盤中:
EXPLAIN(x1,提示平倉(cāng)一半),有沒(méi)有辦法讓"提示平倉(cāng)一半"不重復(fù)出現(xiàn)啊!
因?yàn)樵谝欢螘r(shí)間x1條件會(huì)反復(fù)出現(xiàn).
count(x1,m)=1;
答(南客):
如何使買入信號(hào)、賣出信號(hào)一一對(duì)應(yīng)
(1)
在設(shè)計(jì)公式時(shí),我們經(jīng)常遇到這樣的問(wèn)題,如何使買賣信號(hào)一一對(duì)應(yīng)?
比如下面的代碼:
input:n(26,5,300),p(2,0.1,10);
close;
mid : ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);
tjb:=cross(close,lower);
tjs:=cross(upper,close);
drawicon(tjb,close,4);
drawicon(tjs,close,5);
可以看出,買入信號(hào)連續(xù)發(fā)出多次后,才出現(xiàn)賣出信號(hào),賣出信號(hào)連續(xù)發(fā)出多次后,
才發(fā)出買入信號(hào)。
(2)
如何過(guò)濾連續(xù)的買入、賣出信號(hào),使買入后只要沒(méi)有發(fā)出賣出信號(hào),就不再發(fā)出買入信號(hào);同樣,賣出后只要沒(méi)有出現(xiàn)買入信號(hào),就不再發(fā)出賣出信號(hào)。即買入、賣出信號(hào)一一對(duì)應(yīng)。容易想到的是使用過(guò)濾函數(shù)filter(),但這個(gè)函數(shù)是難以實(shí)現(xiàn)的,因?yàn)槲磥?lái)有多少個(gè)連續(xù)的買入(或賣出)信號(hào)是未知的。
另一種方法是,從前一次賣出(或買入)信號(hào)開始累加買入(或賣出)信號(hào),如果累加次數(shù)等于1,則發(fā)出真正的買入(或賣出)信號(hào)。但這里還有一個(gè)問(wèn)題,如果首次信號(hào)是賣出信號(hào)的話,也應(yīng)該過(guò)濾,因?yàn)闆](méi)有買入哪來(lái)賣出?應(yīng)讓首次信號(hào)是買入信號(hào)才合理。方法是,在第1根K線的位置,虛擬一個(gè)賣出信號(hào)。
以下是實(shí)現(xiàn)上述想法的常規(guī)函數(shù)代碼:
input:n(26,5,300),p(2,0.1,10);
close;
mid : ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);
//以下為常規(guī)函數(shù)處理代碼//
tjb:=cross(close,lower);//初始買入信號(hào),可換成其它任意買入條件
tjs:=cross(upper,close);//初始賣出信號(hào),可換成其它任意賣出條件
{以下代碼,使買、賣信號(hào)一一對(duì)應(yīng)}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]<tjb[datacount] then begin
a:=setlbound(tjs,1);
tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb; //買入信號(hào)
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //賣出信號(hào)
drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
答(cwy):
如下也可解決
input:n(26,5,300),p(2,0.1,10);
close;
mid:ma(close,n);
upper:mid + p*std(close,n);
lower:mid - p*std(close,n);
tjb:=cross(close,lower);
tjs:=cross(upper,close);
tsb:=barslast(tjb);
tss:=barslast(tjs);
tj1:=tjb and count(tjb,tss+1)<2;
tj2:=tjs and count(tjs,tsb+1)<2;
drawicon(tj1,close,4);
drawicon(tj2,close,5);
允許連續(xù)出現(xiàn)2次買入信號(hào)或賣出信號(hào)
input:n(26,5,300),p(2,0.1,10);
close;
mid:ma(close,n);
upper:mid + p*std(close,n);
lower:mid - p*std(close,n);
tjb:=cross(close,lower);
tjs:=cross(upper,close);
tsb:=barslast(tjb);
tss:=barslast(tjs);
tj1:=tjb and count(tjb,tss+1)<3;
tj2:=tjs and count(tjs,tsb+1)<3;
drawicon(tj1,close,4);
drawicon(tj2,close,5);
答(股市騎兵00):
1.用循環(huán)我試著答一下。
input:n(26,5,300),p(2,0.1,10),s(1,1,5);//S為允許連續(xù)出現(xiàn)信號(hào)調(diào)節(jié)參數(shù)!
close;
mid := ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);
//以下為常規(guī)函數(shù)處理代碼//
tjb:=cross(close,lower);//初始買入信號(hào),可換成其它任意買入條件
tjs:=cross(upper,close);//初始賣出信號(hào),可換成其它任意賣出條件
///////////////////////////////////////////////////////////
m:=0*c;w:=0*c;mm:=0*c;
for i=LBOUND(upper) to datacount do begin
mm[i]:=mm[i-1]+tjb[i];
m[i]:=m[i-1]+tjb[i];
w[i]:=w[i-1]+tjs[i];
if tjs[i] then m[i]:=0;
if tjb[i] then w[i]:=0;
if m[i]<=s and tjb[i] then z[i]:=1;
if w[i]<=s and tjs[i] and mm[i]>0 then t[i]:=1;//首次要發(fā)賣出信號(hào)去掉and mm[i]>0
end;
drawicon(z,low,4);
drawicon(t,high,5);
2.稍微改下思路試試。
///////////////////////////////////////////////////////////
m:=0*c;w:=0*c;mm:=0*c;
for i=LBOUND(upper) to datacount do begin
mm[i]:=mm[i-1]+tjb[i];
m[i]:=m[i-1]+tjb[i];
w[i]:=w[i-1]+tjs[i];
if w[i]>w[i-1] then m[i]:=0;
if m[i]>m[i-1] or mm[i]=0 then w[i]:=0;
if m[i]-w[i]>s then m[i]:=m[i-1];
if w[i]-m[i]>s then w[i]:=w[i-1];
end;
drawicon(m>ref(m,1),low,4);
drawicon(w>ref(w,1),high,5);
問(wèn):
剛剛發(fā)現(xiàn)問(wèn)題。如果將買入、賣出條件改為以下方式,就無(wú)法實(shí)現(xiàn)信號(hào)的對(duì)應(yīng)了。請(qǐng)問(wèn)老師在買入條件仍然保持“C>MID”,而不是“CROSS(C,MID)”的情況下如何實(shí)現(xiàn)?
MID:MA(C,30);
tjb:=C>MID AND L>MID;//初始買入信號(hào),可換成其它任意買入條件
U1:=L<REF(L,BARSLAST(CROSS(TJB,0.5)));
U2:=L<MID;
tjs:=U1 OR U2;//初始賣出信號(hào),可換成其它任意賣出條件
{以下代碼,使買、賣信號(hào)一一對(duì)應(yīng)}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]<tjb[datacount] then begin
a:=setlbound(tjs,1);
tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb; //買入信號(hào)
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //賣出信號(hào)
drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
答(股市騎兵00):
你的買賣條件不對(duì)呀!
tjs//初始賣出信號(hào)
tjb//初始買入信號(hào)
2個(gè)條件自相矛盾了,同時(shí)買賣信號(hào)都會(huì)發(fā)的,那你聽買的呢,還是賣的呢?
你硬要這個(gè)條件,下面的你參考
MID:=MA(C,30);
tjb:=C>MID AND L>MID;
U1:=L<REF(L,BARSLAST(CROSS(TJB,0.5)));
U2:=L<MID;
tjs:=U1 OR U2;//初始賣出信號(hào),可換成其它任意賣出條件
tjb:=tjb and not(tjs);//初始買入信號(hào),可換成其它任意買入條件
{以下代碼,使買、賣信號(hào)一一對(duì)應(yīng)}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]<tjb[datacount] then begin
a:=setlbound(tjs,1);
tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb; //買入信號(hào)
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //賣出信號(hào)
drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
問(wèn):
公式中的“U2”又改了一下:
U2:=C>REF(C,BARSLAST(CROSS(TJB,0.5)));
請(qǐng)教怎樣才能在“tjsell”條件成立后,當(dāng)“C>MID AND L>MID”條件滿足時(shí)即可產(chǎn)生新的“tjbuy”信號(hào)?謝謝!
[color=Red] 答(股市騎兵00):
你的買賣條件本身有重疊的問(wèn)題。肯定有信號(hào)損失的,如果以買入信號(hào)為基準(zhǔn)。
損失賣出信號(hào)改為如下表達(dá)。
MID:=MA(C,30);
tjb:=C>MID AND L>MID;//初始買入信號(hào),可換成其它任意買入條件
U1:=L<REF(L,BARSLAST(CROSS(TJB,0.5)));
//U2:=L<MID;
U2:=C>REF(C,BARSLAST(CROSS(TJB,0.5)));
tjs:=(U1 OR U2) and not(tjb);//初始賣出信號(hào),可換成其它任意賣出條件
答(cwy):
這個(gè)作業(yè)不能說(shuō)是真正的用循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn),對(duì)常規(guī)函數(shù)使用的考慮還是較多,
如處理第一個(gè)賣出信號(hào),實(shí)際上我不是做出來(lái)而是試出來(lái)的,
input:n(26,5,300),p(2,0.1,10);
close;
mid:ma(close,n);
upper:mid + p*std(close,n);
lower:mid - p*std(close,n);
//以下為常規(guī)函數(shù)處理代碼//
tjb:=cross(c,lower);//初始買入信號(hào),可換成其它任意買入條件
tjs:=cross(upper,c);//初始賣出信號(hào),可換成其它任意賣出條件
tss1:=BARSSINCE(tjb);//第一個(gè)賣出信號(hào)
///////////////////////////////////////////////////////
fb:=0*c;
fs:=0*c;
for i =n to datacount do begin
fb[i]:=fb[i-1]+tjb[i];
fs[i]:=fs[i-1]+tjs[i];
if tjs[i] then fb[i]:=0;
if tjb[i] then fs[i]:=0;
if fb[i]=1 and tjb[i] then fb1[i]:=1;
if fs[i]=1 and tjs[i] then fs1[i]:=1;
end;
drawicon(fb1 ,l,4);
drawicon(fs1 and tss1>2 ,h,5);
888.問(wèn):
在100日內(nèi),從股價(jià)最低點(diǎn)到最高點(diǎn),標(biāo)出0。618。0。382的位置上畫出線。
相反從最高到最低,也同樣標(biāo)出2條線
答(股市騎兵00):
hh:hhv(h,100);
ll:llv(l,100);
f1:(hh-ll)*0.618+ll;
f2:(hh-ll)*0.382+ll;
889.問(wèn):
我想只輸出指標(biāo)線,而不輸出數(shù)值,如何寫?
如:ma5:ma9c,5);只輸出指標(biāo)線,而不輸出數(shù)值
答(bajatje):
別名: 畫分段線
所屬類別: 繪圖函數(shù) 參數(shù)數(shù)量: 2
分段繪制指標(biāo)線。
用法:
PARTLINE(COND,PRICE),滿足COND條件繪制PRICE連線。
例如:PARTLINE(C>REF(C,1),C),colorred表示收盤大于前收以紅色繪制收盤價(jià)連線。
PARTLINE(1,ma5);
890.問(wèn):
求今日向前有多少根k線的最高價(jià)大于且最低價(jià)小于今日收盤價(jià)?
答(股市騎兵00):
最后周期和光標(biāo)位統(tǒng)計(jì)大致這樣。
fc:=c;pg:=datacount;//可改為SYSPARAM(1)光標(biāo)統(tǒng)計(jì)
x:=h>fc[pg] and l<fc[pg];
y:=sum(x,0)-x[pg];
y[pg];
891.問(wèn):
只計(jì)算今天與前幾日連續(xù)符合條件的數(shù)量,不是累計(jì)相加的數(shù)量。
答(股市騎兵00):
n:=5;//天數(shù)調(diào)節(jié)
fc:=c;pg:=SYSPARAM(1);//可改為SYSPARAM(1)光標(biāo)統(tǒng)計(jì)
x:=h>fc[pg] and l<fc[pg];
y:=sum(x,n)-x[pg];
y[pg];
892.問(wèn):
如何取圖表內(nèi)第一根K線到最后一根K線之間的時(shí)間差?
要求幾天幾小時(shí)幾分鐘。
答(hx817):
rj:=date;fz:=time;
d1:=rj[SYSPARAM(3)];d2:=rj[SYSPARAM(2)];
t1:=fz[SYSPARAM(3)];t2:=fz[SYSPARAM(2)];
fh1:=intpart(t1/10000);fh2:=intpart(t2/10000);
fm1:=intpart((t1-fh1*10000)/100);fm2:=intpart((t2-fh2*10000)/100);
fd:=DATEDIFF(d2,d1);
hh:=fh1-fh2;
mm:=fm1-fm2;
if mm<0 then begin
hh:=hh-1;
mm:=mm+60;
end;
if hh<0 then begin
fd:=fd-1;
hh:=hh+24;
end;
天:fd;
時(shí):hh;
分:mm;
893.問(wèn):
如何引用05年4月中旬--6月初,這段時(shí)間周期內(nèi)的最低價(jià)。
答(bajatje):
w1:=barslast(date<=m1);
w2:=barslast(date<=m2);
ref(LLv(L,w1),w2);
macd 預(yù)計(jì)交叉價(jià)
d:ema(c,12)LINETHICK;
a:ema(c,26)LINETHICK;
e:=ema(d-a,9);
今日交叉價(jià):(351*ref(e,1)+325*ref(a,1)-297*ref(d,1))/28LINETHICK;
明日交叉價(jià):(351*e+325*a-297*d)/28LINETHICK;
894.問(wèn):
個(gè)數(shù)學(xué)公式,如何寫
{[(1+2+3+4+5)*5-2]*2*3*4+20}*2/64
其中(1+2+3+4+5)這里面是最近5天的收盤價(jià)格,其它的數(shù)字是常數(shù)
是不是用datacount引用前5天的價(jià)格?
答(清揚(yáng)):
((MA(C,5)*5*5-2)*2*3*4+20)*2/64
// MA(C,5)*5 為最近五天收盤價(jià)之和
答(hx817):
m1:ma(c,5);
m2:(c+ref(c,1)+ref(c,2)+ref(c,3)+ref(c,4))/5;
895.問(wèn):
幫忙編一個(gè)5分鐘與60分鐘K線同圖顯示公式.
答(股市騎兵00):
以前做的公式改了下,5分鐘K線使用
if DATATYPE<>2 then exit;
bc:=12;sj:=MOD(BARPOS-1,bc)=0 OR BARPOS=1;
zsj:=sum(sj,0);dzsj:=zsj[DATACOUNT]-zsj;
x:=DATACOUNT-BARPOS+1;zq:=SUMBARS(sj,1);
y:=SUMBARS(sj,x-dzsj);y1:=SUMBARS(sj,x-1-dzsj);
開60:ref(o,y-1),LINETHICK0;
高60:if(ISLASTBAR,hhv(h,zq),ref(hhv(h,bc),y1)),LINETHICK0;
低60:if(ISLASTBAR,llv(l,zq),ref(llv(l,bc),y1)),LINETHICK0;
收60:if(ISLASTBAR,ref(c,y1-1),ref(c,y1)),LINETHICK0;
STICKLINE(收60>=開60,收60,開60,7,1),colorred;
STICKLINE(收60>=開60,收60,高60,0.1,1),colorred;
STICKLINE(收60>=開60,開60,低60,0.1,1),colorred;
STICKLINE(收60<開60,收60,開60,7,0),colorcyan;
STICKLINE(收60<開60,開60,高60,0.1,0),colorcyan;
STICKLINE(收60<開60,收60,低60,0.1,0),colorcyan;
漲幅60:收60/ref(收60,1)*100-100,LINETHICK0;
答(股市騎兵00)
要同圖
1.建個(gè)引用公式名:X5
cc:c;
oo:o;
hh:h;
ll:l;
2.再用下面的公式
if DATATYPE<>2 then exit;
n:=12;pn:=mod(barpos-1,n);
ik:=pn=0 or ISLASTBAR or refx(pn=0,1);
收:"x5.cc#min60",LINETHICK0;
開:"x5.oo#min60",LINETHICK0;
高:"x5.hh#min60",LINETHICK0;
低:"x5.ll#min60",LINETHICK0;
m:=收>=開;w:=收<開;f:=ISLASTBAR*(pn<6);
PARTLINE(pn>0 and m,收),COLORRED;
PARTLINE(pn>0 and m,開),COLORRED;
PARTLINE(pn>0 and w,收),COLORBLUE;
PARTLINE(pn>0 and w,開),COLORBLUE;
STICKLINE(ik and m,開,收,0.1,1),COLORRED;
STICKLINE(ik and w,開,收,0.1,1),COLORBLUE;
STICKLINE((pn=6 or f) and m,收,高,0.1,1),COLORRED;
STICKLINE((pn=6 or f) and m,開,低,0.1,1),COLORRED;
STICKLINE((pn=6 or f) and w,開,高,0.1,1),COLORBLUE;
STICKLINE((pn=6 or f) and w,收,低,0.1,1),COLORBLUE;
896.問(wèn):
求某天(可以設(shè)定)到今天的換手率總和。
答(cwy):
RQ:=IF(DATE=1050104,1,0);//在1050104處換入你的日期
N天的換手率總和:SUM(IF(BARSLAST(RQ)>0,V,0),0)/FINANCE(7);
897.問(wèn):
5日ma、10日ma、30日ma相交在一點(diǎn)時(shí),當(dāng)日股價(jià)上穿該點(diǎn)漲停,(包括st),成功率很高
答(hx817):
st:=if(INBLOCK('ST板塊') or INBLOCK('*ST板塊'),1.05,1.1);
zt:=ROUND(100*st*ref(c,1))/100<=c;
m1:=ma(c,5);
m2:=ma(c,10);
m3:=ma(c,30);
tj:BETWEEN(m1,o,c) and BETWEEN(m2,o,c) and BETWEEN(m3,o,c) and zt
898.問(wèn):
我想請(qǐng)你幫做一下,就是我用光標(biāo)在一個(gè)點(diǎn)位拉到另一個(gè)點(diǎn)位時(shí),就出現(xiàn)一個(gè)長(zhǎng)方形,在這個(gè)長(zhǎng)方形里出現(xiàn)三條橫線,它們分別在三分之一,三分之二和二分之一的點(diǎn)位上,最好能顯示出數(shù)據(jù).
答(股市騎兵00):
INPUT:m(48);//周期調(diào)節(jié)
x:=3;p:=SYSPARAM(1);
ws:=BARPOS;ws1:=if(ws<m,ws,m);
wsp:=p-ws1+1;wsp1:=ws1-1;
h1:=hhv(h,ws1);l1:=llv(l,ws1);
hp:=h1[p];lp:=l1[p];hlpx:=(hp-lp)/x;
if p=1 then exit;
DRAWSL(ws=wsp[p],hp,0,wsp1[p],3);
DRAWSL(ws=wsp[p],lp,0,wsp1[p],3);
DRAWSL(ws=wsp[p],lp+hlpx,0,wsp1[p],3);
DRAWSL(ws=wsp[p],lp+hlpx*2,0,wsp1[p],3);
STICKLINE(ws=wsp[p],hp,lp,0.5,1);
STICKLINE(ws=p,hp,lp,0.5,1);
DRAWNUMBER(ws=wsp[p],hp,hp,2),SHIFT2;
DRAWNUMBER(ws=wsp[p],lp,lp,2),SHIFT2;
DRAWNUMBER(ws=wsp[p],lp+hlpx,lp+hlpx,2),SHIFT2;
DRAWNUMBER(ws=wsp[p],lp+hlpx*2,lp+hlpx*2,2),SHIFT2;
DRAWSL(ws=wsp[p],lp+(hp-lp)/2,0,wsp1[p],3);
899.問(wèn):
前一天的K線振幅為5%以上,跌幅為—3%以上。今天的振幅孕育在昨天的
振幅之內(nèi),同時(shí)KDJ值均小于20。
答(欣兒):
a1:=ref((h/l-1)*100,1)>5 and (ref(c,1)/ref(c,2)-1)*100<-3 and h<ref(h,1)
and l<ref(l,1);
a2:="kdj.k"<20 and "kdj.d"<20 "kdj.j"<20;
a1 and a2;
900.問(wèn):
節(jié)氣不在交易日內(nèi),如何在離它最近的這一天近似表示出來(lái)?
比如:
VAR7:=DRAWTEXT(date=LSOLARTERMDATE(9),0,'*立夏');
VAR8:=DRAWTEXT(date=LSOLARTERMDATE(10),0,'*小滿');
VAR9:=DRAWTEXT(date=LSOLARTERMDATE(11),0,'*芒種');
今年內(nèi)這三個(gè)節(jié)氣都不在交易日內(nèi),如何在離它最近的這一天近似表示出來(lái)?并與正常能表示的節(jié)氣區(qū)別開來(lái)?
答(bajatje):
VAR7:DRAWTEXT(barslast(date<=LSOLARTERMDATE(9))=1,0,'*立夏');
VAR8:DRAWTEXT(barslast(date<=LSOLARTERMDATE(10))=1,0,'*小滿');
VAR9:DRAWTEXT(barslast(date<=LSOLARTERMDATE(11))=1,0,'*芒種');