Google Analytics

顯示具有 高頻交易 標籤的文章。 顯示所有文章
顯示具有 高頻交易 標籤的文章。 顯示所有文章

2017年1月31日 星期二

Excel VBA 程式交易編程教程(1)

Excel VBA 程式交易編程教程

- 3人或以上成班
- 包講義PPT 及源碼模版 (source code and Excel Template)
- 可配合SP Trader, Excel Realtime 或其他DDE / Web Service 價位導入 (e.g. Bloomberg , Telequote, MSN Money, MT4.)
- 課程約1-2小時
- 可網上教學
- 歡迎經紀/機構合作機會

1. 編程初階預備班 (1) - 學習技巧 : 針對未有編程基礎學員, 教授Excel 及VBA編程最基本
                                         包括 : Excel  宏 , VBA 開發環境 , 編程基本 : 數據型態, 變量,運算式, 控
                                         制 , 自訂函數/過程, 常用Excel / VBA 內建函數
                                         課程包括1個月內免費電郵學習查詢
                             範例 : (1) 宏 (Macro)
                                        (2) 簡單實例
                                       
費用 : 每位HKD 80

2. 編程初階預備班 (2) - 學習技巧 : 針對未有編程基礎學員, 教授Excel 及VBA編程最基本
                                         包括 : Excel VBA 中的Application , Workbooks, Worksheets, Range  ,
                                        Cell 等對象, 屬性, 方法及事件
                                         課程包括1個月內免費電郵學習查詢
                             範例 : (1) 計算股票 MACD 值
                                        (2) 計算以MACD策略交易股票的回報統計分佈
                                       
費用 : 每位HKD 80

3. 編程初階預備班 (3) - 學習技巧 : 針對未有編程基礎學員, 教授Excel 及VBA編程最基本
                                         包括 : Excel VBA 中的窗體控件運用, 簡單繪圖, 文字檔輸入/輸出/處理
                                         課程包括1個月內免費電郵學習查詢
                             範例 : (1) 讀取股價檔並繪制股價圖
                                        (2)用戶介面設計並記錄用戶動作(audit log)
                                       
費用 : 每位HKD 80


1. 編程初階 (1) - 學習技巧 : 針對程式交易的VBA編程簡單技巧
                             範例 : (1) 技巧展示模板
                                        (2) 歐式期權即市理論價及風險參數計算
                                        (3) 板塊股票52周新高/新低提示
費用 : 每位HKD 80


2. 編程進階 (1) - 學習技巧 : 抓取即市數據分析處理
                             範例 : (1) 即市期指四度空間分析(Market Profile)
                                        (2) 即市期指XO點數圖(Point & Figure Chart)
   費用 : 每位HKD 150

3. 編程進階 (2) - 學習技巧 : 抓取即市數據存檔,整理及繪圖
                             範例 : (1) 即市期指Tick數據抓取存檔
                                        (2)  即市期指Tick數據轉1分鐘數據, 並據此繪畫陰陽燭圖
 費用 : 每位HKD 300

4.  編程進階 (3) - 學習技巧 : 簡單期指即市下單程式製作 , 針對單一合約單一下單量, 可配合SP Trader 以及部份網上交易平台
                           範例 : (1) SP Trader 版簡單期指下單機

費用 : 每位HKD 150

5.  編程進階 (4) - 學習技巧 : SP Trader 簡易下單程式製作 , 可針對不同合約(股票,牛熊, 認股証, 期指, 指數期權)不同下單量
                           範例 : (1) SP Trader 版進階下單機

費用 : 每位HKD 300

2012年6月12日 星期二

淺談Metastock回測分析系統的不足(二)

用過Metastock System Tester 的都有同感, 如果只是用來回測簡單的交易方法, 如只測試以定額定量以簡單技術指標(e.g.移動平均)買賣一只股票, 那System Tester 是焯焯有餘的, 但如需要更細緻的, System Tester 就顯得吃力. 例如要測試即日開倉即日平倉, 又或測試一個股票組合, 又或測試金字塔式加減倉, 又或如何確定檢查過去一段時間有沒有開倉而決定下一個信號是開倉還是平倉還是止賺止損等等, 即使Metastock 提供了個別有關模擬測試的函數到Formula Language, 然而助力有限, 要撰寫一個在任何時間周期都正確運作的回測需要的Formula Language程式, 是不一定能寫到/需要很間接的寫法, 而且不能直接應用到Expert Advisor實際操作 .

