![]() |
在這個頁面顯示本主題全部的 28 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題]如何只顯示最後一個循環的編號? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=18419)
[問題]如何只顯示最後一個循環的編號?
源碼如下:
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>C AND H>STDBKH;
N1BKL:=REF(L,BARSLAST(N1BK));
N2BK:=L<N1BKL AND O>C AND SUM(L<N1BKL AND O>C,BARSLAST(N1BK)+1)=1;
N2BKL:=REF(L,BARSLAST(N2BK));
N3BK:=L<N2BKL AND O>C AND SUM(L<N2BKL AND O>C,BARSLAST(N2BK)+1)=1;
N3BKL:=REF(L,BARSLAST(N3BK));
N4BK:=L<N3BKL AND O>C AND SUM(L<N3BKL AND O>C,BARSLAST(N3BK)+1)=1;
N4BKL:=REF(L,BARSLAST(N4BK));
N5BK:=L<N4BKL AND O>C AND SUM(L<N4BKL AND O>C,BARSLAST(N4BK)+1)=1;
DRAWTEXT(N1BK,H,'1'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N2BK,H,'2'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N3BK,H,'3'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N4BK,H,'4'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N5BK,H,'5'),COLORBLACK,PXUP65,ALIGN0;
請指導:1.有無簡潔的寫法不需要一根一根地寫下去?
2.如何只顯示最後一個循環的編號?而不會重疊?(以上是指繪圖效果)如果可以有只保留單獨一個循環(是連續的單獨一個循環!而非歷史的最後一個循環)的寫法更好!(以上是指公式效果)
回覆: [問題]如何只顯示最後一個循環的編號?
引用:
最初由 Markchu7 發表
源碼如下:
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>C AND H>STDBKH;
N1BKL:=REF(L,BARSLAST(N1BK));
N2BK:=L<N1BKL AND O>C AND SUM(L<N1BKL AND O>C,BARSLAST(N1BK)+1)=1;
N2BKL:=REF(L,BARSLAST(N2BK));
N3BK:=L<N2BKL AND O>C AND SUM(L<N2BKL AND O>C,BARSLAST(N2BK)+1)=1;
N3BKL:=REF(L,BARSLAST(N3BK));
N4BK:=L<N3BKL AND O>C AND SUM(L<N3BKL AND O>C,BARSLAST(N3BK)+1)=1;
N4BKL:=REF(L,BARSLAST(N4BK));
N5BK:=L<N4BKL AND O>C AND SUM(L<N4BKL AND O>C,BARSLAST(N4BK)+1)=1;
DRAWTEXT(N1BK,H,'1'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N2BK,H,'2'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N3BK,H,'3'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N4BK,H,'4'),COLORBLACK,PXUP65,ALIGN0;
DRAWTEXT(N5BK,H,'5'),COLORBLACK,PXUP65,ALIGN0;
請指導:1.有無簡潔的寫法不需要一根一根地寫下去?
2.如何只顯示最後一個循環的編號?而不會重疊?(以上是指繪圖效果)如果可以有只保留單獨一個循環(是連續的單獨一個循環!而非歷史的最後一個循環)的寫法更好!(以上是指公式效果)
原碼:
OO:=O; CC:=C; LL:=L;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>C AND H>STDBKH;
SNo:=C*0;
For i= Lbound(N1BK) to datacount do begin
if N1BK[i] then begin
CN:=1; SNo[i]:=CN; RL:=LL[i];
end else begin
if LL[i]<RL and OO[i]>CC[i] then begin
CN:=CN+1; SNo[i]:=CN; RL:=LL[i];
end;
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;
感謝指導!正合所需!
再請指導:如果兩個循環中至少要包含一根C>=O的K棒要如何寫?(我想到的是:SUM(C>=O,BARSLAST(SNo<>0)+1)>0,的方式,可是這樣應該要用迴圈,我就不會了!
附圖框框處就是例子(只不過是紅棒罷了),請指導!
補一個黑K棒的圖!
引用:
最初由 Markchu7 發表
再請指導:如果兩個循環中至少要包含一根C>=O的K棒要如何寫?(我想到的是:SUM(C>=O,BARSLAST(SNo<>0)+1)>0,的方式,可是這樣應該要用迴圈,我就不會了!
附圖框框處就是例子(只不過是紅棒罷了),請指導!
SNo=1為一次循環的開始SNo=2,SNo=3......到下一次SNo=1之間至少要包含一根C>=O的K棒!謝謝!
引用:
最初由 Markchu7 發表
SNo=1為一次循環的開始SNo=2,SNo=3......到下一次SNo=1之間至少要包含一根C>=O的K棒!謝謝!
原碼:
OO:=O; CC:=C; LL:=L;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>C AND H>STDBKH;
SNo:=C*0; Rst:=1;
For i= Lbound(N1BK) to datacount do begin
if N1BK[i] and Rst=1 then begin
CN:=1; SNo[i]:=CN; RL:=LL[i]; Rst:=0;
end else begin
if CC[i]>=OO[i] then begin
Rst:=1;
end else if LL[i]<RL and OO[i]>CC[i] then begin
CN:=CN+1; SNo[i]:=CN; RL:=LL[i];
end;
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;
感謝總版主辛勞,為狐友解惑!
比對總版主指導的公式發現有些疑問,再請指導!
附圖虛線的源碼如下:
VERTLINE(ALL(C<O,2) AND H>REF(H,1) AND L<REF(L,1)),COLORBLUE,LINEDOT;
請教:1.為何左邊是由1到2繼續算,而右邊則是由2跳回1重新算?
2.左邊由1到2繼續算是我希望呈現的效果!
再次感謝總版主的辛勞!
引用:
最初由 Markchu7 發表
感謝總版主辛勞,為狐友解惑!
比對總版主指導的公式發現有些疑問,再請指導!
附圖虛線的源碼如下:
VERTLINE(ALL(C<O,2) AND H>REF(H,1) AND L<REF(L,1)),COLORBLUE,LINEDOT;
請教:1.為何左邊是由1到2繼續算,而右邊則是由2跳回1重新算?
2.左邊由1到2繼續算是我希望呈現的效果!
再次感謝總版主的辛勞!
喔!原來如此!那就是我的錯!
我的原意是:
SNo<>0跟SNo=1之間包含至少一根C>=O而非SNo=1跟SNo=1之間包含至少一根C>=O!讓右邊可以呈現出左邊的效果!可以麻煩總版主再次協助嗎?感謝您!
引用:
最初由 Markchu7 發表
喔!原來如此!那就是我的錯!
我的原意是:
SNo<>0跟SNo=1之間包含至少一根C>=O而非SNo=1跟SNo=1之間包含至少一根C>=O!讓右邊可以呈現出左邊的效果!可以麻煩總版主再次協助嗎?感謝您!
原碼:
OO:=O; CC:=C; LL:=L;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>C AND H>STDBKH;
SNo:=C*0; Rst:=1;
For i= Lbound(N1BK) to datacount do begin
if N1BK[i] and Rst=1 then begin
CN:=1; SNo[i]:=CN; RL:=LL[i]; Rst:=0;
end else begin
if CC[i]>=OO[i] then begin
Rst:=1;
end else if LL[i]<RL and OO[i]>CC[i] then begin
CN:=CN+1; SNo[i]:=CN; RL:=LL[i]; Rst:=0;
end;
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;
感謝指導!有您真好!
引用:
最初由 Markchu7 發表
感謝指導!有您真好!
附圖虛線源碼:DATE<>REF(DATE,1);
請問規則可以針對開盤作個別的處理嗎?
我知道開盤當根無法形成新的循環是因為'SNo<>0跟SNo=1之間包含至少一根C>=O'這個條件!也就是說如果是開盤當根K棒,不需受此條件限制!如此的規則效果是否能實現?
不好意思再次麻煩,都怪自己的思考邏輯不夠慎密,盤面狀況又很多,沒法子一次全部考慮進去,只好再次麻煩您!謝謝!
引用:
最初由 Markchu7 發表
附圖虛線源碼:DATE<>REF(DATE,1);
請問規則可以針對開盤作個別的處理嗎?
我知道開盤當根無法形成新的循環是因為'SNo<>0跟SNo=1之間包含至少一根C>=O'這個條件!也就是說如果是開盤當根K棒,不需受此條件限制!如此的規則效果是否能實現?
不好意思再次麻煩,都怪自己的思考邏輯不夠慎密,盤面狀況又很多,沒法子一次全部考慮進去,只好再次麻煩您!謝謝!
原碼:
OO:=O; CC:=C; LL:=L;
DECK:=date<>ref(date,1) or barpos=1;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>C AND H>STDBKH;
SNo:=C*0; Rst:=1;
For i= Lbound(N1BK) to datacount do begin
if DECK[i] then Rst:=1;
if N1BK[i] and Rst=1 then begin
CN:=1; SNo[i]:=CN; RL:=LL[i]; Rst:=0;
end else begin
if CC[i]>=OO[i] then begin
Rst:=1;
end else if LL[i]<RL and OO[i]>CC[i] then begin
CN:=CN+1; SNo[i]:=CN; RL:=LL[i]; Rst:=0;
end;
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;
感謝指導!
再請教:前一循環SNo=1以及前二循環SNo=1,如何表示?謝謝!
引用:
最初由 Markchu7 發表
感謝指導!
再請教:前一循環SNo=1以及前二循環SNo=1,如何表示?謝謝!
謝謝!一直找不到這篇!
請教總版主:
空守S:=REF(H,BARSLAST(SNoB>0));
但是在長黑這個條件下空守S取值為(O+C)/2;我用下列寫法
空守S:=IF(長黑,(O+C)/2,REF(H,BARSLAST(SNoB>0)));
空守:=REF(空守S,BARSLAST(空守S<>REF(空守S,1)));
無法達到我想要的效果!
如此寫法只有長黑成立當根是取(O+C)/2,我想要的是長黑K以後的取值都是(O+C)/2,直到(SNoB>0)產生!
請問是要在迴圈中處理嗎?請指導!
引用:
最初由 Markchu7 發表
請教總版主:
空守S:=REF(H,BARSLAST(SNoB>0));
但是在長黑這個條件下空守S取值為(O+C)/2;我用下列寫法
空守S:=IF(長黑,(O+C)/2,REF(H,BARSLAST(SNoB>0)));
空守:=REF(空守S,BARSLAST(空守S<>REF(空守S,1)));
無法達到我想要的效果!
如此寫法只有長黑成立當根是取(O+C)/2,我想要的是長黑K以後的取值都是(O+C)/2,直到(SNoB>0)產生!
請問是要在迴圈中處理嗎?請指導!
感謝總版主迅速的解答!再加碼一個問題!
在黑K但不斷創空守S高的狀況下,空守S將會呈階梯狀升高!
請問空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 只能'連續'發生2次,連續的第3次以後都取連續的第2次空守S的值為值!這樣的想法可以實現嗎?請指導!
引用:
最初由 Markchu7 發表
感謝總版主迅速的解答!再加碼一個問題!
在黑K但不斷創空守S高的狀況下,空守S將會呈階梯狀升高!
請問空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 只能'連續'發生2次,連續的第3次以後都取連續的第2次空守S的值為值!這樣的想法可以實現嗎?請指導!
連續指的是狀況而非K棒以狀況為準:即
空守S<>REF(空守S,1) AND 空守S<REF(空守S,1) 此狀況後只能'連續'發生2次空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 的狀況!當有空守S<>REF(空守S,1) AND 空守S<REF(空守S,1) 再次發生之後,才可以再有'連續'發生2次空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 的狀況!謝謝!
引用:
最初由 Markchu7 發表
連續指的是狀況而非K棒以狀況為準:即
空守S<>REF(空守S,1) AND 空守S<REF(空守S,1) 此狀況後只能'連續'發生2次空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 的狀況!當有空守S<>REF(空守S,1) AND 空守S<REF(空守S,1) 再次發生之後,才可以再有'連續'發生2次空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 的狀況!謝謝!
還是總版主厲害!本來想說自己處理多守的部分,後來發現如此根本會牛頭不對馬嘴!以下是完整源碼!
空守:=REF(H,BARSLAST(SNoB>0));
多守:=REF(L,BARSLAST(SNoR>0));
突破:=IF(DATATYPE<6,(CK AND SNoR<>0) OR CROSS(C,空守+0.5),CROSS(C,空守+0.5));
跌破:=IF(DATATYPE<6,(CK AND SNoB<>0) OR CROSS(多守-0.5,C),CROSS(多守-0.5,C));
【操作】:=突破-跌破;
【操作】:REF(【操作】,BARSLAST(【操作】<>0)),COLORBLACK,LINETHICK;
【操作線】:IF(【操作】>0,多守,空守);
要的效果是【操作】=-1時,只能'連續'發生2次【操作線】<>REF(【操作線】,1) AND 【操作線】>REF(【操作線】,1) 的狀況,第3次則依然取用前一個【操作線】的值,直到發生'突破或【操作線】<>REF(【操作線】,1) AND 【操作線】<REF(【操作線】,1) '的狀況,請指導!
引用:
最初由 Markchu7 發表
還是總版主厲害!本來想說自己處理多守的部分,後來發現如此根本會牛頭不對馬嘴!以下是完整源碼!
空守:=REF(H,BARSLAST(SNoB>0));
多守:=REF(L,BARSLAST(SNoR>0));
突破:=IF(DATATYPE<6,(CK AND SNoR<>0) OR CROSS(C,空守+0.5),CROSS(C,空守+0.5));
跌破:=IF(DATATYPE<6,(CK AND SNoB<>0) OR CROSS(多守-0.5,C),CROSS(多守-0.5,C));
【操作】:=突破-跌破;
【操作】:REF(【操作】,BARSLAST(【操作】<>0)),COLORBLACK,LINETHICK;
【操作線】:IF(【操作】>0,多守,空守);
要的效果是【操作】=-1時,只能'連續'發生2次【操作線】<>REF(【操作線】,1) AND 【操作線】>REF(【操作線】,1) 的狀況,第3次則依然取用前一個【操作線】的值,直到發生'突破或【操作線】<>REF(【操作線】,1) AND 【操作線】<REF(【操作線】,1) '的狀況,請指導!
說的也是,感謝總版主點出問題核心,這才了解邏輯的錯誤所在!
感恩啦!下次有不會的再麻煩了!
全部時間均為台灣時間, 現在時間為16:54 | 在這個頁面顯示本主題全部的 28 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.