2016年12月29日

【MultiCharts】從內建指標或訊號程式碼學怎麼運用函式

對於PowerLanguage初學者而言,很大的困擾就是不知該怎麼用程式表達想要達到的功能或計算,有些最基本的函式如Average、Highest等,學習別無他法,先背起來再說,但例如想以MACD指標來作為交易訊號,遇到第一個難題就是用什麼程式碼來計算(表達)MACD各項值,其實最簡單的方式就是直接參考PowerLanguage內建的訊號或指標範例。

2016年12月18日

MultiCharts台灣期交所商品轉倉模組安裝教學

操作步驟:

1.先將下載下來的檔案作解壓縮,下載點

2.開啟下單機 → 點選庫存部位及轉倉:

3.將舊「預設轉倉」模組刪除並匯入最新的「20XX預設轉倉」模組

4.檢查轉倉日期是否已更新至新年度,確認無誤點選儲存。

轉倉設定主要運用在兩個地方:

1.線圖為連續月(例如TXF1),下單時會自動判斷實際交易月份。請注意,沒有正確設定轉倉,會無法在連續月圖上執行下單。
2.使用MC內建自動換倉功能,將波段單自動換倉。

以上轉倉設定適用台灣期交所所有第三個禮拜三結算的商品,包括大、小台、電子期、金融期、個股期及ETF期等等,其中四大期指的轉倉設定在MC下單機已預設好,如果是下個股期等其他商品須另外自行設定,設定教學請看此篇「MultiCharts如何設定交易台灣期交所股票期貨及ETF期貨」。

2016年12月8日

【MultiCharts】「N字理論」如何寫:進場策略(Pivot Reversal LE、Pivot Reversal SE)簡介

「N字理論」是國內技術分析常聽到的一套,其實更早前的波浪理論中就有「N字」的影子,就網路上蒐尋到的資料,有一說「N字理論」是由李進財教授所開發,筆者曾在多年前聽過一場李教授的技術分析講座,現場爆滿,可見受歡迎的程度,後來有許多技術分析老師都師承此脈,例如黃韋中「主控戰略」系列叢書,都有「N字理論」的內容。不只是台灣,對岸那邊也有市場,以下是節錄自百度百科對「N字理論」的介紹:


2016年12月7日

【MultiCharts】進場策略(Pivot Extension LE、Pivot Extension SE)簡介

交易的世界裏,「轉折」是一個很迷人的東西,因為它讓你的進出最有機會接近神的領域--”買最低、賣最高”,所以抓轉折也是技術分析主流之一,相關指標百花撩亂。我們在這篇「轉折指標與函數(Pivot high、Pivot Low)」已介紹了MC裏面有關轉折的函式及指標,接下來本篇進入實戰,來看轉折的交易策略。

【MultiCharts】轉折指標與函數(Pivot high、Pivot Low、SwingHigh、SwingLow)

「轉折」講起來帶有主觀成分,MC裡對轉折的界定是,以轉折高點為例(指標Pivot High)就是該K高點比左邊N根K棒及右邊N根K棒的高點都高(左右的N值可一樣或設不同),如下圖假設N=3所示:

2016年11月19日

讀書心得:股市的科學煉金術--程式交易全圖解


作者: 曾崇銘, 陳宥任  
出版社:Smart智富  
出版日期:2014/05/24

這是一本架構完整的程式交易入門書,就教學的角度來看,本書的內容編排相當不錯,文中也大量了運用圖文解說,深入淺出,兼顧理論與實務,值得推薦給每位想要入門程式交易者。不過本書關於程式語法講得較少,應該是作為一個程式交易建立概念性基礎的用途,語法嘛,始終還是要多看範例多演練才能學得好。

第八章有兩篇講當沖模組SOP、留倉模組SOP,其中除了一步一步展示策略建立的步驟外,其中教讀者從績效報告中去分析賺錢與賠錢的交易,進而據此加入交易濾網,這段有講到策略建立的一個重點,就是無論是濾網設計或是交易邏輯調整,不假外求,可先從改正自身的缺點去思考。最後還有一篇講市場掃描SOP也很實用,坊間比較少看到這方面的介紹,我自己也是受教了!


