XS學習地圖

By | 2016-03-03

如何學習透過XS提供的語法,撰寫自訂指標,選股及交易策略,對於沒有學過程式設計的朋友,是比較困難的,我唸的是經濟系,沒有程式設計的底子,深深知道學習過程會踢到那些鐵板。所以根據學習的進程,試著把當初自己踫到的學習障礙,以及學習的心得,寫成文章,分門別類地整理在這裡,希望可以協助跟我一樣唸文組的朋友,循序漸近,從不會到會的會的用XS來隨意撰寫交易策略。

基礎篇

要學任何一種程式語言,首先要先學會使用程式編輯器,就像我們用Word來寫文章,打報告,程式編輯器是用來設計程式的軟體,XS的程式編輯器就是XScript編輯器,要如何使用,可以參考以下的連結影片

IDE操作說明影片

在學會使用語法編輯器之後,接下來就可以使用IDE,學習用XS語法來撰寫交易程式,在往下學習之前,建議各位先瀏覽XS語法入門裡的各篇影音內容,這些影音內容是在跟大家介紹學會XS語法後,可以做那些事情,如果這些事情是您想要做的,那麼您才有足夠的學習動機往下學。

當您確定學習XS語法是一件值得花心思投入的事情之後,接下來就可以一步一步的學習XS語法。

語法的基本元素

首先是回傳值的概念,例如開高低收成交量的取得,請看以下連結

回傳值的意義說明

了解回傳值的概念,以及XS系統內建的相關回傳值之後,接下來要學習的是在XS語法上,如何描述前後根K棒的關係,以及建立敘述與腳本的觀念,請看以下的文章

XS語法的基本結構

了解了XS語法的基本架構之後,就可以理解,這是一種建立在時間序 列基礎上的語法,接下來我們回頭來學習每一種語言裡一定會有的幾個元素,這些元素是組合成一個程式常會用到的元素,這些元素在其他的程式語言裡也會有,功能也都大同小異,在這邊學會了,未來要接觸其他程式語言也用得上。

一,運算子

運算子的種類

二,標點符號

標點符號

三,常數

常數

四,忽略字

忽略字

以上是一般語法也都會有的元素,學會使用這些基本元素之後,就可以寫出一些基本的交易語法或自訂的指標。

有了一般的語法知識,也知道如何使用開高低收成交量等回傳值之後,接下來就需要輸出的語法,讓我們可以照自己的意思畫指標,選股票, 或是請電腦在價量符合某個條件時請電腦通知我們,以下就是輸出語法的幾項類別及相關的說明

輸出語法

輸出的語法說明

指標輸出的說明網站

訊號輸出的說明網站

影音範例

retmsg的示範

print指定輸出檔名

在主圖上繪製進出場訊號

學到這裡,已經可以用簡單的語法來自訂指標,或是選股,或是讓寫一個盤中會把符合條件的標的即時通知您的策略雷達。

使用數據的相關語法

透過以上的幾篇文章,大致可以學會基本的XS語法,接下來要說明的是,XS如何使用變數,參數來強化撰寫量化語法的能力。

首先要說明的是參數的概念

參數

參數的意義與例子

變數

變數的說明

interbarpersist

這個語法是用來宣告在同一根bar裡,變數值的計算,不是直接計算最新值,而是把前一值當做前一根bar的值來運算最新值,這種宣告變數的方式,常被用來在逐筆洗價的腳本中,用來計算累計值之類的數值,以下就是這個語法的說明。

intrabarpersist

 

學了參數及變數之後,接下來要介紹的是用GetField這個語法,來取得除了開高低收成交量之外的其他欄位

Getfield

xs這個語法跟其他程式交易平台最大的差別,就在於它有大量的台股專屬的欄位可以取用,這些欄位的取得,用的就是Getfield的語法。

getfield可以取得的欄位

產業數據的應用

籌碼相關的欄位

