因為原本的檔案已經隨著舊電腦故障而遺失了(遠望)

所以就靠著快兩年前的前一篇留下的線索來湊一湊下篇吧,呵呵

 

===

 

其實前一篇的東西是比較麻煩的,跟程式固定的架構有關係,有固定的寫法

這一篇反而比較簡單

因為這部分才是演算法的核心(就是你實際想對資料進行怎麼樣的處理)

主要就是把每一根Bar的數值給他處理一下

看他要不要顯示,要的話就在Buffer裡面填值,不要的話就填前一篇說的EMPTY_VALUE進去

 

先從簡單的例子開始

例如我現在想要把每根K棒的最高點給連線出來(沒有任何實用意義,只是做實驗用的)

那我就會在OnCalculate裡面寫:(以前是OnStart() ,不過我這次用精靈直接弄,它預設的就是弄成OnCalculate(),那就這樣吧,反正會動就好)

圖片

Code非常單純,只是用個迴圈把每一個Bar的High給填到HighestResult [ ]這個陣列裡去而已

其中HisghestResult [ ]是前面設定過的Buffer,然後有設定說要畫出來(參前一篇)

結果就會是如下所示,高點都被連起來了:

圖片

然後因為我設定迴圈跑到 i < LimitBars ,LimitBars我前面設定為200(因為不想浪費電腦的算力~)

所以圖往後拉其實會變成下面那樣,可以看到圖左邊的高點就沒線了

圖片

同樣的,也可以把每個Bar的低點連線,稍微改個Code,丟到另一個Buffer去即可

圖片

結果如下,看起來跟某些通道類型的指標其實還蠻像的(大概有87分像)

圖片

接著再玩玩前面提到的EMPTY_VALUE

這邊我們簡單弄一個:每5個Bar的最高點跟最低點才連線,其他我不想管

code就可以寫成下面那樣,靠if判斷而已

圖片

結果如下圖,應該可以看出每5個Bar才有連線,其他點都捨棄掉了

圖片

不過上面的例子只是舉例,應該沒什麼實用價值

要實用點的至少要寫個5根Bar裡面找最高,再進行連線之類的

 

不過其他指標像是布林通道也是類似的作法

照上面的方法,自己改一個也是辦的到的

沒特別想法的話,內建指標就夠用了

 

====

 

然後前一篇設了4個Buffer,但這邊只用到2個,那剩下2個怎麼辦呢?

其實用不到砍掉就好了,不用太在意,寫程式本來就這樣,改來改去的

祝各位玩得愉快~ 呵呵呵呵~

arrow
arrow
    全站熱搜

    迷途工程師 發表在 痞客邦 留言(0) 人氣()