歡迎加入LINE@
加入好友
(點擊上方圖示)

2016年11月17日

均線緞帶指標(MA Ribbon)簡介

均線緞帶指標是均線值與N根K棒前的均線值間填滿所畫出的指標,呈現方式就好像一條緞帶,同時以顏色區分趨勢方向。

均線緞帶的優點是:
1.可以濾掉行情雜訊,不會像一般指標多空翻來翻去。
2.顯示多空力道,緞帶越寬代表力道越強,緞帶收窄暗示行情即將反轉。

2016年11月12日

【MultiCharts】交易策略怎麼寫---從參考內建訊號開始

跟大多數人一樣,筆者學期貨交易也是從技術分析開始,技術分析起手勢就是學指標,我們從指標可以判多空也進一步形成進場策略,我們熟悉技術指標,加上技術指標量化且直覺的特性,透過指標來擬訂交易策略是相當建議的入門初學方案。一樣的,想在MultiCharts上寫好第一個交易策略,萬事起頭難,怎麼下手?筆者的建議就是從技術指標切入。好處有二,一你不用天馬行空,挑一個熟悉的技術指標不難,二是MultiCharts有現成的內建策略可以參考。

2016年11月7日

【MultiCharts】交易策略開發流程

關於交易策略的開發流程,應該是沒有定論,每個人都有自己適應順序與方法,下圖是一般正規的做法,一個策略從發想到上線大概會經歷這幾個階段。

2016年11月1日

讀書心得:PowerLanguage程式交易語法大全

作者: 鍾淳豐  
出版社:寰宇  
出版日期:2010/12/07

對於要學PowerLanguage這應算是一本必備的中文語法工具書。雖然名為工具書,除了語法辭典功能外,其實對語法的基礎教學也有帶到,更提供範例說明,建議初學者多花時間深讀,可以把基礎打扎實。至於已經有基礎的也可以從中精進,舉例,簡單而常用的「Sell」、「BuytoCover」兩個出場語法,其實完整用法恐怕是很多人都不曉得,例如可以指定針對特定進場訊號來出場:Sell From Entry(“Original Entry”) Next Bar at Open; (227頁)。我們學語法為求快速上手,通常就會先學最常用的用法,往往忽略了完整用法,偏偏要用時就使不上力,再花時間找答案,事倍功半。


建議用法:
1.一到五章算起來就是PowerLanguage基礎教學,一方面介紹語法,也介紹基本概念,小弟的「PowerLanguage從零開始」也多有參考本書。
2.第六章講繪圖,建議先把「Plot」基本相關學好即可,其他比較進階或是太瑣碎,例如怎麼指定色彩,瀏覽過有印想就好,有要運要到或是遇到實例時再過來查詢。
3.第七章除錯,語法不難,不過實務上慢慢會發現真正的錯還是需要經驗來除。「Messagelog」或「Print」就是個工具而已。
4.第八章介紹交易訊號及委託,寫得很詳盡,建議要詳讀。
5.第九章講投資組合,進階使用者可看,券商版MC無此功能。
6.第十章進階應用,適用進階者,多數功能券商版MC無。


歡迎加入LINE@
加入好友
(點擊上方圖示)

2016年10月8日

必學常用函式(Function)

學常用保留字就像學英文單字,而學函式就像學英文片語,一樣沒巧門,基本的先背起來,以下列出必學常用的函式及運用範例:

控制流程If…Then….

所謂寫程式換一種講法就是下指令給電腦,下指令終極語言結構就是:如果怎樣怎樣就去做甚麼動作。「If…Then…」這類控制流程就是下指令的語法,也可以說是整個PowerLanguage最重要也最常用的語言。

1.If…Then…(如果符合條件就去執行A動作)
範例:如果5MA向上交叉20MA,下根K棒就市價買進。

If average(close,5) cross over average(close,20) and marketposition<>1 then buy next bar at market;

2.If…Then…Else…(如果符合條件就去執行A動作,不符合就執行B動作)
範例:如果收盤價在20MA以上,均線(編號Plot1)顏色為紅色,反之,為綠色。

