AmiBroker AFL 自學筆記-2
本帖最後由 futures.maze 於 15-3-28 21:33 編輯研究了很久,總算知道導致 LastVisibleValue()出現差一根K棒值的原因
// 2015/03/28 AmiBroker AFL 自學筆記 by futures.maze
// Syntax FirstVisibleValue( array)
// Returns Number
// 取得可見畫面內左邊第一根K棒值
// Syntax LastVisibleValue( array)
// Returns Number
// 取得可見畫面範圍內右邊第一根K棒值
// 注意:此處取得的K棒資料雖然數據無誤,但是BarCount取得的K棒數量值最多只有畫面範圍內K棒數量+30
// 同時BarIndex()取得的值,若K棒資料多過畫面可顯示範圍,則最多從左側畫面外30根K棒開始編列序號
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..... 100 (總共有100根K棒)
// 若畫面只顯示最後面20根K棒,即 81 82 83 ... 100,這個時候BarIndex()取得的數據會變成
// 012 ..... 30 31 32 ...49 (原本101根K棒會剩下50根K棒)
// ^^^^^^^^^^^^^^^^ (畫面顯示出來的20根K棒的序號)
// 51 52 53 ..... 81 82 83 ... 100 (原本K棒資料庫應是這樣的序號數據,51以前還有0 ~50但是實際上51 ~ 100被0 ~ 49取代而前面的不見了)
// 這個時候BarCount跑出來的數據也是50,而不是實際有100根K棒的資料庫
firstbi = FirstVisibleValue( BarIndex());
first_high = FirstVisibleValue( High);
lastbi = LastVisibleValue( BarIndex());
last_high = LastVisibleValue( High);
//以下很重要 以下很重要 以下很重要
// beginbi = BeginValue( BarIndex());
// endbi = EndValue( BarIndex());
// ******註******
// 當程式碼內有呼叫到BeginValue()或EndValue()任一個時,
//FirstVisibleValue( BarIndex())取得的BarIndex將會是完整K棒資料庫內真實的BarIndex
// LastVisibleValue( BarIndex())取得的BarIndex將會是完整k棒資料庫內真實的BarIndex,但卻是畫面最右邊K棒"+1根"的值
// 同時此時若有使用BarCount,得到的K棒數量也是完整K棒資料庫的K棒數量。 ^^^^^^^^^^^^^^^^^^^^^^^
printf( "FirstVisibleValue()作用\n可見畫面範圍內最左邊第一根K棒序號為 %g,最高價為 %g", firstbi, first_high); printf( "\n\n");
printf( "LastVisibleValue()作用\n可見畫面範圍內最右邊第一根K棒序號為 %g,最高價為 %g", lastbi, last_high); printf( "\n\n");
排版怪怪的,貼到AFL Formula Editor敘述看起來就不會那麼吃力
{:5_647:}{:5_647:}祝福 {:4_156:} {:4_168:} {:4_173:} {:4_91:} 恭喜~~~~~~~~~~~~繼續努力 建議您..去請教一下技術支援..或許能得到更容易了解的答案..(看對方是否了解您問什麼)
頁:
[1]