Metastock 有這樣的困境, 主要在於Formula Language的局限性, 欠缺簡易跟其他流行的原形程式語言(Prototyping language)互通的介面, 以致在其他語言很易做到的像回圈, 記憶, 陣列等在Formula Language 都成了很大的障礙, 這個在之前的博文己談及.

另一方面Metastock 近年的改進是比較少和慢, 筆者感覺是有點吃老本, 是需要加快步伐. 先不說上面的限制, 就是在性價比, 組合測試追蹤, 免費試用, 數據接入以及系統開放度就跟一些後起之秀如Amibroker ,NinjaTrade, MT4等有點距離, 特別在測試和EA方面.

2012年6月11日 星期一

淺談Metastock回測分析系統的不足(一)

回測(Backtest)是一個十分重要的程式交易的部分. 正如上陣打仗不會派未有受過演習訓練的士兵, 這看來好像是天經地義的事, 然而很多技術圖表投機者僅靠一些紙上談兵, 老生常談的指標, 加上幾張看似符合走勢的股票期貨走勢圖就以為執到寶. 這也是為什麼有那麼多人花了那麼多錢去學什麼技術分析到頭來一無是處.

正因為那麼多人道聽塗說, 所以前幾年有人出了本"Evidence based Technical Analysis" , 對如何評估技術指標提出了比較實是求是的科學方法. 可惜這些東東還沒在這裡坊間流行起來. 媒體上還是充斥一班說得天花亂墮的財經推銷員

要知道Backtest的重要, Metastock 專家David Jenyns 在他的網頁中提出頗為精要的見解
                                                                                                                                                                                          
Dr. Van Tharp in "Trade Your Way To Financial Freedom" describes the 3 components of successful trading to be: the system, money management & your psychology. The only way I know to improve all 3 components is through backtesting.

2012年6月10日 星期日

如何測試外匯交易策略 (6)

再以60分鐘周期數據在同一期間作測試

3白兵 (連續3陽燭買進)
 止賺: 100點      止損: 50 點    實現盈虧(P & L) : -200點
止賺: 50點      止損: 100 點    實現盈虧(P & L) : -100點
止賺: 50點      止損: 150 點    實現盈虧(P & L) : -50點
止賺: 150點      止損: 50 點    實現盈虧(P & L) : -250點
止賺: 200點      止損: 50 點    實現盈虧(P & L) : -250點
 止賺: 50點      止損: 200 點    實現盈虧(P & L) : 100點
 止賺: 20點      止損: 50 點    實現盈虧(P & L) : -20點
止賺: 20點      止損: 100 點    實現盈虧(P & L) : -240點
止賺: 30點      止損: 100 點    實現盈虧(P & L) : -210點

有趣的是, 在該段數據期間普遍逆市的情況下, 以相同技術指標及止賺<止損的情況下, 短周期的買賣似乎比長周期的風險為小.

2012年6月6日 星期三

如何測試外匯交易策略 (5)

把之前的測試以VBA 來實現, 更易作出在不同止賺止損組合不同策略的比較, 驗證書本上的理論. 制作方法詳見相關VBA中/高級課程.

3白兵 (連續3陽燭買進)
止賺: 50點      止損: 100 點    實現盈虧(P & L) : -50點
止賺: 50點      止損: 150 點    實現盈虧(P & L) : -150點
止賺: 150點      止損: 50 點    實現盈虧(P & L) : -200點
止賺: 200點      止損: 50 點    實現盈虧(P & L) : -200點
 止賺: 20點      止損: 50 點    實現盈虧(P & L) : -140點
止賺: 20點      止損: 100 點    實現盈虧(P & L) : -20點
止賺: 30點      止損: 100 點    實現盈虧(P & L) : -90點

把測試程式的買賣思路反過來, 看看順勢交易下止賺止損的影響

2012年6月5日 星期二

如何測試外匯交易策略 (4)

