2019年10月6日

PowerLanguage如何寫「兩條均線越來越靠近(收斂)」

PowerLanguage怎麼表達「兩條均線越來越靠近(收斂)」?

思考一:兩條均線越來越靠近,意即兩條線間距變小,間距就是兩條均線相減的值,變小就是當下的值小於前一個值,就是value1 < value1[1]。

思考二:兩條均線可能短均線值大於長均線值,也可能相反,由於間距值不會是負數,所以用上計算絕對值得函式--absvalue()。

所以串起來,寫成程式碼即是:

value2=average(close,5);
value3=average(close,20);

value1 = absvalue(value2-value3);
if value3 < value3[1] then ....



2019年10月5日

PowerLanguage如何寫「4個條件中任3個以上符合即進場」

有一個簡單的方法,直接用語法說明,如下:

Condition1=…..
Condition2=…..
Condition3=…..
Condition4=…..

if condition1=true then value1=1 else value1=0;

if condition2=true then value2=1 else value1=0;
if condition3=true then value3=1 else value1=0;
if condition4=true then value4=1 else value1=0;

if value1+value2+value3+ value4>=3 then (進場)


4個條件中任3個符合即進場,重點是不限定哪3個條件符合,且4個都符合也要進場,用以上語法表達雖然感覺有點tricky,不過簡單實用,同理類推,m個條件中任n個以上符合即進場也可以比照辦理。

2019年9月24日

人類天性就是喜愛「複雜」

有一個實驗是這樣的:

兩個受測者AB被要求以試誤法(trail and error),根據螢幕提供的K線型態判斷後續走勢多或空,AB兩人彼此看不到對方,當回答正確,螢幕會出現「正確」燈號,判斷錯誤則會出現「錯誤」燈號。

實驗有個"壞壞的"設計,就是A看到的燈號是真實的,也就是A答對了,會如實看到「正確」的燈號,而B的燈號是隨機的,也就是B明明是答對了,但可能會看到「錯誤」的燈號。AB被告知,他們可以從這個程序找到判斷多空的法則。但是對於B來講,這顯然是不可能。

最後,開放AB兩人一起討論他們的判別法則。A解釋自己的法則,邏輯簡單且明確,而B的法則則顯得非常微妙與複雜,因為B被迫根據不一致的結論歸納判別法則。可是,AB經過意見交換後,A並不認為B的法則太過複雜且不合理,反而自覺自己的法則太過簡單而被B複雜的程序給說服。

這個實驗的啟示是,人類就是偏愛複雜!

註:本實驗改編自Paul Watzlawick1977年出版的《How Real Is Real?》一書。




2019年8月20日

MultiCharts如何寫KD、RSI或MACD指標背離

背離也算型態的一種,只要是型態屬性,在程式交易上就不太好處理,一方面程式碼不好寫,再者型態定義有主觀成分,看圖說故事,會有很多版本。不過背離在技術分析上算是很重要的一門,也是開發逆勢策略可以參考的方向,本文以KD指標為例(商品價格與K值背離),示範如何寫背離指標及相關策略。

2019年8月15日

做最壞的打算--評估績效再創新高所需時間

務實的程式交易者都知道,策略的好壞不在於它多能賺錢,而是它在如何挺過艱困時期,另外還有一個現實問題,就是當策略開始實單交易,先遇到賺錢行情還是虧錢行情差很大—即使最終總損益是一樣。

2019年8月12日

券商版MultiCharts如何輸出資料,匯到EXCEL做進一步統計或分析

我們知道專業版MC可以用Print指令將資料存到檔案,券商版MC則只能輸出到PowerLanguage Editor的輸出區,但為了進一步分析/研究資料,我們往往需要運用EXCEL做運算,本文教大家如何用券商版MC進行這個工作。

2019年7月30日

以(Open+High+Low+Close)/4取代收盤價(Close)

在MultiCharts的內建指標或策略,或是傳統我們學的技術分析,指標的運算多是用「收盤價(Close)」代表每根K棒來帶入計算,但其實一根K棒上由許多價格組成,時間架構越長的K線(例如60分K)則收盤價代表性更差了,因此我們可以把其他如Open、High、Low等引用進來,改以下幾種方式來替代收盤價(Close):
1. NewClose=(Open+High+Low+Close)/4; 
2. NewClose=(High-Low)/2+Low;
3. NewClose=(High+Low+Close*2)/4;  //(CDP指標公式)

2019年7月28日

多策略下在同一期貨帳戶,倉位互相沖銷又如何?