在使用getfield時,資料的更新時間,是大家最常問的問題,以下是更新時間的總整理

XS資料更新時間總整理

學會了GetField之後,另一個XS特有的語法是GetQuote,可以取得分時走勢圖裡的,提供的各種即時的欄位

Getquote

getquote可以取得的欄位

以下是一個用Getquote語法來撰寫盤中出現大單的寫法

大單的寫法

學會變數及參數的使用之後,有些常用的語法,如果每次都要很重覆寫,會很煩,所以XS提供使用者把一定程序的語法自訂成一個函數,未來要用這樣的運算,只要直接引用該函數即可,所以接下來要學的是函數的概念

 函數

函數的基本說明

學會了函數的概念之後,接下來要跟大家介紹XS的內建函數

內建函數

內建函數的全集合

從上面這個連結,我們會找到大量的內建函數,至於他們的意義,

內建函數再多,也不見得符合使用者的需求,這時候就可以透過自訂函數的方式,來創造獨有的函數,用在各種語法的撰寫上。

以下的連結裡有自訂函數的基本流程介紹

自訂函數的基本流程

以週轉率為例,介紹自訂函數及其應用

預估量函數的寫法

把K棒的型態函數化

自定函數裡最難以理解的問題是,要如何宣告正確的資料格式

資料格式宣告

下面是常用函數的應用例子

區間漲跌幅

除了英文函數之外,XS也支援了中文函數,以讓使用者可以用它來選股排行,以下是中文函數的介紹

中文函數

如何應用中文函數

學會如何使用中文函數之後,接下來就可以應用中文函數,在選股的時候,設定各種排行條件,以下的這篇文章,就是來介紹這個功能

如何創造個人排行榜

 

學會了變數,參數及函數的概念之後,基本的程式大約都難不倒您了,但目前我們在設定思考的流程時,一直都是用IF .. Then這樣平鋪直述的語法,但其實很多時候,情況並不單純,需要運用各種不同的流程控制方法,所以各種不同的程式語言,都支援了流程控制的相關語法,以讓使用者可以進行更複雜的語法撰寫,接下來我們就來學習XS裡的一些常用流程控制語法

 

流程控制

if… then

單一條件或多條件的寫法

魚骨圖的語法示範

多空策略的轉換

begin … end

多敘述的寫法

switch … case

switch的流程圖及範例

迴圈

當我們要重覆執行某些指令時,我們可以使用迴圈相關的語法,如果一開始就知道要執行多少次,用的是For這個語法,如果不知道要執行多少次,就用while這個語法,詳細的說明如下面的連結

迴圈

以上是基礎的XS語法介紹,在進入到更進階的語法介紹前,先來學習當寫錯時,要如何運用勘誤的功能來修正錯誤。

勘誤

選寫交易策略的SOP及常見錯誤

用outputfield與getfielddate來除錯

在寫出符合自己想法的腳本後,可以使用回測的功能來看看自己的腳本是不是一個具有實戰效果的腳本 ,如何使用回測的功能,請看下面的連結

回測

回測的基本功能介紹

回測時參數設定的說明

回測報告的內容說明

以上算是完整的把XS的語法都學了一遍,建議在往下學習之前,請 瀏覽一下XS語法應用裡的各篇文章,這些文章都是為了回答學習者 疑問而撰寫的文章,應該可以協助您建構更清晰的觀念,補強上面各篇文章沒有講清楚的地方。

進階篇

在學會XS語法的基礎應用之後,接下來,跟大家介紹一些常用的進階語法,學會這些語法之後,有些原本寫不出來的,或是寫出來跟原來的意思不一致的,應該可以得到蠻大幅度的改善。首先跟大家介紹的,是在時序及時間上常被拿來使用的函數及語法。

時間與頻率的語法

首先還是先複習一下時間的格式

時間的回傳格式

接下來,請看時間與頻率的設定 ,透過這一篇文章可以學會BarFreq,Barinterval及CurrentTime的用法,用來指定程式運算的頻率及指定的時間。

