futures.maze 發表於 15-3-28 21:30

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敘述看起來就不會那麼吃力

manhavecoco 發表於 15-3-28 21:38

{:5_647:}{:5_647:}祝福

te1563278 發表於 15-3-28 23:23

{:4_156:} {:4_168:} {:4_173:} {:4_91:}

stanley0000 發表於 16-2-19 14:30

恭喜~~~~~~~~~~~~繼續努力

keymaker 發表於 16-2-21 20:18

建議您..去請教一下技術支援..或許能得到更容易了解的答案..(看對方是否了解您問什麼)
頁: [1]
查看完整版本: AmiBroker AFL 自學筆記-2