程式交易最後會走到多商品多策略階段,曾遇到不少用戶,對於多策略下在同一期貨帳戶會發生不同策略訊號間多空互相沖銷的狀況,感到不能接受、無法理解,例如某甲共有兩個策略,A策略作多,之後B策略空單進場,多空沖銷後,導致整個帳戶沒有部位,這種沒有部位的狀態,會讓人覺得彷彿從未進場過,也浪費手續費。

類似少數客戶喜愛指定沖銷(交易所預設沖銷順序為先進先出),為的是讓未平倉部位的成本價”看起來”比較漂亮。其實這都只是一種錯覺,從損益跟淨值的角度來看,不管是先進先出對比指定沖銷,或是A、B策略下在同一帳戶跟各自獨立下在不同帳戶來比,兩者都是不變的,這邊有個EXCEL範例,有興趣的朋友可下載來模擬看看。


2019年6月25日

Touchance3.0安裝與測試

申請Touchance需完成測試流程(下測試單)才能申請正式環境交易權限。請依下列指示完成測試。

2019年4月21日

【MultiCharts】如何自製「散戶指標」

散戶指標與小台指

「散戶指標」這個名稱有些刻薄,也可以換個講法稱為「反市場心理」,早期的「擦鞋童理論」,或是把市面投顧老師的多空看法統計編成指標,乃至當今用網路爬蟲蒐集時下最熱門的關鍵字等等,都是類似概念。本文介紹的散戶指標從小台指來切入,一般小型投資人資金有限多是操作小台,但是我們無從搜集散戶的小台留倉數據,於是換個角度,把三大法人的小台指留倉淨部位視為散戶的交易對手,也就是三大法人小台指留倉淨部位乘上負一就是散戶的留倉部位。

2019年4月6日

存股與程式交易:存股搭配程式空單避險策略

股市多頭再見萬點,但不少股票族追逐名牌、殺進殺出,卻仍沒賺到錢,徒呼負負,倒是有一個族群--金融存股族,以4~6%殖利率、官股銀行穩定低風險等誘人優勢,日漸吸引大批投資人投入。隨著股市長年走多,簡單的買進持有策略比起積極主動的買賣股票,不僅不費腦筋更取得較佳的績效,看著金融存股族們在相關粉絲社團展示著積少成多的股數以及遠勝定存的報酬,都讓人感受到這些投資人們喜不自勝的心情,令我輩程式交易者又忌妒又心嚮往之。

2019年3月30日

如何限制日內交易次數:EntriesToday(D) 、TotalTrades

函式:EntriesToday(D)

我們要限制日內的交易次數,尤其當沖策略會派上用場,最簡單的方式是用「EntriesToday()」這個函式,其中於括弧內指定日期,可傳回該日進場的次數,例如要限制每日當沖次數不超過3次,語法舉例如下:

用「斜率(LinearRegSlope)」/「角度(LinearRegAngle)」定義趨勢變化

有時我們看分析師的行情稿會有諸如仰角攻擊、均線走平這類的形容,確實,在MultiCharts裏用角度或斜率來定義趨勢是很直觀也容易運用的方法。

2019年3月3日

分批進場與分批出場

先建立一個觀念:把加減碼訊號分出來開發成獨立策略,再統整成一個投資組合(各訊號是獨立運行下單),往往比把多個交易訊號通通塞在單一策略裡要好,理由是分開寫可以獨立評估績效與調整,此外,合在一起寫也易發生因為語法控制不當導致訊號互相壓抑或是其他訊號不符預期的狀況。不過,還是會有需求要針對單一策略寫一些簡單的加減碼機制,介紹如下。

2019年2月17日

亞當理論與程式交易

「亞當理論」這四個字在市場算蠻常被引用出來,那倒底甚麼是亞當理論,該書第一章開門見山狂言「亞當理論會告訴交易者,市場最可能進行的方向。只要運用亞當理論的技術,交易者就可以預估並確實見到市場進行的路線」,但接著我們讀到不知所云的映象與對稱理論,難免感到失望。不過稍微了解了它的作者Wilder背景,Wilder作為一個技術分析大師最為人知(RSI、SAR等指標發明人),但其實他也是一位典型的投顧老師,包裝行銷、夸夸其談更是其專長,所以甚麼是亞當理論呢?筆者讀完真是覺得模模糊糊,硬要一言以蔽之,就是「順勢交易」四個字而已,其內涵倒也跟程式交易不謀而合。不過公道來講,書中提到的順勢交易、要停損、接受虧損、獲利加碼等等普世觀念,對新手來講算是整理的完整,值得一看,整理摘錄在文末。

2019年2月11日

範例程式碼下載(TEST)

  程式交易快譯通,快快學,慢慢想  

