25 3月 2009

小達人下單機 - 單帳號 - 多策略 - V2.0

V2.0
@ 提升下單機處理速度
@ 新增康和API下單(人工下單不支援)

使用注意
  • 請將自己的康和API內物件覆蓋過下單機內檔案,並執行[註冊元件]
    將自己的康和API註冊到主機內,未執行此動作無法使用此功能

更新方法:
暫時無提供自動更新,使用者下載後請執行資料夾內的[註冊元件]
之後會加入XP系統自動更新部分。



軟體名稱:小達人下單機
支援類別:單帳號多策略
發行版本:V 2.0
發行日期:2009/03/25

支援商品:
國內期貨:台股指數期貨     小型台股指數期貨          
     電子期貨       金融期貨          


軟體下載:本地下載

必要軟件:Microsoft .NET Framework 3.5     
     本地下載  官方下載
次要軟件:Microsoft Visual C++ 2005 可轉散發套件 (x86)     
     本地下載  官方下載

21 3月 2009

[公告] 小達人下單機系列 - 使用期限延長

由於近期在對三個程式做合併規劃,加上最近課業比較忙

開發進度也比較慢,希望使用者見諒


使用期限繼續延長,請使用者安心使用

近期會陸續將其他不同卷商加入

下單機將會做一次重大改版


屆時希望使用者配合,如有不便敬請見諒

19 3月 2009

進場交易後的絕對點數停損或停利

不論在使用HTS或TS的時候,很多人都不知道如何停損停利

其實,只要知道進場價位就可以去計算出停損點數

entryprice(0)函數是一個很重要的關鍵

沒有單在手上的時候,entryprice(0)是0
手上有單的時候,entryrpice(0)是入手價位

如此一來,假設停利點數20點
多單停利可以寫成 exitlong next bar at entryprice(0)+20 limit
空單停利可以寫成 exitshort next bar at entryprice(0)-20 limit

但是常見的錯誤寫法如下(TS語法)
進場後,20點停利(錯誤寫法)
if condition then
    buy this bar on close;
if marketposition > 0 then
    exitlong next bar at entryprice(0)+20 limit;


為什麼說上面的寫法是錯誤的呢?其實把上面的語法放在TS中
回測的時候會發現下圖

上圖,其實在進場後的下一根就應該要停利了,但是卻跳了一根K棒才顯示訊號
就對程式而言,程式很多要觸發的條件都是因為成立個某個事件(Event)在某
個Event觸發後才會成立,就程式交易的語法不難發現,很多涵數都是在K線結
束後才會做一次統計運算。就拿上圖來說,當進場後並沒有觸發到Event所以才
導致下一根不會出現訊號,進場後的下一根才產生 marketposition > 0 的條件

因此如果要修正的話
那表示在進場的同時就要同時給定出場訊號,我們將程式碼改下如下
進場後,20點停利
if condition then begin
    buy this bar on close;
    exitlong next bar at close+20 limit
end;
if marketposition > 0 then
    exitlong next bar at entryprice(0)+20 limit;




經過回測發現,果然隔一根就有停利訊號。

接下來測試停損
進場後,20點停損(錯誤寫法)
if condition then
    buy this bar on close;
if marketposition > 0 then
    exitlong next bar at entryprice(0)-20 stop;




進場後,20點停損
if condition then begin
    buy this bar on close;
    buy next bar at close-20 stop;
end;
if marketposition > 0 then
    exitlong next bar at entryprice(0)-20 stop;



如果進場的時候並非以this bar at close
一樣會有這樣的情形,我們一樣可以用下面方法修正
進場後,20點停利(錯誤寫法)
if condition then
    buy next bar at value1 stop;
if marketposition > 0 then
    exitlong next bar at entryprice(0)+20 limit;




進場後,20點停利
if condition then begin
    buy next bar at value1 stop;
    exitlong next bar at value1+20 limit
end;
if marketposition > 0 then
    exitlong next bar at entryprice(0)+20 limit;




進場後,20點停損(錯誤寫法)
if condition then
    buy next bar at value1 stop;
if marketposition > 0 then
    exitlong next bar at entryprice(0)-20 stop;




進場後,20點停損
if condition then begin
    buy next bar at value1 stop;
    buy next bar at close-20 stop;
