到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > [進階教學] > 06. 設定數列有效數據起始編號 SETLBOUND 《適用4.0版》
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

06. SETLBOUND 設定數列有效數據起始編號 《適用4.0版》

【語句】SETLBOUND

【用途】
設定數列有效數據起始編號(最小編號)
可以應用此函數來設定減少運算的K棒數(數列),讓公式跑的更加快速
 
【語法】

SETLBOUND(XAry, N)


【參數】

XAry 為使用的數列
N 為設定的有效起始編號


【說明】
若前頭有指定變數, 例如 XX:=SETLBOUND(XAry, N)
運算後 XX 會等於 N,若 N 設定的值超過 XAry 數列的有效範圍(最大或最小)則變數 XX 會等於

向版主報告此篇 | 查IP位址
Old Post 2005-03-31 14:14
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

【範例1】 只顯示最近500天的收盤價線

cc:c;
xx:=SETLBOUND(cc,UBOUND(cc)-500+1);

也可寫為

cc:c;
xx:=SETLBOUND(cc,DATACOUNT-500+1);
註:DATACOUNT為目前週期K棒的總數量

這個方法有個缺點,若K棒的總數不足500根時,畫面上不會輸出任何收盤價線(xx=0)
可用下列式子解決此問題:
IF DATACOUNT>=500 THEN xx:=SETLBOUND(cc,DATACOUNT-500+1);

向版主報告此篇 | 查IP位址
Old Post 2005-03-31 14:18
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

【範例2】 用參數 N 來調整收盤價線顯示的天數(若 N = 0 則顯示全部)

cc:c;
IF DATACOUNT>=N AND N>0 THEN xx:=SETLBOUND(cc,DATACOUNT-N+1);
註: N 為參數(預設:0, 最小:0, 最大:999999)

向版主報告此篇 | 查IP位址
Old Post 2005-03-31 14:31
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

【範例3】為KD指標加入可調整計算總K棒數的功能

原 KD 指標
INPUT:N(9,1,100), M1(3,2,40), M2(3,2,40);
{Stochastic Indicator KD Line , KD , 隨機指標KD}
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100,COLORCYAN;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);

修改後的 KD 指標
CC:=CLOSE;
HH:=HIGH;
LL:=LOW;
IF DATACOUNT>=MAXKBAR AND MAXKBAR>0 THEN Begin
xx:=SETLBOUND(CC,DATACOUNT-MAXKBAR+1);
xx:=SETLBOUND(HH,DATACOUNT-MAXKBAR+1);
xx:=SETLBOUND(LL,DATACOUNT-MAXKBAR+1);
End;
INPUT:N(9,1,100), M1(3,2,40), M2(3,2,40);
{Stochastic Indicator KD Line , KD , 隨機指標KD}
RSV:=(CC-LLV(LL,N))/(HHV(HH,N)-LLV(LL,N))*100,COLORCYAN;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
註: MAXKBAR 為參數(預設:0, 最小:0, 最大:999999) 用來調整計算總K棒數

附件: KD_K.ALG
此文件已被下載 1335 次。

向版主報告此篇 | 查IP位址
Old Post 2005-03-31 15:01
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

4.0 版可由系統選項自行設定1分和5分載入的K棒數
來達到一樣的功能, 請看
http://www.chiefox.com.tw/bbs/showt...=&threadid=2625

用程式以 SETLBOUND 函數搭配參數來調整K棒數,運用上更加彈性

向版主報告此篇 | 查IP位址
Old Post 2005-03-31 15:27
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

特別注意:

若您將數據有效起始位置變的比原來更前面
(例如:現數據有效起始位置為30, 改變為1)
則原來屬無效數據的部份, 其值為亂數(可能為任何數)
應特別注意小心使用(容易錯的不知所以然)
建議您先將無效數據的部份, 值都先將其歸零再使用


歸零方法示範如下:
CC:MA(C,30); //此時 數列CC 有效起始位置為30
LbCC:=LBOUND(CC); //保存 數列CC 目前有效起始位置
x:=SETLBOUND(CC,5); //變更 數列CC 有效起始位置為5
CC:=if(barpos>=X and (barpos<LBCC or LbCC=0) ,0,CC); //將原本屬無效數據的範圍,值均設為零值

向版主報告此篇 | 查IP位址
Old Post 2006-11-08 10:37
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

歸零的另一簡便方法(與前例結果相同)
CC:MA(C,30);
CC:=if(barpos>=LBOUND(CC) and LBOUND(CC),CC,0);
x:=SETLBOUND(CC,5);

向版主報告此篇 | 查IP位址
Old Post 2008-07-24 13:47
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為06:40 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法核准
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們