時序常用內建函數

接下來跟大家介紹一些時序設定上常用的的函數

這個語法是用來計算某一特定日期距離現在是多少根bar

Getbaroffset

getbaroffset的例子

getbaroffset例二

barslast

這個函數是用來計算上一次符合特定條件距離現在多少跟bar

它的說明如以下的

連結

CurrentBar

當使用者需要知道目前是算到第幾根bar時,可以使用CurrentBar這個函數,它的說明在以下的

連結

關於資料讀取範圍的設定及相關知識

資料讀取範圍的設定,是XS這種以K棒時序為計算基礎的語法裡,很容易因為沒有定義清楚,而容易出錯的部份,以下的這個連結,有清楚的說明了這部份的觀念

資料讀取範圍的設定 

在學習完時序概念之後,接下來建議大家多了解XS內建的一些函數,這些常被使用的函數,可以加快腳本撰寫的速度。

常用的函數

邏輯函數

邏輯函數總整理

數學函數

數學函數總整理

腳本範例

強弱勢股的寫法示範

統計函數

統計函數總整理

腳本範例

用線性迴歸來寫背離

布林通道

標準差的應用

R平方

技術分析函數

技術指標函數總整理

了解了技術指標常用的函數之後,大家可以先從這些技術指標的設計原理著手,了解當年這些設計技術指標的人,是怎麼創造出這些指標的。

圖說技術指標的設計方式與背後的思維(一)

圖說技術指標的設計方式與背後的思維(二)

圖說技術指標的設計方式與背後的思維(三)

圖說技術指標的設計方式與背後的思維(四)

了解了技術指標設計的思維之後,我整理了用XS設計指標的一樣腳本範例,大家可以對照這些指標的公式,自己撰寫腳本,再跟文章中的腳本來對照一下,這樣,學習的效果會非常好,我當初就是這麼學會一些撰寫腳本的技巧的。

%B指標

Adaptive price zone

ADI累積分配指標

ADX指標

ALF亞歷山大過濾指標

ATR真實波動區間指標

Arron oscillator

Average移動平均線

BBand 布林通道

BW MFI  市場便利指標

CCI商品通道指標

Chaikin Oscillator 恰奇震盪指標 

Chaikin Volatility  克林波動指標

Choppy market index

CMO錢德動量擺盪指標

Coppock indicator 估波指標

CV指標

CVI累積成交量指標

DKX多空線

DMI指標

DPO指標

Donchian channel 唐安奇通道

DMI

Elder Ray指標

EMA指數移動平均

EMV指標(Ease of Movement)

Force Index 力度指標

HMA改良式移動平均

IMI日內動量指標

KO克林格擺動指標

KO能量潮指標

KST確認指標

MACD

Mass Index

MA-Osc指標

Money flow Index   MFI指標

MO指標

Momentum動能指標

NVI指標

OBV指標

PSY心理線

Q指標

RVI指標

STARC  (Stoller平均波幅通道)

TMV指標

Ultimate Oscillator 終極震盪指標

VIX恐慌指數

VPT(Volume price trend) 修正式價量指標

Volume Oscillator成交量擺動指標

VWMACD指標

威廉多空力度線

Xslope 速度指標

Zero Lag HeikinAshi 先進指標

ZDZB築底指標

加速指標

波動率通道

噪音指標

隨機漫步指標

型態相關函數

型態學是大家常用的分析方式,系統也內建了一些型態函數,具體說明請見這篇

XS內建的型態函數

腳本範例

平台整理的寫法

M頭的寫法

平台整理後的突破與跌破

學習了常用的函數之後,接下來跟大家介紹如何在一個腳本裡,使用不同的商品來一起加人運算

跨商品

跨商品與跨頻率語法的介紹

除了跨商品之外,有可能會用到跨頻率,例如日KD在高檔,週KD在低檔黃金交叉的情況,請參考以下的說明