if Close > Average(Close, 20) then
SetPlotColor(1, Red)  //動作A後面沒有分號”;”
Else  //Else後面沒有分號”;”
SetPlotColor(1, Green);  //動作B後面有分號”;”作為語法結尾

3.If…Then Begin…End(如果符合條件就去執行A、B、C…等動作)
範例:如果收盤價在20MA以上,動作A,均線(編號Plot1)顏色設為紅色,動作B,發出警示。

if Close > Average(Close, 20) then begin
SetPlotColor(1, Red);  //動作A後面有分號”;”
Alert;      //動作B後面有分號”;”
End;      //End後面有分號”;”

4.If…Then Begin…End Else Begin…End(如果符合條件就去執行A、B、C…等動作,不符合就去執行D、E、F…等動作)
範例:如果收盤價在20MA以上,動作A,均線(編號Plot1)顏色設為紅色,動作B,發出警示;反之收盤價沒有在20MA以上,則動作C,均線(編號Plot1)顏色設為律色,動作D,發出警示。

if Close > Average(Close, 20) then begin
SetPlotColor(1, Red);
Alert("Close Above Average");
End         //沒有分號”;”
Else begin    //沒有分號”;”
SetPlotColor(1, Green);
Alert(“Close Below Average”);
end;

以上幾種控制流程的語法運用,簡單歸納以下要點:
1.條件都可以是複數個,用「and」或是「or」串起來。
2.要執行多個動作用If…Then Begin…End,而只執行單一動作用If…Then…。
3.注意哪些地方要用分號”;”結尾,哪些不用。

變數(Variables)與參數(Inputs)宣告

在我們這篇「2行程式碼完成均線交叉策略」中,很直觀簡略地用兩行表達均線交叉訊號的程式碼如下:

If average(close,5) cross over average(close,20) then buy next bar at market;
If average(close,5) cross below average(close,20) then sellshort next bar at market;

進一步,我們把參數與變數運用進來,把兩行程式碼升等為正規的程式腳本,完成完整的程式碼如下: 

2016年10月7日

關於K棒的基本資訊(開、高、低、收、量)

交易或是技術分析最基本的工具就是研究盤讀K線的價與量,PowerLanguage內建價量常用保留字列表如下:

運算與邏輯符號(運算子)

闡述我們的交易策略,不外乎透過數學算式、關係及邏輯來表達,例如以下這個想法「當K線收盤價大於前根K高點10點以上且收紅K就買進」,寫成PowerLanguage就是:

If Close>High[1]+10 and Close>Open then Buy this Bar at market;

其中就須運用:「+」(數學運算)、「>」(關係運算子)、「and」(邏輯運算子)。

PowerLanguage程式腳本運作原理

我們用PowerLanguage編寫的交易邏輯或是指標稱為腳本(Script),腳本完成後,接著開啟MultiCharts主程式,把腳本放到K線上去跑(新增→指標或新增→訊號)。

而MultiCharts執行PowerLanguage程式腳本依循以下原則:

1.程式腳本是從第一行開始依序執行到最後一行,因此程式碼擺得先後位置不同,特別是變數的運算,會有不一樣的結果。

2.程式腳本是從圖上第一根K棒(時間最早的)開始一根一根依序執行,且是在每根K棒收完,確認開高低收量後,完整執行一次程式腳本(如果是開IOG(IntraBar Order Generation)則是每個Tick都執行一次程式碼)。

了解PowerLanguage程式腳本運作原理非常重要。寫程式的過程看似就是把想法轉換成語法,不過很多時候明明語法都沒錯,卻沒得到預期的結果,很可能就是沒有把上面的腳本運行原則給搞清楚。

PowerLanguage 保留字(Reserved Word)及常用函式

保留字就像英文的ABC字母,是我們寫程式腳本最基本的表達字詞,在PowerLanguage Editor中保留字會以藍色字顯示,且既名為保留字,就是無論你要自設變數或函式取名都不可以跟保留字一樣。

2016年10月6日

Essential EasyLanguage Programming Guide

