奇狐社區論壇
在這個頁面顯示本主題全部的 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)


由 Markchu7 在 2014-03-25 15:25 發表:

[問題]如何只顯示最後一個循環的編號?

源碼如下:
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.如何只顯示最後一個循環的編號?而不會重疊?(以上是指繪圖效果)如果可以有只保留單獨一個循環(是連續的單獨一個循環!而非歷史的最後一個循環)的寫法更好!(以上是指公式效果)


由 cgjj 在 2014-03-26 09:09 發表:

回覆: [問題]如何只顯示最後一個循環的編號?

引用:
最初由 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
:=OCC:=CLL:=L;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>AND H>STDBKH;
SNo:=C*0;
For 
iLbound(N1BKto datacount do begin
  
if N1BK[ithen begin
    CN
:=1SNo[i]:=CNRL:=LL[i];
  
end else begin
    
if LL[i]<RL and OO[i]>CC[ithen begin
      CN
:=CN+1SNo[i]:=CNRL:=LL[i];
    
end;
  
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;


由 Markchu7 在 2014-03-26 18:43 發表:

感謝指導!正合所需!


由 Markchu7 在 2014-03-27 14:54 發表:

再請指導:如果兩個循環中至少要包含一根C>=O的K棒要如何寫?(我想到的是:SUM(C>=O,BARSLAST(SNo<>0)+1)>0,的方式,可是這樣應該要用迴圈,我就不會了!
附圖框框處就是例子(只不過是紅棒罷了),請指導!


由 Markchu7 在 2014-03-27 15:07 發表:

補一個黑K棒的圖!


由 cgjj 在 2014-03-27 16:23 發表:

引用:
最初由 Markchu7 發表
再請指導:如果兩個循環中至少要包含一根C>=O的K棒要如何寫?(我想到的是:SUM(C>=O,BARSLAST(SNo<>0)+1)>0,的方式,可是這樣應該要用迴圈,我就不會了!
附圖框框處就是例子(只不過是紅棒罷了),請指導!



何謂兩個循環?
看不是很懂您意思


由 Markchu7 在 2014-03-27 16:52 發表:

SNo=1為一次循環的開始SNo=2,SNo=3......到下一次SNo=1之間至少要包含一根C>=O的K棒!謝謝!


由 cgjj 在 2014-03-27 17:23 發表:

引用:
最初由 Markchu7 發表
SNo=1為一次循環的開始SNo=2,SNo=3......到下一次SNo=1之間至少要包含一根C>=O的K棒!謝謝!


原碼:

OO
:=OCC:=CLL:=L;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>AND H>STDBKH;
SNo:=C*0Rst:=1;
For 
iLbound(N1BKto datacount do begin
  
if N1BK[i] and Rst=1 then begin
    CN
:=1SNo[i]:=CNRL:=LL[i]; Rst:=0;
  
end else begin
    
if CC[i]>=OO[ithen begin
      Rst
:=1;
    
end else if LL[i]<RL and OO[i]>CC[ithen begin
      CN
:=CN+1SNo[i]:=CNRL:=LL[i];
    
end;
  
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;


由 Markchu7 在 2014-03-27 22:21 發表:

感謝總版主辛勞,為狐友解惑!
比對總版主指導的公式發現有些疑問,再請指導!
附圖虛線的源碼如下:
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繼續算是我希望呈現的效果!
再次感謝總版主的辛勞!


由 cgjj 在 2014-03-28 08:37 發表:

引用:
最初由 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繼續算是我希望呈現的效果!
再次感謝總版主的辛勞!



正常的唷
因為右邊虛線的前面區域
SNo1~SNo2之間, 有包含1根 C>=O 的K棒(紅K)

故右邊虛線那根(SNo1)是新的循環開始


由 Markchu7 在 2014-03-28 09:25 發表:

喔!原來如此!那就是我的錯!
我的原意是:
SNo<>0跟SNo=1之間包含至少一根C>=O而非SNo=1跟SNo=1之間包含至少一根C>=O!讓右邊可以呈現出左邊的效果!可以麻煩總版主再次協助嗎?感謝您!


由 cgjj 在 2014-03-28 09:43 發表:

引用:
最初由 Markchu7 發表
喔!原來如此!那就是我的錯!
我的原意是:
SNo<>0跟SNo=1之間包含至少一根C>=O而非SNo=1跟SNo=1之間包含至少一根C>=O!讓右邊可以呈現出左邊的效果!可以麻煩總版主再次協助嗎?感謝您!



原碼:

OO
:=OCC:=CLL:=L;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>AND H>STDBKH;
SNo:=C*0Rst:=1;
For 
iLbound(N1BKto datacount do begin
  
if N1BK[i] and Rst=1 then begin
    CN
:=1SNo[i]:=CNRL:=LL[i]; Rst:=0;
  
end else begin
    
if CC[i]>=OO[ithen begin
      Rst
:=1;
    
end else if LL[i]<RL and OO[i]>CC[ithen begin
      CN
:=CN+1SNo[i]:=CNRL:=LL[i]; Rst:=0;
    
end;
  
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;


由 Markchu7 在 2014-03-28 10:26 發表:

感謝指導!有您真好!


由 cgjj 在 2014-03-28 10:37 發表:

引用:
最初由 Markchu7 發表
感謝指導!有您真好!


不客氣 ^^


由 Markchu7 在 2014-03-28 15:50 發表:

附圖虛線源碼:DATE<>REF(DATE,1);
請問規則可以針對開盤作個別的處理嗎?
我知道開盤當根無法形成新的循環是因為'SNo<>0跟SNo=1之間包含至少一根C>=O'這個條件!也就是說如果是開盤當根K棒,不需受此條件限制!如此的規則效果是否能實現?
不好意思再次麻煩,都怪自己的思考邏輯不夠慎密,盤面狀況又很多,沒法子一次全部考慮進去,只好再次麻煩您!謝謝!


由 cgjj 在 2014-03-28 17:08 發表:

引用:
最初由 Markchu7 發表
附圖虛線源碼:DATE<>REF(DATE,1);
請問規則可以針對開盤作個別的處理嗎?
我知道開盤當根無法形成新的循環是因為'SNo<>0跟SNo=1之間包含至少一根C>=O'這個條件!也就是說如果是開盤當根K棒,不需受此條件限制!如此的規則效果是否能實現?
不好意思再次麻煩,都怪自己的思考邏輯不夠慎密,盤面狀況又很多,沒法子一次全部考慮進去,只好再次麻煩您!謝謝!



原碼:

OO
:=OCC:=CLL:=L
DECK:=date<>ref(date,1) or barpos=1;
STDBKH:=REF(REF(H,BARSLAST(O>C)),1),COLORBLUE;
N1BK:=O>AND H>STDBKH;
SNo:=C*0Rst:=1;
For 
iLbound(N1BKto datacount do begin
  
if DECK[ithen Rst:=1;
  if 
N1BK[i] and Rst=1 then begin
    CN
:=1SNo[i]:=CNRL:=LL[i]; Rst:=0;
  
end else begin
    
if CC[i]>=OO[ithen begin
      Rst
:=1;
    
end else if LL[i]<RL and OO[i]>CC[ithen begin
      CN
:=CN+1SNo[i]:=CNRL:=LL[i]; Rst:=0;
    
end;
  
end;
end;
DRAWNUMBER(SNo>0,H,SNo,0),COLORBLACK,PXUP65,ALIGN0;


由 Markchu7 在 2014-03-31 12:08 發表:

感謝指導!
再請教:前一循環SNo=1以及前二循環SNo=1,如何表示?謝謝!


由 cgjj 在 2014-03-31 13:49 發表:

引用:
最初由 Markchu7 發表
感謝指導!
再請教:前一循環SNo=1以及前二循環SNo=1,如何表示?謝謝!



運用 SUMBARS 即可

請參考這範例
http://www.chiefox.com.tw/bbs/showt...73334#post73334


由 Markchu7 在 2014-03-31 14:14 發表:

謝謝!一直找不到這篇!


由 Markchu7 在 2014-04-15 10:10 發表:

請教總版主:
空守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)產生!
請問是要在迴圈中處理嗎?請指導!


由 cgjj 在 2014-04-15 11:24 發表:

引用:
最初由 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)產生!
請問是要在迴圈中處理嗎?請指導!



S1:=SNoB>0 or barpos=0;
S2:=長黑 or barpos=0;
SS:=S1+S2*2;
SS:=ref(SS,barslast(SS<>0));
空守S:=if(SS=1,REF(H,BARSLAST(SNoB>0)),if(SS=2,(O+C)/2,0));


由 Markchu7 在 2014-04-15 12:08 發表:

感謝總版主迅速的解答!再加碼一個問題!
在黑K但不斷創空守S高的狀況下,空守S將會呈階梯狀升高!
請問空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 只能'連續'發生2次,連續的第3次以後都取連續的第2次空守S的值為值!這樣的想法可以實現嗎?請指導!


由 cgjj 在 2014-04-15 12:14 發表:

引用:
最初由 Markchu7 發表
感謝總版主迅速的解答!再加碼一個問題!
在黑K但不斷創空守S高的狀況下,空守S將會呈階梯狀升高!
請問空守S<>REF(空守S,1) AND 空守S>REF(空守S,1) 只能'連續'發生2次,連續的第3次以後都取連續的第2次空守S的值為值!這樣的想法可以實現嗎?請指導!



次數計算的起算點基準為何?


由 Markchu7 在 2014-04-15 12:32 發表:

連續指的是狀況而非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) 的狀況!謝謝!


由 cgjj 在 2014-04-15 16:05 發表:

引用:
最初由 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) 的狀況!謝謝!



以後都取連續的第2次空守S ....

那麼
空守S<>REF(空守S,1) AND 空守S<REF(空守S,1)
這狀況就永遠都不可能再次發生了

因為都是後續 空守S 都是同一數值了


由 Markchu7 在 2014-04-15 17:08 發表:

還是總版主厲害!本來想說自己處理多守的部分,後來發現如此根本會牛頭不對馬嘴!以下是完整源碼!

空守:=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) '的狀況,請指導!


由 cgjj 在 2014-04-16 14:43 發表:

引用:
最初由 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) '的狀況,請指導!



問題跟前面說的一樣呀....

【操作線】由【操作】決定
而您又要用【操作】=-1 時, 去限制 【操作線】發生的狀況

到底是
【操作線】決定【操作】
還是
【操作】決定【操作線】

互相矛盾 !!!


由 Markchu7 在 2014-04-16 16:20 發表:

說的也是,感謝總版主點出問題核心,這才了解邏輯的錯誤所在!
感恩啦!下次有不會的再麻煩了!


全部時間均為台灣時間, 現在時間為16:54
在這個頁面顯示本主題全部的 28 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.