跨頻率

如何使用跨頻率的技術指標來建構交易策略

跨頻率函數總整理

陣列

陣列是一個各種程式語言都會支援的語法,請參考下面的說明文章

陣列的應用一

陣列的應用二

陣列的應用三

實戰篇

在慢慢熟悉了XS語法之後,接下來要透過各種寫過的腳本,來跟大家討論,我是如何運用程式,打造一個有體系的決策機制。

我的決策流程基本如下

一,透過大盤分析,研判目前大盤是處於多頭還是空頭市場,進而決定我的持股比例

二,透過各種選股策略,決定我的觀察清單。

三,透過各種自訂指標的撰寫,在圖像化的指標中,找出一些不斷動覆出現的規律,把它轉換成盤中即時交易策略

四,把選股策略與盤中即時交易策略整合成一個完整的交易策略

下面這篇文章是這個架構的詳細說明

XS系統化決策結構說明

 

接下來就把結構中的各個部份分述如下

大盤分析

我習慣順勢而為,基本不會逆勢操作,所以我會花很大的時間來研判目前市場是處於多頭還是空頭市場,以下分別跟大家介紹XS裡提供那 研判大盤的欄位,以及我如何運用這些數據,打造一個研判大盤多空方向的機制。

以下分別先介紹一些大盤分析特別可以使用的欄位

大盤分析可以使用的欄位

內外盤量

上漲下跌家數

漲跌停家數

接下來介紹一些大盤相關的技術指標

大盤相關指標

上漲下跌家數差RSI指標

MFO資金流震盪指標

上漲家數有沒有200檔

OTC與上市成交量比值

上漲下跌家數

DBCD

綜合多個大盤指標,就可組合成大盤多空對策分數

例子一

例子二

有了這些指標,就可以組合成大盤多空檢查表這樣的頁面,透過這樣的頁面來研判大盤未來的多空趨勢

多空檢查表

或是打造成大盤儀表板

大盤儀表板示範

甚至於,把大盤多空變成一個函數

打造自己的多空函數

透過以上的工具,我們可以決定投資組合的持股比例,就算您是作當沖的,大盤分析還是很重要,多頭市場先買後賣,空頭市場先賣後買,大盤分析還是非常的重要。

在決定好持股比例之後,接下來要解決買什麼的問題,也就是要如何定選股策略。這時候就要進到XQ的選股中心

選股中心

首先,先來看一下選股中心的使用介紹

選股中心使用說明

學習如何打造具個人特色的選股策略

打造私房選股策略

特別是如何把財報欄位應用在選股中

財報欄位在選股上的應用

以及如何把選股時應用的欄位呈現在選股結果中

選股結果之OutputFiled語法應用

outputfield的排序

以及如打造自己的選股排行榜

創造個人的排行榜

學會了選股中心的使用概念後,接下來介紹一些選股的常用語,這些常用語我都先寫成腳本,大家可以下載來直接使用

常用的選股腳本

價量欄位選股市場常用語

財報欄位選股市場常用語

籌碼型選股市場常用語

 

接下來介紹一些選股策略的範例

選股策略範例

指標選股

連兩日關鍵券商大買超

飆股的長相

法說會行情選股法

投信相關的選股策略

價值型投資皮氏選股法

主力與投信共襄盛舉

學會了如何選股之後,接下來就是要選擇進場時機,進場時機基本上就跟當天的價量或前一天公佈的籌碼數據息息相關,要如何運用這些資料來決定進場時機,或者說寫出進場時點的規則,最好的方法就是透過視覺化的指標,從指標與K線圖的相互關係中,找到進場的規則,所以接下來要學習的是自訂指標

自訂指標

自訂指標是一個學習語法的好方法,一方面演算的數據可以視覺化呈現,二方面可以透過前賢們發明過的指標,學習如何用語法演算有意義的數據,為了讓大家可以加快學習的速度,把儘量收集了坊間常見的各種技術指標,用XS語法來撰寫,然後以A~Z的順序,排列在下方,大家可以拿這些指標的寫法作為學習的範本。