等等,我們學的MultiCharts不是叫PowerLanguage嗎?EasyLanguage又是啥東西?

話說EasyLanguage是TradeStation的程式語系,早期用過Tradestation2000i(TS)的交易者都知道從EasyLanguage到MultiCharts(MC)的PowerLanguage兩者語法是一脈相承,除了極少數保留字或函式略有差異以外,幾乎是一模一樣。其實多年前TS轉型為券商後,它的一組工程師跳出來發展出MC,因此可以說兩套語法根本是同一個父母。

如果你想在網路上搜尋MultiCharts程式語法相關資源,你會發現使用關鍵字「EasyLanguage」會比用「PowerLanguage」找到更豐富的資料。筆者苦尋PowerLanguage手冊(manual)未果,倒是在MultiCharts的官網找他推薦的EasyLanguage手冊。網址如下,如果你英語還可以,強烈建議學PowerLanguage前可以把這本看過一遍。

連結:Essential EasyLanguage Programming Guide

2016年9月29日

PowerLanguage標點符號使用說明

符號
用法
範例
;
分號。宣告程式碼每一段落的結束。
Sma=average(close,5);
,
逗號。隔開複數變數等用途。
Vars:len1(0),len2(0);
( )
小括號。
1.      數學運算或邏輯運算括符內先算
2.      宣佈變數預設值
3.      函式(Function)的輸入變數
1.Mid=(high+low)/2;
2.Inputs:len2(5);
3.Sma=average(close,5);

""
雙引號。宣告字串,字串內容用""。
…then buy ("Long1") next at market;
[ ]
中括號。讀取過去NK棒的值。
If close > high[1] then buy this bar on close;
(如果收盤價大於前天高點就買進)
{ }
大括號。被大括號包起來的程式碼將失效,可用來當註解。限用英文。
{This is advanced version of SMA }

//
雙協線。位於雙斜線後同一行文字會被視為註解。限用英文。
// this is for stop loss.

2016年9月27日

PowerLanguage Editor操作環境簡介

在MultiCharts上,透過PowerLanguage語法把交易策略/想法變成交易程式,而PowerLanguager Editor顧名思義就是編寫PowerLanguage的平台,當MultiCharts軟體安裝完成後就可以看到PowerLanguage Editor桌面捷徑或在程式集找到,可以說PowerLanguage Editor就是MultiCharts做為程式交易軟體的核心。

怎麼打開附檔名ELD的程式源碼

常常逛一些程式交易論壇,不但可以多看看別人的交易點子,學得新知,許多網友甚至會把程式碼無私公開給網友下載,但是也常遇到下載的程式碼檔無法打開,原因是網友丟上去的檔案是別的程式交易軟體,如Tradestation、MT4、AmiBroker、Ninjatrader等,並非MC專用的PLA檔。解決的方法呢?除了在討論串下面跪求程式碼文字檔(txt檔)自己另外解析外,只好設法取得相對應的平台來開啟檔案。

2016年9月25日

如何取得每日前30分鐘最大量那根5分K的高低點

帶量K通常可視為關鍵K,該關鍵K的高低點也就可當作關鍵價,做為技術分析與當沖交易之用。以下指標範例示範如何抓台指期前30分鐘最大量那根K棒的高低點:

2016年9月11日

Multicharts如何限制每天最多交易次數--EntriesToday

限制單日最多交易次數,主要可以避開震盪盤連續虧損,手氣不順就該多看少做,也算是一種停損的概念,另外配合有些當沖策略本身就是一次性進場,程式碼也需要這個機制來限制再進場。感謝MultiCharts注意到使用者對這個功能普遍需求,現在PowerLanguage就有內建函式「EntriesToday()」可以傳回當日已進場次數。

2016年9月8日

如何正確使用/顯示成交量(Volume、Ticks)

在MultiCharts官網(凱衛)討論區有許多關於成交量的質疑與討論,剛接觸的人很容易搞混,以下簡單歸納說明。

2016年9月6日

【MultiCharts】基本停損停利語法


有經驗的策略開發者都知道,怎麼出場遠比如何進場重要,出場策略千百種,本文先介紹基本的停損停利語法,提供給入門者參考。

