![]() |
在這個頁面顯示本主題全部的 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)
請幫我看一下為何 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 吧
2222222
2222
回覆: 請幫我看一下為何 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 吧
天數絕對足夠 請大哥看一下2個問題如何排除 ......
3624 有 175 天
4139 有 145 天
所以天數絕對足夠 .......
我只有計算到 144均線而已
Q1 : 那為何天數足夠卻無法正確判斷 ??
Q2 : 如何當 bToday72Much144 無任一根成立時不會成為無效數列 而是傳回 0
回覆: 天數絕對足夠 請大哥看一下2個問題如何排除 ......
引用:
最初由 CCHCP0699 發表
3624 有 175 天
4139 有 145 天
所以天數絕對足夠 .......
我只有計算到 144均線而已
Q1 : 那為何天數足夠卻無法正確判斷 ??
Q2 : 如何當 bToday72Much144 無任一根成立時不會成為無效數列 而是傳回 0
請老大幫我想一下要怎樣解決這問題
我按照老大的方式去修改 但是還是不正常 ㄟ
應該要出現 條件沒符合的 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 ;
222
222
回覆: 請老大幫我想一下要怎樣解決這問題
處理的對象弄錯嚕
前面是說
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.