透過Excel 我們可以作出更多交易程式能力以外的分析
先貼上數據段的大約走勢


 

1. 日內是否有慣性較波動的時段?
     我們可以以高低幅度來量度波動程度. 就觀察的數據而言, 可見在英國時間8:00-16:00 時間較波動, 尤以10:00-11:00 及 15:00- 16:00 附近區間為多, 要在短時間掌握波幅的炒家可以留意.



2012年6月4日 星期一

如何測試外匯交易策略 (3)

很多散戶接觸過推廣槓桿式外匯的經紀, 都聽過以下的一番演辭
"在槓桿式外匯市場賺錢其實不難, 每天基本上都有3種市況, 上升, 不動, 下跌. 外匯市場深度夠, 每一刻都有人看升看跌, 3種市況 機會都大致相等,就算你不懂看市, 只要保持1分止損3分止賺的策略, 那就輸小小, 嬴多多, 長遠就有錢賺".
一般還會建議以50點作止損.
不少散戶聽完都覺得有理, 急不及待開戶入市, 不久就會發現實際操作並未如經紀所說的一樣..

在便用歷史數據測試上, 我們更能看清楚實際的情況

例如我們以歐元兌美元EUR/USD 5分鐘作買賣周期, 以2012.5.17 - 2012.5.28期間數據測試. 我們假定以"3支陽燭"(3白兵)突破作買進信號, 入市後按V1及V2格確定入市後止賺止損的幅度. V1,V2可以調較以觀察不同止賺止損幅度及比例下的組合盈虧次數變化. 為簡易描述及展示, 這裡以Excel Formula 展示原理及交易細節, 讀者可自行以VBA把其中原理自動化, 或參考筆者相關的Excel VBA 交易編程課程

2012年5月31日 星期四

如何測試外匯交易策略 (2)

歷史數據是任何測試的基礎. MT4提供免費的歷史外匯數據 , 小至1分鐘周期, 可以導出至Excel 分析.  MT4本身也自帶歷史數據回測工具, 可以運用MQL4 編程制作, 這個有機會另述 .

打開MT4後, 選工具->歷史數據中心
選擇相關的貨幣合約及周期, 數據接收後見左方圖示變為黃綠色, 在右上顯示記錄數目



2012年5月27日 星期日

Excel 期貨自動下單程式交易示範

視頻見 http://www.youtube.com/watch?v=frGZyrd143s&feature=youtu.be

Excel 期貨簡易自動下單程式交易示範. 選擇視頻最佳品質

以Excel Realtime DDE, VBA 及 SP Trader 協同示範小型道指期貨(mini Dow Futures)程式交易設計及買賣, 以移動平均(Moving Average)作技術指標演示.
程式演示即市數據記錄, 下單工具,技術指標及交易參數設定, 指標產出, 交易觸發及記錄, 以及在SP Trader 介面核實下單情況及延誤. 有關其他策略演示及課程見本博客

注: 在博客下方亦有連結, 有寫上下單的時間

2012年5月22日 星期二

如何獲得接入交易程式的實時數據 ?

不少網友提及實現散戶程式交易的其中之一大難處在於實時數據的接入 , 無他, 錢作怪而已.

要品質最好的實時數據一定是從交易所, 專業供應商等用點錢買的. 一般除了成交價外會同時有市場深度什至參與者的數據等等, 而且亦已有既定的方法簡易地接入到自己撰寫的交易程式處理, 可以集中精力發展程式思路, 而且不會因處理接入數據費時而延誤交易程式的執行.

透過亙聯網可以接觸不少世界各地的實時數據供應商, 由於競爭激烈, 所以價格也十分相宜, 一般也就是一個月數百元的費用, 有些兼任交易商的如果在其中有交易戶口的還可以有折扣. Interactive Brokers 在這方面有不俗的知名度.

注意這裡所說的數據接入是指可以以簡便方式(如DDE , XML..) 輸出到功能強大而靈活的客戶端程式(如Excel , Metastock, Tradestation ...), 可以表現複雜的交易思路和信號的, 而非一般下載到的完全嵌入客戶端的 (像FATS, sp trader , fxcm ...), 那些數據只能在其客戶端目視而不能在其他程式使用.