2016年8月25日

MultiCharts如何設定交易台灣期交所股票期貨及ETF期貨

現階段MC雖未提供股票現貨自動交易,想要程式交易個股的投資人可以改交易股票期,只要選定流動性良好的標的,就可受惠股票期貨多空皆宜、交易成本低廉的優勢(想要進一步了解股票期貨請參閱此站)。欲透過MC交易股票期貨或ETF期貨要先行完成兩項設定:1. QuoteManager(QM)新增商品;2.下單機商品轉換設定。

2016年8月24日

MultiCharts下單機如何設定看大下小(看大台下小台)?

許多程式交易客有"看大下小"的需求,也就是圖表商品是大台,下單商品是小台。會有下小台需求通常是資金考量,雖說小台交易成本比較高,不過之前阿政大也曾在「能下10口大台也要改下40口小台」這篇提出突破型策略下小台的優勢。近年小台的成交量比重有明顯提升,阿政大的小台優勢說是否存在就需要再深入觀察了。

在MultiCharts設定看大下小其實很簡單,只要在下單機的「委託參數設定」新增一個模組,並於「下單商品轉換」處依下圖方式做設定即可(其他設定建議不變):


重點在下單商品代號請輸入「MXF.%預設轉倉%」,如果不清楚MultiCharts下單機下單商品及轉倉設定可參考這篇

之後在MultuCharts自動交易設定下單模組再選擇這個「看大下小」模組即可。


歡迎加入LINE@
加入好友
(點擊上方圖示)

MultiCharts如何設定交易國外期貨(海期)

欲透過MC交易國外期貨要先行完成三項設定:1.開啟海期報價服務;2. QuoteManager(QM)新增商品;3.下單機商品轉換設定。

2016年8月22日

MultiCharts如何設定個股(現貨)

現階段國內MultiCharts並不提供現股API交易(可以股票期貨替代),但一樣提供即時報價,可以用來進行技術分析與策略回測,只要在QuoteManager新增商品即可,設定如下:

MultiCharts下單機下單商品設定

商品轉換的機制:連續月轉換成實際交易月份

我們都知道期貨同時有多個不同到期月份合約掛牌交易,各合約月一到期該商品就結束,為了有一個連續性資料以利分析研究,報價軟體都會自設一個連續月報價,作法是把各合約月價格資料連貫起來,MC也不例外,無論是回測績效或是即時自動下單,我們都習慣在連續月商品上來進行。

2016年8月11日

MultiCharts程式交易自動下單設定(以統一期貨MultiCharts為例)

請改至統一期貨官網最新MultiCharts自動交易設定教學:



===========================================
(以下為舊資料)

當程式開發完成,要上線實單交易,最後一哩路也是最重要的就是MultiCharts的自動下單設定。自動下單設定主要分兩塊,一是下單機設定,另一是MC自身自動交易設定。以下說明MC程式交易自動下單設定方式,建議使用者完全採用此設定以確保委託順利送出,另外如交易人為使用MC手動下單功能(圖表下單或DOM下單)請參考這篇設定說明:「MC手動委託下單模組設定(圖表下單或DOM下單)」。


2016年8月8日

【MultiCharts】2行程式碼完成均線交叉策略

寫程式交易語法/腳本,其實就是把交易邏輯轉化為程式語言的過程,簡單講就是先把邏輯定義出來,然後用適當的語法表達出來,這邊所謂”適當的語法”有許多是Power Language已內建的函式或關鍵字就可以搞定,所以要學開發程式,不用想的太困難或太複雜,先從簡單的以及已經內建在MC的範例開始切入,透過不斷演練與經驗累積,慢慢就可以學會駕馭程式語言。

2016年8月2日

統一MultiCharts如何取得下單測試紀錄



為什麼要測試?

依主管機關規定,交易人向期貨商申請API服務應符合特定資格並完成測試方可使用,除了要符合規定外,事實上API與自動下單都是屬於比較進階甚至高風險的交易方式,實際下單前先行測試不但可以協助熟悉系統,也能提早防範可能風險。

