2016年5月29日 星期日

lib-api - 各指標API(accustomcore)

雖然我覺得很容易,但可能還是要提一下。我們已經知道如何透過圖形介面新增指標,也知道怎麼把指標的程式碼導出寫到腳本上,但是在腳本要怎麼取得這些指標的各種數值?

例如一個KD指標,我要如果分別取得k跟d值呢?我先講解一個例子,後面就依樣畫葫了。

KD (script\library\accustomcore\src\IDCTs\02.指標\KD.java)
KD指標的長的像是這樣,但剃除了多餘的部分,僅留下你們會用到的部分。
1
2
3
4
5
public class KD extends IDCT
{
 public MovinNum k;
 public MovinNum d;
}

用法範例如下 : (14與15行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
public class MyScript extends CustomCorePersonal
{
 KD kd = addIdct("KD", "KD_3", new KD("")); 

 public void init()
 {
  CustomCore_UI_INIT();
 }

 public void endOfPeriod(int type)
 {
  if (type == EOH)
  {
   dbg.print("K為 : " + kd.k.ref(0));
   dbg.print("D為 : " + kd.d.ref(0));
  }
 }
}


MA
再看一個最常用的均線。
1
2
3
4
public class MA extends IDCT
{
 MovinNum[] value_arr = new MovinNum[DEF_VAR_SIZE];
}

稍微有點不一樣,變成是一個MovinNum的陣列了,會這樣設計是為了讓使用者透過一個指標設定多條均線,但用法大同小異。

1
2
3
dbg.print("預設(同第一條均線) " + ma.ref(0));
dbg.print("第一條均線 " + ma.value_arr[0].ref(0));
dbg.print("第二條均線 " + ma.value_arr[1].ref(0));


---

大致上都可以用類似kd.ref(0)直接取得該指標預設的值,除非該指標含有多種數值,就需要用類似kd.d.ref(0)的寫法。

恕我沒能將所有指標都像這樣帶各位瀏覽一遍,是覺得有點麻煩,但其實accustomcore這個部分是有開放原始碼的,大概看一下變數的宣告其實就知道有什麼變數能用,不算太難,也算是一個小小的考驗吧。

沒有留言:

張貼留言

本人僅以個人知識經驗分享,多所無知,難免有錯,還請見諒。