29 12月 2008

小達人下單機(日盛 API - 單帳號 - 單策略)

千年傳統,全新包裝,全新感受!

這次依舊遵循古法,重新釀製!



簡單來說就是換湯不換藥,從上次的初心版下單機
小達人下單機(日盛 API / 網頁 版)

依舊只有單帳號單策略版本,而且還拿掉網頁版下單功能(功能越減越少)
其實有用過API版本都知道,下單的速度就是不一樣,完全不是網頁版可以比。

因此在這個版本就拿掉這個功能,之後視情況在決定要不要加上去吧!


有下載此版本使用的人,如有建議,請踴躍回應



軟體名稱:小達人下單機 - 日盛 API - 單帳號 -單策略

額外需求:需要安裝 Microsoft .NET Framework 3.5
官方網站:Microsoft .NET Framework 3.5

軟體版本:1.0.0.0

支援商品:
  • 國內期貨:台股指數期貨     小型台股指數期貨
         電子期貨       金融期貨
         非金電期貨      櫃買期貨
         台灣五十期貨     台幣黃金期貨
         





下單機概述
-----------------------------------------------------------------------------
首先是認證畫面,第一次使用的人在此
填入E-Mail,就可以申請試用。


申請後請到信箱收信,填入認證碼來進
行下單機認證。

























這就是下單機主頁面

新增了人工下單部分
個別部位:此部位就是一般手癢單
程式部位:在此下單會影響到帳戶部位與策略是否同步

第一次執行程式要先設定帳號跟策略,以及交易的商品
























帳號管理畫面

期貨公司預設日盛期貨需要填入分公司,期貨帳號,以及交易密碼
分公司需要設定代號, 代號為三碼。分公司設定部分,請點擊旁
邊設定鍵進入設定

設定完後記得儲存設定

















分公司設定畫面

日盛有很多分公司,選擇你屬於的分公司,如果知道分公司代號
也可以在 "其他"的地方填代號

























策略管理畫面

填妥策略來源,設定格式以及其他細項

記得儲存設定

























商品設定畫面

設定好交易月份以及目前帳戶部位

設定好後存儲設定






















系統設定頁面

如果HTS路徑不同,記得設定HTS路徑 其他如同預設值即可。

18 12月 2008

回測數據(Backtesting)VS 最佳化(Optimal)

其實這問題已經存在很久了,不過由於自己太忙了也沒有去真實映證看看

很多人都說不要過度的最佳化,但是有參數就一定會伴隨一個問題
這個值是否適合?

因此很多人也喜歡最佳化,不可否認,最佳化的確很吸引人

這篇文章討論的觀點,建立在可以接受最佳化的程式上
在這裡探討三個觀點
  1. 回測完的資料是否為真實獲利?
    這是大家最常做的,利用回測完的資料來代表獲利數據,說幾年幾百萬
    ,但是是否真的資料就是如此呢?這個我們無從得知,但是因為後面的
    實驗,這個就拿來當對照組吧!

    概念圖如下,將歷史資料數據取出間隔的獲利來當基本對照組:


  2. 利用足夠長度的歷史資料跑最佳化
    這個觀念在於很多人會覺得,如果擁有足夠長的歷史資料,幾乎是可以
    當成一個完整的景氣循環的資料,那這樣子跑出來的結果可以涵蓋所有
    多頭空頭或盤整,這樣子的程式比較令人接受。

    概念圖如下,將累積的歷史資料取最佳值,來跑下一個時間區間:


  3. 利用區間歷史跑最佳化
    這觀念在於,認定市場在某段時間內都是有相同趨勢,例如多頭、空頭
    等,往前取一個區間來反應接下來的市場趨勢,隨著時間的前進,區間
    的資料也必須跟著時間軸做改變。

    概念圖如下,區間最佳化參數必須隨著時間變動跟著平移:

根據上面的想法,在這裡利用一個很簡單的交易策略來驗證上面的想法

歷史資料:1999/01/01 ~ 2008/09/30

交易策略:長短均線交叉、單口雙向、波段策略
     買進:交叉向上,且K線收上長均線
     賣出:交叉向下,且K線收破長均線

最佳化參數:短均線(2~40,以2增加)
      長均線(30~100,以2增加)

資料型態:30分鐘K線圖

交易成本:2000元/每筆

區間範圍:以三年為歷史一段區間,比較2004到2008年獲利

實驗結果:

上圖是直接利用完整的歷史資料跑出最佳化的結果,每個間距以年為單位,可
以觀察出該策略,從2002年到2008年9月有1862800的獲利,就波段程式而言
算是滿弱的,但是至少有獲利。根據這些資料發現,2003年的獲利賠了40800
,其他每年都賺有不錯獲利。


這張實驗主要是假設,如果這個想法是2001年寫出來的,那以當時的歷史資料
來最佳化,往後每年資料增加,就將歷史資料重新跑最佳化來跑下一年的績效
。上圖發現,獲利跟完整的歷史回測是有出入的,而且2003年反而是賺錢的,
賠最多的居然是2006與2007年,總績效卻降到1046400。


這個實驗以每三年做區間,往後每個一年,區間就跟著移動跑新的最佳化,來
驗證之後的績效,從這張圖發現,每年都有賺錢呢,雖然獲利依舊不如預期,
但是總績效也有1510000。


總結:
根據這次的實驗,我們發現最佳化的參數的確不適合應用在往後的市場上,但是
要如何取最佳化的方法,這又是另一個議題。
在這次簡單的實驗中,區間最佳化比累積長歷史區間最佳化的績效來的好,是否
都適合每種策略?或者把間距拉小用在5分K或更短是否也是有一樣的結果?這
就等之後的實驗在給大家報告了。