end;
if marketposition > 0 then
    exitlong next bar at entryprice(0)-20 stop;

16 3月 2009

程式交易 - 消失的信號

在寫程式交易時,很多小細節都是許多人沒有注意的地方

如此一來常常造成寫的程式出現一堆無法預期的錯誤

信號消失想必是最嚴重的,也是最沒辦法接受的


通常會造成這個因素都是因為部分的邏輯錯誤與信號在同一跟衝突

A說:這應該是this bar才會出現的錯誤吧?
B說:我都是用next bar應該不會有問題吧?

其實邏輯錯誤跟this bar與next bar一點關係也沒有
用next bar也是會有信號消失

在這裡舉個例子:
以下這段應該很多人都會使用
這個消失的訊號常見於上下過度震盪的K線(TS語法)
if codition then
    buy next bar at value1 stop;

if marketposition > 0 then begin
    exitlong next bar at entryprice(0)+30 limit;
    exitlong next bar at entryprice(0)-20 stop;
end;


就字面上的意義就是:
當condition條件成立時,在超過value1的價位買進
當有多單的時候,以入手價位30點停利,入手價位20停損。

在盤中:




進場後

的確停利出場



盤後回測:



出場的信號消失了

反而被出場的信號取代








這種寫法的訊號,的確很容易被忽略

為了避免這種情形發生
用這種在寫停損停利的時候要注意使用的K線時態
停損停利的範圍儘量要超出預期K線可能的長度

[公告] 多帳號多策略使用者注意

此次升級後, 請注意系統設定的地方
API下單密碼是否正確

並緊急做修正

造成不便請見諒

15 3月 2009

小達人下單機 - 單帳號 - 單策略 - V2.0

V2.0
@ 新增康和API下單(人工下單不支援)

使用注意
  • 請將自己的康和API內物件覆蓋過下單機內檔案,並執行[註冊元件]
    將自己的康和API註冊到主機內,未執行此動作無法使用此功能

更新方法:
暫時無提供自動更新,使用者下載後請執行資料夾內的[註冊元件]
之後會加入XP系統自動更新部分。



軟體名稱:小達人下單機
支援類別:單帳號單策略
發行版本:V 2.0
發行日期:2009/03/10

支援商品:
國內期貨:台股指數期貨     小型台股指數期貨          
     電子期貨       金融期貨          


軟體下載:本地下載

必要軟件:Microsoft .NET Framework 2.0 以上即可    
     Microsoft .NET Framework 3.5     
     本地下載  官方下載
次要軟件:Microsoft Visual C++ 2005 可轉散發套件 (x86)     
     本地下載  官方下載

14 3月 2009

小達人下單機 - 日盛API - 單帳號 - 多策略 - V1.4

V1.4
@ 修正商品設定時開啟時,會顯示錯誤訊息

更新方法:
執行下單機時會啟動自動更新(Update.exe)程式
自動更新時會自動升級資料庫,已經設定資料不會遺失,不需重新設定
請使用者不要延用舊的資料庫
若要備份,請升級軟體版本後自行備份

軟體名稱:小達人下單機 - 日盛API
支援類別:單帳號多策略
發行版本:V 1.3
發行日期:2009/03/08
支援商品:
  • 國內期貨:台股指數期貨     小型台股指數期貨     
         電子期貨       金融期貨     
         非金電期貨      櫃買期貨     
         台灣五十期貨     台幣黃金期貨
軟體下載:本地下載
必要軟件:Microsoft .NET Framework 2.0 以上即可
     Microsoft .NET Framework 3.5
     本地下載  官方下載
次要軟件:Microsoft Visual C++ 2005 可轉散發套件 (x86)
     本地下載  官方下載

小達人下單機 - 日盛API - 多帳號 - 多策略 - V1.2

V1.2
@ 新增自動轉倉功能
@ 修正[系統設定] 功能無法自動儲存
@ 修正商品資料無設定時,按下自動下單會出現錯誤視窗
@ 修正部份Vista版本申請跟登入問題

以下信箱因為Vista版本註冊錯誤資訊, 資料庫資料已經刪除, 請重新註冊 BMW530ANDY@YAHOO.COM.TW
CYS13579TW@HOTMAIL.COM

更新方法:
重新啟動下單機即可



使用說明:
  第一次使用下單機或不熟悉者請務必詳細閱讀

