[原創]大智慧FILTER函數的再測試,自打補丁的方法。 [大智慧]
-
咨詢詳情:
設計了四段測試程序,有用者自能解讀,上源碼。暫時無圖片的網址。
{找出K線連陽三天的地方,并將連陽3天的首日K線用黃色顯示。}
{這里給出4段測試程序,大家可分別試一試,試過以后在找結論}
{
最好用近幾天的上證指數K線圖測試,2014-03-20以后很典型。
稍微改一下后移植到通達信上測試,結果也差不多。看來這兩家軟件FILTER的算內核法差不多!
}{測試1 原始測試}
連陽3天:=COUNT(C>O,3)=3;
DRAWTEXT(連陽3天,H,'↖連陽3天的確立日',25),COLOR0099FF;BACKSET100:=BACKSET(連陽3天,3);
FILTER100:=FILTER(BACKSET100,2);
BBB:BACKSET100,LINETHICK0;
FFF:FILTER100,LINETHICK0;STICKLINE(FILTER100,OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FILTER100,LOW,'↖連陽3首日',5),COLOR0099FF;
DRAWTEXT(FILTER100,LOW,NUMTOSTR(FFF) ,25),COLOR0099FF;
{測試2 輸出顯示BACKSET的測試 結果如預期的一樣-正確 }
{
連陽3天:=COUNT(C>O,3)=3;
DRAWTEXT(連陽3天,H,'↖連陽3天的確立日',25),COLOR0099FF;BACKSET100:=BACKSET(連陽3天,3);
FILTER100:=FILTER(BACKSET100,2);
BBB:BACKSET100,LINETHICK0;
FFF:FILTER100,LINETHICK0;STICKLINE(BACKSET100,OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(BACKSET100,LOW,'↖連陽3首日',5),COLOR0099FF;
DRAWTEXT(BACKSET100,LOW,NUMTOSTR(FFF) ,25),COLOR0099FF;
}{測試3 輸出顯示FILTER的一個拷貝,結果同原測試1}
{
連陽3天:=COUNT(C>O,3)=3;
DRAWTEXT(連陽3天,H,'↖連陽3天的確立日',25),COLOR0099FF;BACKSET100:=BACKSET(連陽3天,3);
FILTER100:=FILTER(BACKSET100,2);BBB:BACKSET100,LINETHICK0;
FFF:FILTER100,LINETHICK0;STICKLINE(FFF,OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FFF,LOW,'↖連陽3首日',5),COLOR0099FF;
DRAWTEXT(FFF,LOW,NUMTOSTR(FFF) ,25),COLOR0099FF;
}
{測試4 用以毒攻毒的辦法打補丁,是程序輸出顯示正確的結果-不得已而為之。這也是我在編制“黃金柱主圖”,時所采用的方法!}
{ 用在FILTER應該為0的區域,用建立新的FILTER指針的方法顯示 新指針為 FILTER101、FILTER102、 FILTER103、 FILTER104 新指針在程序解釋器中肯定是在新的內存緩沖區建立的,一般不會與其他的指針沖突}
{ 在測試中,FILTER的結果用了屏幕頂行顯示、繪圖函數輸出、字符串函數顯示等方法輸出。}
{用大量的代碼,為FILTER擦才屁股!}{
連陽3天:=COUNT(C>O,3)=3;
DRAWTEXT(連陽3天,H,'↖連陽3天的確立日',25),COLOR0099FF;
BACKSET100:=BACKSET(連陽3天,3);
FILTER100:=FILTER(BACKSET100,2);
STICKLINE(FILTER100 AND NOT(REF(FILTER100,3)),OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FILTER100 AND NOT(REF(FILTER100,3)) ,LOW,'↖連陽3首日1',5),COLOR0099FF;BBB:BACKSET100,LINETHICK0;
FFF:FILTER100,LINETHICK0;
連陽3天1:=連陽3天 AND REF(連陽3天,1);
DRAWTEXT(連陽3天1,H,'↖連陽3天的確立日1',25),COLOR0099FF;
BACKSET101:=BACKSET(連陽3天1,3) AND NOT(REF(連陽3天1,1));
FILTER101:=FILTER(BACKSET101,2);
STICKLINE(FILTER101 AND NOT(REF(FILTER101,3)),OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FILTER101 AND NOT(REF(FILTER101,3)) ,LOW,'↖連陽3首日2',5),COLOR0099FF;BBB1:BACKSET101,LINETHICK0;
FFF1:FILTER101,LINETHICK0;
連陽3天2:=連陽3天 AND REF(連陽3天,2);
DRAWTEXT(連陽3天2,H*1.01,'↖連陽3天的確立日2',25),COLOR0099FF;
BACKSET102:=BACKSET(連陽3天2,3) AND NOT(REF(連陽3天1,2));
FILTER102:=FILTER(BACKSET102,2);
STICKLINE(FILTER102 AND NOT(REF(FILTER102,3)),OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FILTER102 AND NOT(REF(FILTER102,3)) ,LOW,'↖連陽3首日3',5),COLOR0099FF;連陽3天3:=連陽3天 AND REF(連陽3天,3);
DRAWTEXT(連陽3天2,H*1.005,'↖連陽3天的確立日3',25),COLOR0099FF;
BACKSET103:=BACKSET(連陽3天3,3) AND NOT(REF(連陽3天1,3));
FILTER103:=FILTER(BACKSET103,2);
STICKLINE(FILTER103 AND NOT(REF(FILTER103,3)),OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FILTER103 AND NOT(REF(FILTER103,3)) ,LOW,'↖連陽3首日3',5),COLOR0099FF;
連陽3天4:=連陽3天 AND REF(連陽3天,3);
DRAWTEXT(連陽3天4,H*0.993,'↖連陽3天的確立日4',25),COLOR0099FF;
BACKSET104:=BACKSET(連陽3天4,3) AND NOT(REF(連陽3天1,4));
FILTER104:=FILTER(BACKSET104,2);
STICKLINE(FILTER104 AND NOT(REF(FILTER104,3)),OPEN,CLOSE,6,0),COLOR0099FF;
DRAWTEXT(FILTER104 AND NOT(REF(FILTER104,3)) ,LOW,'↖連陽3首日3',5),COLOR0099FF;
}{
不多解釋了,大家能看懂的,大家說我們程序員好當嗎?如果題目是連陽9天,得累死人!
}
{
另外發現:
當BACKSET函數的第一個參數,如這里的‘連陽3天’,是由若干條件語句分行形成的一個復雜條件判斷結果時,千萬不要在屏幕頂直接輸出!會亂的一塌糊涂。一定要想這里一樣輸出其結果的拷貝。
當用IF THEN BEGIN END ELSE IF....結構時,FILTER不能出現在塊中,程序會陷入死循環甚至崩潰!到現在也未找出規律。
}{};
- 大智慧客服:
您好,非常抱歉,如是一般的公式,可以在軟件內輸入sq,在社區界面點左側“技術支持”來咨詢和確認相關公式問題。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容