只要在測試環境委託成功1筆以上,即可視為測試紀錄,作為申請正式MultiCharts使用權限依據。

券商版MultiCharts與專業版MultiCharts比較

券商版MultiCharts與專業版MultiCharts主要差別在於券商版部分功能被關閉或是限縮,其中無法呼叫外部函數庫(DLL等)對進階使用者影響較大,整體而言,券商版MultiCharts使用成本低,基本功能完整,可以滿足大多數使用者需求,當然如果程式策略開發需呼叫外部函數庫,就須採專業版方案。兩者功能差異如下表:

功能差異
專業版
券商版
圖表視窗
最多同時開10
市場掃瞄視窗
1
Portfolio Backtester 回測
無此此功能
最佳化演算
最多執行運算一萬次
Power Language 腳本中呼叫外部函數庫
無法使用 DefineDLLfunc, External,
External Method
Power Language 腳本中輸出資訊至文字檔
無法使用 print, fileappend, filedelete


安裝統一期貨MultiCharts




請依下列流程正確安裝統一期貨MultiCharts:

1.程式下載網址:統一期貨官網MultiCharts下載

2.安裝軟體:「統一期貨MultiCharts主程式」、「MultiCharts下單元件」、「MultiCharts行情元件」、「國內三年歷史資料包」,請依序全部安裝。安裝程式有32位元與64位元之分,使用者可自由選擇。

3.請以管理者身分執行安裝檔:在下載來的執行檔上按滑鼠右鍵,選擇以「以管理者身分執行」

4.完成安裝後,在桌面捷徑設定預設為一律管理者身分執行:桌面捷徑「President MultiCharts」按滑鼠右鍵→內容→相容性→勾選「以系統管理者身分執行此程式」。

如何申請統一期貨MultiCharts(券商版與專業版)

MultiCharts有券商版與專業版(功能比較),兩者的申請方式如下:

券商版統一期貨MultiCharts:

券商版MC以向券商/期貨商透過簽署投顧合約方式承租使用權,月租費約$1,000~$1,500,即時報價、歷史資料、自動交易等功能都包含在內,雖然比起專業版MC有小部分功能受限,但券商版MC已可符合多數程式交易需求,費用也相對低,適合初入門者採用。

向統一期貨營業員提出申購統一期貨券商版MultiCharts後,並完成以下條件即可使用:

1.完成測試(測試環境委託成功之交易紀錄)
2.簽署API風險預告書(「應用程式介面API交易聲明申請書」)
3.簽署投顧合約並完成匯款

<完整申請說明>

專業版MultiCharts:

首先就是要先自備專業版MultiCharts軟體,目前國內由凱衛資訊代理販售,另外需向統一期貨營業員申請開通MultiCharts-API權限,並完成以下條件即可使用:

1.完成測試(測試環境委託成功之交易紀錄)
2.簽署API風險預告書(「應用程式介面API交易聲明申請書」)

2016年6月16日

關於除息逆價差與程式交易

每年七.八.九月台指期因除息關係進入大幅逆價差狀態,根據過往經驗,此期間偏多操作是相對有利(假設其他如行情因素等條件不變),我們看到有些程式交易系統會在這期間放偏多的濾網。雖如沒有回測或詳細統計數據,這樣的想法邏輯上也講得通,台指期逆價差是先反應除息點數,它的價格等於是假定完全不填息的情境,可是像中華電這類的股票能不填息嗎?不可能所有股票全部不填息吧。

另外要注意一個問題,就是除息點數有預估成分,因為在上市公司尚未公告配息金額前,也只能推估,例如以我們家研究部推估6/17這天除息點數196點計,實值價差=期貨-加權+預估除息點數=8395-8568+196=23,算下來其實是正價差23點,所以根據上面這個逆價差作多的想法,現在優勢其實就沒這麼大。

馬後炮:昨天(6/16)是比較理想的點,不過行情就是這麼賤,先殺下讓你翻空去再拉上來用正價差讓你買高。

2016年6月13日

股票期貨大額交易人歷史資料下載


股票期貨大額交易人歷史資料(2012/12~2016/5):載點
(備註:資料整理自台灣期交所官網,僅供參考。)