軟體名稱:小達人下單機 - 日盛API
支援類別:多帳號多策略
發行版本:V 1.2
發行日期:2009/03/14
注意:此版本資料庫與單帳號架構不同   請使用者勿將單帳戶的資料庫直接轉移使用

支援商品:
  • 國內期貨:台股指數期貨     小型台股指數期貨     
         電子期貨       金融期貨     
         非金電期貨      櫃買期貨     
         台灣五十期貨     台幣黃金期貨
軟體下載:本地下載
必要軟件:Microsoft .NET Framework 3.5
     本地下載  官方下載
次要軟件:Microsoft Visual C++ 2005 可轉散發套件 (x86)
     本地下載  官方下載

13 3月 2009

台股結算日(BalanceDay)

相信已經有不少人發表過如何判斷結算日
在此將下單機中計算結算日日期分享給大家

已經將檔案轉成HTS與TS檔
懶的看的人可以匯入使用

使用方法:
  假設今天是 2009/03/13(近月為200903)
  BalanceDay(1)  = 1090218 (上個月結算日)
  BalanceDay(0)  = 1090318 (近月結算日)
  BalanceDay(-1)  = 1090415 (次月結算日)

  假設今天是 2009/03/19(近月為200904)
  BalanceDay(1)  = 1090318 (上個月結算日)
  BalanceDay(0)  = 1090415 (近月結算日)
  BalanceDay(-1)  = 1090520 (次月結算日)


TS新增自訂函數


