奇狐社區論壇
在這個頁面顯示本主題全部的 8 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請幫我看一下為何 Lne72Dys144Cnt 會不出現任何數字 完全沒符合應該是出現 0 吧 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=16237)


由 CCHCP0699 在 2011-11-23 15:57 發表:

請幫我看一下為何 Lne72Dys144Cnt 會不出現任何數字 完全沒符合應該是出現 0 吧

Variable : M72 = 0 , M144 = 0 , b72Much144Flg = 0 ;
// 先計算各均線的值
CNow := Close ;

M72 := ma( CNow , 72 ) ;
M144 := ma( CNow , 144 ) ;

bM72Much144 : M72 > M144 ;

// 今天第一天多排 72 144
bToday72Much144 : bM72Much144 and not(ref( bM72Much144 ,1)) ;
// 計算 "全多排" 出現已經多少天了
Lne72Dys144Cnt : BarsLast( bToday72Much144 ) + 1 ;

==============================================
上面的 Lne72Dys144Cnt 目的是要計算 條件已經符合多少天
但是 在 3624 跟 4139 這2檔股票會異常 不出現任何資料

請幫我看一下為何 Lne72Dys144Cnt 會不出現任何數字 完全沒符合應該是出現 0 吧


由 CCHCP0699 在 2011-11-23 15:58 發表:

2222222

2222


由 cgjj 在 2011-11-23 17:23 發表:

回覆: 請幫我看一下為何 Lne72Dys144Cnt 會不出現任何數字 完全沒符合應該是出現 0 吧

引用:
最初由 CCHCP0699 發表
Variable : M72 = 0 , M144 = 0 , b72Much144Flg = 0 ;
// 先計算各均線的值
CNow := Close ;

M72 := ma( CNow , 72 ) ;
M144 := ma( CNow , 144 ) ;

bM72Much144 : M72 > M144 ;

// 今天第一天多排 72 144
bToday72Much144 : bM72Much144 and not(ref( bM72Much144 ,1)) ;
// 計算 "全多排" 出現已經多少天了
Lne72Dys144Cnt : BarsLast( bToday72Much144 ) + 1 ;

==============================================
上面的 Lne72Dys144Cnt 目的是要計算 條件已經符合多少天
但是 在 3624 跟 4139 這2檔股票會異常 不出現任何資料

請幫我看一下為何 Lne72Dys144Cnt 會不出現任何數字 完全沒符合應該是出現 0 吧



1.商品K棒數不足, 無法計算
2.條件 bToday72Much144 無任一根成立時
以上兩狀況會讓, Lne72Dys144Cnt 成為一個無效數列
無效數列是不會輸出任何數值或線條的


由 CCHCP0699 在 2011-11-23 17:57 發表:

天數絕對足夠 請大哥看一下2個問題如何排除 ......

3624 有 175 天

4139 有 145 天

所以天數絕對足夠 .......
我只有計算到 144均線而已


Q1 : 那為何天數足夠卻無法正確判斷 ??

Q2 : 如何當 bToday72Much144 無任一根成立時不會成為無效數列 而是傳回 0


由 cgjj 在 2011-11-24 00:19 發表:

回覆: 天數絕對足夠 請大哥看一下2個問題如何排除 ......

引用:
最初由 CCHCP0699 發表
3624 有 175 天

4139 有 145 天

所以天數絕對足夠 .......
我只有計算到 144均線而已


Q1 : 那為何天數足夠卻無法正確判斷 ??

Q2 : 如何當 bToday72Much144 無任一根成立時不會成為無效數列 而是傳回 0



Re:Q1
不是無法正確判斷, K棒雖然足夠
並不代表 bM72Much144 的條件(M72 > M144) 必定有成立過
若 bM72Much144 沒成立過, 後面的 bToday72Much144 就不會成立

Re:Q2
if lbound(bToday72Much144)=0 then bToday72Much144:=0;


由 CCHCP0699 在 2011-11-24 08:32 發表:

請老大幫我想一下要怎樣解決這問題

我按照老大的方式去修改 但是還是不正常 ㄟ

應該要出現 條件沒符合的 k00 >> -5

結果居然出現 條件符合的 KKK >> 10

重點是 Lne72Dys144Cnt 也沒有出現

這應該是 奇狐程式 判斷錯誤 吧 . ...
請老大幫我想一下要怎樣解決這問題

==================================

{ I111118C }
Variable : M72 = 0 , M144 = 0 ;
Variable : b72Much144Flg = 0 ;

// 先計算各均線的值
CNow := Close ;

M72 := ma( CNow , 72 ) ;
M144 := ma( CNow , 144 ) ;

bM72Much144 : M72 > M144 and ( M72 >= 1 ) and ( M144 >= 1 );

// 今天第一天多排 72 144
bToday72Much144 : bM72Much144 and not(ref( bM72Much144 ,1)) ;

if lbound(bToday72Much144 ) = 0 then begin
Lne72Dys144Cnt := 0 ;
k00 :-5 ;
End;
else begin
Lne72Dys144Cnt := BarsLast( bToday72Much144 ) + 1 ;
kkk :10 ;
end;
k1 : Lne72Dys144Cnt ;

// 計算 "全多排" 出現已經多少天了
// Lne72Dys144Cnt : BarsLast( bToday72Much144 ) + 1 ;


由 CCHCP0699 在 2011-11-24 08:32 發表:

222

222


由 cgjj 在 2011-11-24 19:05 發表:

回覆: 請老大幫我想一下要怎樣解決這問題

處理的對象弄錯嚕

前面是說
1.商品K棒數不足, 無法計算
2.條件 bToday72Much144 無任一根成立時
以上兩狀況會讓 Lne72Dys144Cnt 成為一個無效數列

並非是講 bToday72Much144 會成為無效數列

故要處理無效數列的是 Lne72Dys144Cnt 不是 bToday72Much144

原回答Q2 需改處理為
if lbound(Lne72Dys144Cnt)=0 then Lne72Dys144Cnt:=0;

=================================================
barslast(條件) 是求上一次條件成立的位置
若條件從來都沒有成立過, 那麼 barslast(條件) 會得到無效數列


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


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

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