自訂指標影音教學

設定指標參數影音教學

自訂指標轉換成交易策略

例一

從股性出發的自訂指標

比大盤強的天數

真實波動區間

承接的力道

開盤委買委賣

法人買張佔成交量比例

資金流向

N日來有幾日漲幅較大

盤中短線指標

盤中上漲下跌量累計差額指標

期指盤中大戶散戶指標

盤中大戶散戶指標

預估量的計算方法

籌碼指標

長線客買賣超張數指標

有了各種指標之後,就可以打造個股的儀表板

 

個股儀表板演化的交易決策

例一

例二

進場訊號放置位置的設定

月報酬率等績效圖的寫法

透過自訂指標訂出進場時機的規則,接下來就是使用策略雷達來產出作多及作空訊號

策略雷達

下面是一些撰寫策略雷達時,我覺得應該學習的寫法及用法

當沖語法支援的欄位說明

背離的寫法

累計值的寫法

盤中有大單的寫法

從今天開盤起算的語法

反彈的寫法

以上是策略雷達常用的語法,到這裡,已經學會完整的自動化投資決策流程,接下來就是把這些流程串在一起,變成一個自動化的投資策略,請看以下的幾篇相關的介紹文

撰寫交易策略的SOP

一個交易策略的熟成

如何寫出高勝率的交易策略

從上面的文章中,我們可以了解到,一個完整的交易策略,往往會包括了選股策略及交易時機,以下,我就分門別列的跟大家分享不同的交易策略,這些策略的語法都不難理解,主要是希望可以啟發大家的靈感,打造出自己專屬的交易策略。

極短線交易策略

在XQ上實踐當沖交易的具體步驟

我的現股當沖交易畫面

極短線交易策略撰寫上的一些小技巧

網路上學來的當沖方法

大盤大跌後的對應交易策略

大跌後出現什麼癥兆是可以抄底的

籌碼型交易策略

投信玩真的

外資喜歡的股票又開始連續買超

地緣券商買超

代操看上的股票

千張大戶大增

 

波段交易策略

三新高股

即將進入季節性多頭的個股

好公司暴量起漲

創百日新高且距低點不遠

月營收創52個月新高

高抗風險交易策略

大股票突破繼續型態

布林交易法則

麥克貝利交易策略

大漲的訊號

基本面創佳績的公司放量起漲

從基本面出發的交易策略

營運好轉的好公司暴量起漲

毛利率在成長的非熱門股

好公司無量變有量

十年寒窗股

高護城河股暴量起漲

用月營收預估的低本益比股

價值型投資交易策略

歐沙希價值型交易策略

股價距合理價值很遠然後開始暴量起漲

長期低價的前績優股暴量起漲

價值低估股暴量起漲

PB接近十年低點後的均線黃金交叉

高殖利率週線突破月線

夠便宜且整理結束

低本益比低PB高殖利率股暴量起漲

高平均股利殖利率暴量起漲

低股價自由現金流量比

在看過這麼多的交易策略之後,接下來先學會把這些交易策略變成自己的策略

把分享的策略變成自己的策略

在累積了很多私房策略之後,接下來就可以同時啟動多個交易策略,然後再從跑出來的訊號中,選擇要真的去執行交易的標的

多策略的投資決策

就算是人不在電腦前面,也可收到訊號

把訊號打到手機中

以上是讓電腦自動產生多空訊號的流程

接下來則是介紹自動執行交易,由於交易語法目前還在測試中,所臉這裡先跟大家介紹在策略雷達中如何把策略結合交易指令,未來等交易語法要正式開放時再跟大家作介紹

程式自動下單

模擬交易的規則說明

模擬交易的功能教學

下單的串接影音說明

平倉的設定UI

 

 

 

回應