因為原本的檔案已經隨著舊電腦故障而遺失了(遠望)
所以就靠著快兩年前的前一篇留下的線索來湊一湊下篇吧,呵呵
===
其實前一篇的東西是比較麻煩的,跟程式固定的架構有關係,有固定的寫法
這一篇反而比較簡單
因為這部分才是演算法的核心(就是你實際想對資料進行怎麼樣的處理)
主要就是把每一根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個怎麼辦呢?
其實用不到砍掉就好了,不用太在意,寫程式本來就這樣,改來改去的
祝各位玩得愉快~ 呵呵呵呵~
留言列表