2017年7月11日 星期二

更新通知(170711)

因應Yahoo finance連結形式變動做了一些更新~有需要可以重新下載~
或更新其中的AC-DataServer.jar

2017年6月8日 星期四

更新通知(170608)

因應證交所資料格式變動做了一些更新~有需要可以重新下載~

2017年5月16日 星期二

2017年5月7日 星期日

2016年5月31日 星期二

範例 - 2D選股(列表視窗)

2D指的是個股的"時間軸"與"價格",就像看一般技術分析的K線圖一樣,只看得到當下的標的,沒辦法做整體分析,這我稱為2D。而3D就是同時能看到"所有標的"的"時間軸"與"價格",可以參考排序與過濾(選股)


2D分析的邏輯就是僅能針對單一標的逐個執行,從腳本中可能看不太出來,不過事情就是這樣。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
lib "personal";

public class MyScript extends CustomCorePersonal
{
 //選單需要的變數
 double MA_N = 10;
 double PRICE = 10;

 MA ma = null;
 public void init()
 {
  dbg.open();
  //初始化圖形指標介面 (但要關閉一些項目)
  cc_cfg.SHOW_MENU = false;
  cc_cfg.PAINT_LAYER = false;
  CustomCore_UI_INIT();

  //加入指標 (程式碼從圖形介面導出)
  ma = addIdct("K線", "移動平均_2", new MA("N[0]="+MA_N));

  //加入欄位
  tbl.addCol("日期", 2, RIGHT, true);
  tbl.addCol("收盤", 2, RIGHT, true);
  tbl.addCol(MA_N+"MA", 2, RIGHT, true);
  tbl.addCol("交易量", 2, RIGHT, true);
 }

 //製作選單
 public void eventShowInput()
 {
  HtmlInputHelper html = new HtmlInputHelper(LIGHTGRAY);
  html.add("選出", new InpNum("MA_N", 1, 3), "日均線向上");
  html.add("且 收盤價大於", new InpNum("PRICE", 1, 3), "的股票");

  updateInput(html.get());
 }

 public void endOfPeriod(int type)
 {
  //於EOH時才執行過濾判斷
  if (type == EOH)
  {
   //stop()用於通知系統這個核心已經不再需要執行
   //若是在盤中仍需執行則不用stop(),但須注意記憶體的用量
   if (close.ref(0)<PRICE)
    {stop();return;}
   if (ma.isNullRef(1) || ma.ref(0)<ma.ref(1))
    {stop();return;}

   //通過選股條件後,新增一列資料到列表中
   AcTableRow row = tbl.newRow(symbol, name);
   tbl.addRow(row);

   row.setDate(date.ref(0));

   row.setCell(0, date.ref(0).getTime(), date2Str(date.get(t), "yyyy-MM-dd"), black);

   row.setCell(1, close.ref(0), close.ref(0), black);

   row.setCell(2, ma.ref(0), round(ma.ref(0), 2), black);

   row.setCell(3, (long)vol.ref(0), black);
   
   stop();
  }
 }
}

程式碼很好懂,看看程式註解應該就能掌握了。

比較會有問題的部分可能在設定,常有選股結果一片空白的情況,通常是下面幾種情形:
1.) 股票池的標的太少,試試看用[設定]>>[列表庫]>>[台股全部]。
2.) 報價資料的天數不夠,例如要找50ma向上的股票,但報價只有給40天。
3.) 選股條件太嚴苛。

大致上是這樣,設定的部分有哪些?可以看一下這個圖。


2D選股還有一種做法,不用寫腳本,用圖形介面點點選選就可以了,腳本在script/chart/99.AC提供/自訂選股.java。

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