親愛的程式交易同好你們好,基於網路分享一起成長的精神,本站的範例程式碼在貼文中都有完整貼出來,但部落格(Blogger)在貼上程式碼有時會出現亂碼或短缺情況,或是網友複製貼回自己的PowerLanguge Editor會有缺漏,因此在這邊另外提供pla檔,下載後可以直接匯入PowerLanguge Editor。





$ 交易濾網:利用季節特性

程式碼下載:
https://www.dropbox.com/s/nstlg5qz7vtnti3/Day%20of%20week%20TEST.pla?dl=0



$ 突破缺口進場策略

程式碼下載:https://www.dropbox.com/s/gkacqqed4kmnjha/Breakaway%20Gap.pla?dl=0








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

【MultiCharts】突破缺口進場策略 (附程式碼)

在兩根相鄰的K線間,若出現空白的缺口,代表行情是以跳空方式開出第二根K線,且跳空後並沒有回測缺口,如下圖為一個向下跳空缺口。


2019年2月9日

【MultiCharts】交易濾網:利用季節特性

何謂市場的「季節性特性」

台灣股市有所謂「五窮六絕七上吊」,此句話的意思是:一年十二月份中,資訊硬體的產製、代工訂單營收等方面,在五月、六月時會達最低迷,連帶影響股市跌多漲少。舉凡元月效應、聖誕節旺季、開紅盤行情、中秋節變盤等等,都是市場或商品的一種季節性分析與描述。利用季節性特性來設計濾網的原理即是:在偏漲的日子盡可能做多,在偏跌的日子則盡可能作空,在有波動的日子放大部位,在清淡的日子盡量做壁上觀。


2019年1月21日

MultiCharts警示Alert功能(音效、Gmail等)

MultiCharts的Alert語法可以指示程式在符合特定條件時,以聲音、訊息視窗或是email(以Gmail為範例)通知使用者。本文介紹如何操作設定。


一、播放音效


當符合特定條件時需要系統發出提示聲響,主要有兩個作法,一個是在程式腳本下達「Alert」,MC圖表使用使再去開啟警示設定,此法只限定指標(Indicator);另一個方法是直接用「PlaySoung」語法,此法除了指標類外,訊號(Signal)也可採用,語法說明如下:



【方法一】在指標語法內寫「Alert」,再到MC圖表那邊進行指標警示設定:

我們直接以一個長短均線交叉為例,程式碼如下:

===============================================
Inputs:Len1(5),Len2(20);
Vars:MA1(0),MA2(0);

MA1=XAverage(close,Len1);
MA2=XAverage(close,Len2);
plot1(MA1);
plot2(MA2);

if MA1 cross over MA2 then Alert;
===============================================

設定產生「Alert」的條件,接著把上面指標放到MultiCharts圖表上,設定該指標「警示」功能,如下圖所示,至於音效檔為WAV格式,有需要其他不同音效也可以自行上網搜尋下載:



【方法二】使用PlaySound語法:
承上例,我們把alert改成PlaySound:

if MA1 cross over MA2 then PlaySound("C:\ding.wav");

"C:\ding.wav"為音訊檔存放位置,這個寫法適用指標類及訊號類,也不用另外去設定警示功能。


二、Gmail警示通知


延續上例,我們希望當均線交叉時發Mail通知,程式語法同上,我們希望通知內容可以完整詳細一點,可以在Alert後面使用Text函式補充,例如:

if MA1 cross over MA2 then Alert(Text("Cross over", GetSymbolname);

其中Text函式可以放補充資訊,會在通知郵件中顯示。

完成程式碼後,把指標放到圖表中,一樣到設定指標去設定警示(Alert),如下圖所示:




設定完成後可以透過設定區左下方的測試鈕進行測試。通常會寄送失敗多是Gmail安全性設定問題所致,可在登入Gmail狀態下進入下面網址進行開啟「允許低安全性應用程式」設定,如下圖:



成功設定後,收到的email通知樣式如下:

凱衛資訊有提供MultiCharts券商版用戶手機APP(Multicharts+)可即時接收委託、成交回報,但訊息有限,透過email雖然比較笨拙點,但也不失為一個監控Multicharts的解決方案。當然如果是專業版的MultiCharts則可以外掛DLL另外連結其他通訊軟體來做即時通知功能。

2019年1月8日

如何推估收復資金回撤(DrawDown)的交易次數或時間

連續虧損或稱資金回撤(DrawDown)是程式交易者不可避免的狀況,策略如何在最短的時間內收復失土稱為策略的「復原能力」,但所謂的復原能力其實是假議題,能不能復原?多快復原?主要仍取決於行情而非操之在己,我們的注意力還是應該放在如何控制虧損以及當虧損發生後能有合理的預期及因應措施。本文教大家如何推估收復資金回徹的交次數及時間。