HTS 版本(本地下載

BalanceDay
/*
 Mail: ChunI.Kuo@Gmail.com
 Blog: http://chunikuo.blogspot.com/
 
 Designed by Chun-I Kuo
*/

parameters: Length(Numeric);
vars: ShortDate(0), TM(0), MBD(0), Q(0), M(0), Y(0);

ShortDate = floor((date/100))*100;
MBD = BalanceDayOfMonth(ShortDate);

if date > MBD then // The balance day of this month has passed
 TM = floor(date / 10000) * 12 + month(date) - Length + 1
else  // The balance day of this month doesn't arrival
 TM = floor(date / 10000) * 12 + month(date) - Length;
end if

BalanceDay = BalanceDayOfMonth((Floor(TM/12)*100 + Mod(TM, 12))*100);

BalanceDayOfMonth
/*
 Mail: ChunI.Kuo@Gmail.com
 Blog: http://chunikuo.blogspot.com/
 
 Designed by Chun-I Kuo
*/

parameters: M1(Numeric);

if dayofweek(M1+01) = 0 then
 BalanceDayOfMonth = M1+18
else
 if dayofweek(M1+01) = 1 then
  BalanceDayOfMonth = M1+17
  else
  if dayofweek(M1+01) = 2 then
   BalanceDayOfMonth = M1+16
    else
   if dayofweek(M1+01) = 3 then
    BalanceDayOfMonth = M1+15
     else
    if dayofweek(M1+01) = 4 then
     BalanceDayOfMonth = M1+21
      else
     if dayofweek(M1+01) = 5 then
      BalanceDayOfMonth = M1+20
       else
      if dayofweek(M1+01) = 6 then
       BalanceDayOfMonth = M1+19;
      end if
     end if
    end if
   end if
  end if
 end if
end if



TS 版本(本地下載

BalanceDay
{
 Mail: ChunI.Kuo@Gmail.com
 Blog: http://chunikuo.blogspot.com/
 
 Designed by Chun-I Kuo
}

Inputs: Length(NumericSimple);
vars: ShortDate(0), TM(0), MBD(0), Q(0), M(0), Y(0);

ShortDate = floor((date/100))*100;
MBD = BalanceDayOfMonth(ShortDate);

if date > MBD then {The balance day of this month has passed} 
 TM = floor(date / 10000) * 12 + month(date) - Length + 1
else  {The balance day of this month doesn't arrival}
 TM = floor(date / 10000) * 12 + month(date) - Length;
 
BalanceDay = BalanceDayOfMonth((Floor(TM/12)*100 + Mod(TM, 12))*100);

BalanceDayOfMonth
{
 Mail: ChunI.Kuo@Gmail.com
 Blog: http://chunikuo.blogspot.com/
 
 Designed by Chun-I Kuo
}

Inputs: M1(NumericSimple);

if dayofweek(M1+01) = 0 then
 BalanceDayOfMonth = M1+18
else begin
 if dayofweek(M1+01) = 1 then
  BalanceDayOfMonth = M1+17
  else begin
  if dayofweek(M1+01) = 2 then
   BalanceDayOfMonth = M1+16
    else begin
   if dayofweek(M1+01) = 3 then
    BalanceDayOfMonth = M1+15
     else begin
    if dayofweek(M1+01) = 4 then
     BalanceDayOfMonth = M1+21
      else begin
     if dayofweek(M1+01) = 5 then
      BalanceDayOfMonth = M1+20
       else begin
      if dayofweek(M1+01) = 6 then
       BalanceDayOfMonth = M1+19;
     end;
    end;
   end;
  end;
 end;
end;

10 3月 2009

[公告] 剛剛上傳檔案錯誤

對各位使用者真抱歉!

剛剛才發現上傳錯檔案
已經更新檔案, 請使用者重新下載

[公告] 部份Vista版本申請跟登入問題

本問題已經於下版本解決
單帳號 - 單策略 V1.7 (含以後)
單帳號 - 多策略 V1.3 (含以後)

由於之前網頁連結上的版本是放V1.3
使用者透過申請成功後,自動更新到最新版


但是部分Vista使用者,會卡在申請地部分
請這些使用者重新下載檔案申請
(連結已經跟新到目前最新版)

以下信箱由於申請的時候沿用舊的程式造成申請失敗
這些資料已經刪除,請重新申請
單帳號 - 單策略
NEOSMALT@GMAIL.COM
U360659@GMAIL.COM
TPCTPC2003@YAHOO.COM.TW

08 3月 2009

小達人下單機 - 日盛API - 單帳號 - 單策略 - V1.7

V1.7
@ 修正沒有填入帳號時, 按下自動交易會出現錯誤訊息
@ 修正部份Vista版本申請跟登入問題
@ 修正轉倉後, 資料庫商品沒有更新並儲存


以下信箱因為Vista版本註冊錯誤資訊, 資料庫資料已經刪除, 請重新註冊
BMW530ANDY@YAHOO.COM.TW
NEOSMALT@GMAIL.COM

更新方法:
執行下單機時會啟動自動更新(Update.exe)程式
自動更新時會自動升級資料庫,已經設定資料不會遺失,不需重新設定
請使用者不要延用舊的資料庫
若要備份,請升級軟體版本後自行備份



軟體名稱:小達人下單機 - 日盛API支援類別:單帳號單策略
發行版本:V 1.7
發行日期:2009/03/08

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

軟體下載:本地下載

必要軟件:Microsoft .NET Framework 2.0 以上即可    
     Microsoft .NET Framework 3.5     
     本地下載  官方下載
次要軟件:Microsoft Visual C++ 2005 可轉散發套件 (x86)     
     本地下載  官方下載

小達人下單機 - 日盛API - 單帳號 - 多策略 - V1.3

V1.3
@ 新增自動轉倉功能
@ 修正沒有填入帳號時, 按下自動交易會出現錯誤訊息
@ 修正部份Vista版本申請跟登入問題
@ 資料庫版本1.2

以下信箱因為Vista版本註冊錯誤資訊, 資料庫資料已經刪除, 請重新註冊
BMW530ANDY@YAHOO.COM.TW

更新方法:
執行下單機時會啟動自動更新(Update.exe)程式
自動更新時會自動升級資料庫,已經設定資料不會遺失,不需重新設定
請使用者不要延用舊的資料庫
若要備份,請升級軟體版本後自行備份

軟體名稱:小達人下單機 - 日盛API
支援類別:單帳號多策略
發行版本:V 1.3
發行日期:2009/03/08
支援商品:
  • 國內期貨:台股指數期貨     小型台股指數期貨     
         電子期貨       金融期貨     
         非金電期貨      櫃買期貨     
         台灣五十期貨     台幣黃金期貨
軟體下載:本地下載
必要軟件:Microsoft .NET Framework 2.0 以上即可
     Microsoft .NET Framework 3.5
     本地下載  官方下載
次要軟件:Microsoft Visual C++ 2005 可轉散發套件 (x86)
     本地下載  官方下載