k線合并問(wèn)題求解 [金字塔]
- 咨詢(xún)內(nèi)容:
請(qǐng)問(wèn): 我在考慮k線合并,讓系統(tǒng)自己在原來(lái)k線基礎(chǔ)上將k線標(biāo)準(zhǔn)化,把包含關(guān)系的k線處理成統(tǒng)一標(biāo)準(zhǔn)化k線; 函數(shù)邏輯: 1、K線包含關(guān)系:指一K線的高低點(diǎn)全在另一K線的范圍里; 2、K線包含關(guān)系的處理:在向上時(shí),把兩K線的最高點(diǎn)當(dāng)高點(diǎn),而兩K線低點(diǎn)中的較高者當(dāng)成低點(diǎn),這樣就把兩K線合并成一新的K線;反之,當(dāng)向下時(shí),把兩K線的最低點(diǎn)當(dāng)?shù)忘c(diǎn),而兩K線高點(diǎn)中的較低者當(dāng)成高點(diǎn),這樣就把兩K線合并成一新的K線。
3、K線合并方向:假設(shè),第n根K線滿足第n根與第n+1根的包含關(guān)系,而第n根與第n-1根不是包含關(guān)系,那么,如果第n根K線的高點(diǎn)大于第n-1根K線的高點(diǎn),則稱(chēng)第n-1、n、n+1根K線是向上的;如果第n根K線的低點(diǎn)小于第n-1根K線的低點(diǎn),則稱(chēng)第n-1、n、n+1根K線是向下的。K線包含關(guān)系的順序原則:先用第1、2根K線的包含關(guān)系確認(rèn)新的K線,然后用新的K線去和第3根比,如果有包含關(guān)系,繼續(xù)用包含關(guān)系的法則結(jié)合成新的K線;如果沒(méi)有,就按正常K線去處理。
程序代碼:
runmode:1;//序列模式;
i:=BARPOS;
variable:up1=0;//定義一個(gè)數(shù)組用來(lái)存放向上包含的k線高點(diǎn);
variable:up2=0;//定義一個(gè)數(shù)組用來(lái)存放向上包含的k線低點(diǎn);
variable:dn1=0;//定義一個(gè)數(shù)組用來(lái)存放向下包含的k線高點(diǎn);
variable:dn2=0;//定義一個(gè)數(shù)組用來(lái)存放向下包含的k線低點(diǎn);
beforehigh:=high[2];
beforelow:=low[2];
thishigh:=high[3];
thislow:=low[3];
upordn:=BARPOS;
aa:=setlbound(high,2);//設(shè)置序列變量high的下界為2,起始有效變量從第2根k線開(kāi)始;
bb:=setlbound(low,2);//設(shè)置序列變量low的下界為2,起始有效變量從第2根k線開(kāi)始;
for i=3 to BARPOS do//循環(huán)開(kāi)始
begin
upordn:=i;
if up1[i-1]>0 then
begin
beforehigh=up1[i-1];
beforelow=up2[i-1];
upordn=1;
end
if dn1[i-1]>0 then
begin
beforehigh=dn1[i-1];
beforelow=dn2[i-1];
upordn=-1;
end
else begin
beforehigh=high[i-1];
beforelow=low[i-1];
end //通過(guò)該循環(huán)對(duì)向上/向下數(shù)組循環(huán)賦值(將最近的up和dn數(shù)組值賦值給前一k線的高低點(diǎn)以便于和最新的k線高低點(diǎn)進(jìn)行比較)
thishigh=high[i];
thislow=low[i];
if ((ThisHigh>=BeforeHigh) AND (ThisLow<=BeforeLow)) OR ((ThisHigh<=BeforeHigh) AND (ThisLow>=BeforeLow)) //循環(huán)開(kāi)始,開(kāi)始判斷包含關(guān)系;
then begin
if upordn=1 then //向上包含
Up1[i] = MAX(ThisHigh, BeforeHigh);
Up2[i] = MAX(ThisLow, BeforeLow);
up1[i-1]=up1[i];
up2[i-1]=up2[i];
if upordn=-1 then //向下包含
dn1[i]=MIN(thishigh,beforehigh);
dn2[i]=MIN(thislow,beforelow);
dn1[i-1]=dn1[i];
dn2[i-1]=dn2[i];
end;
else //沒(méi)有包含關(guān)系
if thishigh>beforehigh then begin//向上
up1[i]=thishigh;
up2[i]=thislow; end;
if thislow<beforelow then begin//向下
dn1[i]=thishigh;
dn2[i]=thislow; end;
cc:=stickline(up1[i]>up2[i],up1[i],up2[i],8,1,colorblue); //該語(yǔ)句參數(shù)需要調(diào)整確認(rèn)
dd:=stickline(dn1[i]<dn2[i],dn1[i],dn2[i],8,1,colorred); //該語(yǔ)句參數(shù)需要調(diào)整確認(rèn)
end;
系統(tǒng)在剛進(jìn)入循環(huán),if up1[i-1]>0 then 語(yǔ)句處,提醒說(shuō) 數(shù)組越界操作; 盼請(qǐng)各位大拿開(kāi)藥方診斷~!!!
- 金字塔客服:
技術(shù)咨詢(xún)中
- 用戶(hù)回復(fù):
多謝
- 網(wǎng)友回復(fù):
老師,有結(jié)果了么? 急盼~~~工作停頓中~~~~
- 網(wǎng)友回復(fù): 這個(gè)很難,不一定能處理出來(lái),再等等
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫(xiě)!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容