2016年5月13日 星期五

acs-api快速入門(2) - ScriptBasic

承接上篇未完的acscriptcore,還欠ScriptBasic沒介紹到。

ScriptBasic - 腳本基礎
ScriptBasic中沒有任何的執行機制,純粹就是宣告常數,與一些常用的數學與系統函數。ScriptCore也繼承了這個類別,所以這些常數與函數都是可以直接使用的。

---

基礎數學運算。
函數說明
double abs(double a)取絕對值
long round(double a)四捨五入
double round(double value, int digi)保留小數的四捨五入
double ceil(double a)無條件進位
double floor(double a)無條件捨去
double pow(double a, double n)次方運算
double sqrt(double a)開根號
double log(double a)取對數
double log(double a, double base)取對數
double random(double min, double max)取隨機值
double chgrate(Number value, Number base)回傳變動率


---

"動態陣列"運算。寫指標或策略時這部分是最常用的。
因為同名函數的變形太多,這裡僅列出函數名稱,並以avg做概括說明。
函數名稱說明
highest取最大值
lowest取最小值
sum取總和
avg取平均值
median取中位數
stddev取標準差
linear取線性回歸值
change取變動值
change_rate取變動率

函數說明
double avg(NumSet nset, int range)取nset陣列在range內的平均值
double avg(NumSet nset, int shift, int range)取nset陣列位移shift在range內的平均值
double ma5 = avg(close, 0, 5);

acs-api快速入門(1) - ScriptCore

前面已經介紹過acs-api在系統中的角色了,這邊就直接切入程式的部分吧!

首先從package的分類開始看

PACKAGE說明
acscriptcore腳本核心
acscriptcore.period週期控制
acscriptcore.inpcom圖形輸入元件
acscriptcore.datactnr資料容器
acscriptcore.dataset資料集
acscriptcore.calc統計運算
acscriptcore.layer圖層類
acscriptcore.table表格類
acscriptcore.gears小工具

這些PACKAGE中約莫有50個類別,要都看一遍?實在很乏味...所以這一系列講api的文章,我盡量挑常用的講,用瀏覽的方式看過一遍即可,是你用得上的東西自然就會記住,暫時用不上的留個印象即可,往後會再拿腳本實例來說明如何使用,就比較會不感到艱澀,或硬要搞懂一些與自身無關的東西,浪費時間。

2016年5月11日 星期三

腳本應用型態

AC中腳本的應用主要有兩種型態,一種是圖格,另一種就是列表,除了顯示輸出的方式不同外,下圖可以看出執行上的差異。



2016年5月4日 星期三

腳本系統架構

先談一下何謂API(程式介面),舉例來說,我寫了一個功能強大的程式,在你的程式中想要用我程式中的某些功能,這時候透過的就是所謂的API,即程式與程式間的接合介面。我們先看一下哪些部份有提供API讓腳本使用。

java-api:Java語言原生的程式介面。

ac-api:AC系統提供給使用者開發Plugin(外掛)的程式介面。
acs-api:AC系統提供給使用者開發腳本的程式介面。

plugin-api:Plugin(外掛)提供給使用者開發腳本的程式介面。

library-api:使用者自行設計、或第三方提供給使用者開發腳本的程式介面。



(API一詞我們稱"介面",對岸稱做"接口",聽慣了也算蠻貼切的。)

2016年5月3日 星期二

腳本中預先實體化指標

在前面有介紹過指標圖形介面操作示範 ,教我們怎麼透過圖形介面在圖格中加上指標,但這樣建完了指標要怎麼在腳本中使用啊?


最陽春的腳本
既然都要提到腳本了,就先來看一下最陽春的腳本長什麼樣子
1
2
3
4
5
6
7
8
9
lib "personal";

public class MyScript extends CustomCorePersonal
{
 public void init()
 {
  CustomCore_UI_INIT();
 }
}

行1 : 引用script\library\personal下的程式碼。
行3 : MyScript是主腳本類別的固定名稱,後面並說明這個類別繼承了另一個叫CustomCorePersonal的類別。
行7 : CustomCore_UI_INIT()是指標圖形介面初始化的函數。
這樣的寫法幾乎是固定的,如果上面的解釋真的看不懂也無所謂,接觸多了自然就懂了。

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