2012年3月5日 星期一

Metastock LSS 狙擊手自動交易系統

Metastock 內建的著名EA還有不少, 這回介紹的是George Angell 的 Long Sell Short Sale (LSS)策略. George Angell 是一位實戰超過20年的芝加哥場內交易員, 靠短線操作及當日沖銷致富, 他對於短線投資人的第1 建議就是風險管理 , 另外亦要有勇氣, 耐心和獨立的判斷能力.有關George Angell 的短炒操作方法, 可以參考其著作<<狙擊手操作>>(Sniper Trading).George Angell認為市場本身就是個機率遊戲,短線炒家就是以市場概率推算未來的壓力及支撐,從而設置最佳停損點以及找出關鍵突破點。LSS系統就是根據這個原理產生 .

LSS的基礎是建基於「三日周期」理論 : 市場在第1天會出現最低點,然後上漲,第2天則會出現短線最高點,市場成交增加,第3天則會先出現高點,然後市場回挫,這3天分別稱作買進日(L)、賣出日(S),及放空日(SS),市場就以這樣的循環周而復始。所以炒家可以運用近3日的高低點、漲跌價差等數值計算出一連串相關的上下檔數值,稱之為買入封套(buy envelopes)及賣出封套(sell envelopes),再由封套內的數值加以平均,就可以計算出下個營業日的買點與賣點。




LSS系統幾個重要數字是上漲值、買進高點、今日高點、LSS軸點突破買入值、下跌值、賣出低點、今日低點,以及LSS軸點突破賣出值。

*上漲值:近3日的(今日高點-昨日低點)之平均值

*買進高點:近3日的(今日高點-昨日高點)之平均值

*LSS軸點突破買入值:

近3日的(((今日高點+今日低點+今日收盤價)/3)×2-今日低點 ) 之平均值

*下跌值:近3日的(昨日高點-今日低點)之平均值

*賣出低點:近3日的(昨日低點-今日低點)之平均值

*LSS軸點突破賣出值:

近3日的(((今日高點+今日低點+今日收盤價)/3)×2-今日高點)之平均值

由上漲值、買進高點、今日高點、LSS軸點突破買入值一同構成1組賣出封套;由下跌值、賣出低點、今日低點、LSS軸點突破賣出值則構成1組買入封套。將買入封套的4個數值加以平均,就可以找到次日的買入點,反之,將賣出封套的4個數值加以平均,就可以找到次日的賣入點。

2012年2月24日 星期五

Metastock RMO 自動交易系統 (二)

任何出色的交易系統大都屬於趨勢這蹤系統. 所以碰上區間窄幅振盪的時候就是系統表現最差的時候. RMO也不例外. 就以2/24 HSIG2 一分鐘市況為例, 早段大幅振盪, 但其後走勢趨向箱型. 在近12:00時系統會認為是三角型突破, 而給出買進的信號, 午後開市的幾根陽燭更令系統認為真正的突破而不停發出追買的信號, 卻冷不防遇到阻力, 在未達到止賺離場便已轉勢發出沽售信號, 然而
好景不長, 很快又轉勢, 如此反反覆覆, 如果每一個信號都跟隨, 而止損止賺又沒調至較保守的大小, 便會倉位增長太快, 虧損加快擴大 . 

如何減少這止情況發生  ? 以下一些建議
1. 限制在短期間追加倉位
2. 限制止損止賺的幅度
3. 監察在一個期間內止損及轉勢的次數和區間, 如果超過一個限度, 可以確定為無趨勢市. 

以上這些可以在Metastock Formula 上動手, 但更方便的方法是在Autotrade 自動下單程式上實行. 主要因為在C# 或VBA 等的多用途程式語言撰寫因應市況變化的風險管理系統遠較以Metastock Formula Language寫為容易 . 

如果想讀取產生信號時的價位資訊 , 是可以透過Metastock Professional附上的DDE Server 獲得, 這樣一來便可以在下單程式上以價位資訊作增值運算 (例如, 預測阻力支持位置或變更止賺止損幅度等), 不過即使沒有這個資訊, 也已可以作出一定的風險控制系統.