COCO研究院

 找回密碼
 註冊
搜索
樓主: crunchor

[其他程式語言] Programmer想用Java寫backtest/live trade system, 如何學最好?

  [複製鏈接]
 樓主| 發表於 13-9-5 00:27 | 顯示全部樓層
kilroy 發表於 13-9-4 23:58
that's peculiar saying "want to do more"

how could it be more than "just like that"

fromphilipz:

的確,但TS、MC有先天上的限制,這些交易平台沒法同時匯入多商品資料,如選擇權程式交易。因選擇權主要是隨期貨指數變動,如果單只用選擇權價格來開發策略,是否倒果為因?
另外,個人的策略是Tick資料,且不用TS、MC的技術分析方法,個人是用訊號處理和模式辨識的方法開發策略,加上個人熟悉JAVA語言,所以才自行開發,且從無到有的開發過程中,更能深入了解整個策略的發想和改進地方,這也算是自行開發的另一個好處,個人是興趣驅使,所以就算沒開發出能獲利的策略,也當作是練習程式基本功。



評分

參與人數 2金錢 +10 收起 理由
philipz + 5 感謝引用~
kilroy + 5 感謝分享~~

查看全部評分

發表於 13-9-5 00:45 | 顯示全部樓層
我記得以前有人用matlab來寫 你要不要試試 剛好符合你的訊號處理和模式辨識

但是 我贊同其他大大的看法 都覺得研究現有的program比研究怎麼開發program快

多了
發表於 13-9-5 00:58 | 顯示全部樓層
kilroy 發表於 13-9-4 23:58
that's peculiar saying "want to do more"

how could it be more than "just like that"

記得類似的問題以前也出現過,尤其是來自會寫程式的人。
討論總是會有人勸你不要reinvet the wheels, 也有人說,讚,唯有自己寫的才能‘成長’。
當然到最後是自己才能決定。

第一類的(包括我),都很好奇是什麼事C#做不到,畢竟 C# 本身是个 'complete language' (或是稱 Turning complete, 麻煩谷歌定義)
看你的po文應該是覺得學習各個系統自身的API一來很煩,花時間,二來搞不好還有bugs, 還是自己寫才有100% control. 譬如 http://www.ninjatrader.com/support/helpGuides/nt7/index.html 有完整的手冊,不盡理想,但是可用了。裡面你會看到,甚至了解,trading system 本身的複雜度。

當然每個系統都有他的限制。譬如, Ninjatrader 裡, 可以同時看 譬如 1min, 5min, 30min, 等等 的所謂 multi-timeframe 分析。但是,如果你的主要分析是5min (primary), 然後在加上1min, 30min,等,那麼各個分析的code 的執行順序就固定是如此, 無法做到1min的code先跑完在跑5min的code,等等的限制。

我的保守估計,像MC  或是 Ninjatrader 之類的,沒有20萬行跑不掉。
能先把requirements 搞清楚,好的 design, coding, debug, 等,恐怕會遠比花時間熟悉API多得多。

況且,如果你都不用built-in的fucntions, 就剩下學習如何拿data, 經過你自己的code,然後在叫order execution functions, 說老實話,要學的真的不多。

所以除非你非常確定你的問題實在無法在這些系統的架構上寫出來,或是非常eager的自己寫一個trading system, 還是建議三思。

也許你會覺得自己獨特要做的事不方便給例子,沒關係。 只是想好奇,從datafeed 拿到的東西就是price 和 volume, 請問還有其他什麼?

請千萬不要誤會成,我不是用‘傳統’的技術分析,所以必須自己寫一個。

FYI, 我寫了8個月,超過2萬行的trading system, 除了和Ninjatrader 要price/volume, 和order execution之外,沒有用到任何一個'indicator' function.



評分

參與人數 1金錢 +2 收起 理由
ambercrystal + 2 只賣NT五千以下的MC有市場,下次創業可考慮.

查看全部評分

 樓主| 發表於 13-9-5 01:18 | 顯示全部樓層
bb2260 發表於 13-9-5 00:45
我記得以前有人用matlab來寫 你要不要試試 剛好符合你的訊號處理和模式辨識

但是 我贊同其他大大的看法 都 ...

簡單的indicator就是, 例如..macd..那麼簡單的.

 樓主| 發表於 13-9-5 01:20 | 顯示全部樓層
balance 發表於 13-9-5 00:58
記得類似的問題以前也出現過,尤其是來自會寫程式的人。
討論總是會有人勸你不要reinvet the wheels, 也 ...

從datafeed 拿到的東西就是price 和 volume, 請問還有其他什麼?
你....思想就是limited在price and volume吧.

發表於 13-9-5 01:43 | 顯示全部樓層
crunchor 發表於 13-9-5 01:20
從datafeed 拿到的東西就是price 和 volume, 請問還有其他什麼?
你....思想就是limited在price and volu ...

我的問題是,請問,datafeed 能拿到的,除了price(OHLC), 和 volume, 還有什麼?

發表於 13-9-5 02:27 | 顯示全部樓層
從 C 大的用語應該是香港朋友, 台灣期貨商的API經驗可能對您沒幫助, 如果您一直想自己設計自己的系統, 查詢一下有那家香港交易商有開放API讓用戶讀取報價和下單, 這樣您就可以自己寫自己的系統. 台灣交易商給的API範例都是C++/C#/VB/VBA, 倒是沒有Java, Java 就要自己處理了.  台灣期貨商提供的API範例一般長這樣子: http://www.yuantafutures.com.tw/ytf/events/api/download.html

如果您對外匯保証金商交易沒有特別壞印象, 記得 Fxcm, Forex.com 也有提供 免費 API 外接(即時報價和下單功能)讓使用者使用, 帳號可以免費申請 demo account 來試, Fxcm 的 API 範例除了 C++/C# 還有 Java, 最新版甚至有 Android NDK, 我在他們論壇上還看到有人在 Android 平台上跑出結果, 個人只懂 C++/C#, 不懂 Java, Android NDK, 就要您自己去試試, 懂 Java 作 Android 應該很容易上手.   裡面含外匯和主要指數商品, 也含恆生, 應該夠玩了, 測試結果可以另外下載MT4用同一個帳號在那裡監看.  有什麼問題您可以在他們自己開的論壇發問, 這家 API 對個人沒啥用, 純脆是分享給您作免費實驗用, 有問題就不要來問我了:)

Fxcm API SDK:

http://fxcodebase.com/wiki/index.php/Download

那裡面找找有沒有 Java sample codes, C# sample codes 的在這裡:

http://fxcodebase.com/wiki/index ... exConnect_.NET_API_(Win32/Win64)

論壇:
http://www.dailyfx.com/forex_forum/forexconnect/

這個論壇掛在他們家的 Dailyfx.com 下面, 那裡面應該可以看一篇有人用他們最新 Android API 作出來的示範.


使用 API 一定有即時報價和下單這兩個功能, 但最大的困擾在於 historical price data, 有的交易商會讓使用者讀取, 有的沒有, 如果要作 tick 即時處理的日內交易, 沒有太長的 historical data 其實也沒啥差, 就在開盤前把程式開起來即時收報價即可.

評分

參與人數 1金錢 +2 收起 理由
balance + 2 A大的資源都是獲益良多!

查看全部評分

 樓主| 發表於 13-9-5 09:43 | 顯示全部樓層
ambercrystal 發表於 13-9-5 02:27
從 C 大的用語應該是香港朋友, 台灣期貨商的API經驗可能對您沒幫助, 如果您一直想自己設計自己的系統, 查詢 ...

我主要是想看backtest的, 那麼什麼language都ok, 我主要是看logic. live trade香港得一間國際broker IB interactive Broker有api, 他們主要用java socket.

發表於 13-9-5 09:55 | 顯示全部樓層
小弟也是自製交易系統的開發者~從什麼都不懂到現在我用自己的系統交易快兩年了~一開始連Java也是邊做邊學~不是很敢檢討自己的目標到底是什麼~就怕撐不到最後

很想回答crunchor的問題~不過一整個大哉問我實在無從說起~一個完整通用的系統要考慮的問題實在太多了~很多不曾想過的細微末節都會在實做時爆發

我的建議是先鉤勒出幾個大模組的輪廓~最好可以畫出流程圖~更進一步可以定義資料結構~然後試著想像編譯的結果與執行流程...之後點點點有興趣再討論吧

評分

參與人數 2金錢 +7 收起 理由
philipz + 5 神人,有機會交流一下~
rockwell + 2 就是要先想好架構才能寫啦~~~

查看全部評分

發表於 13-9-5 10:37 | 顯示全部樓層
會寫程式明顯是個優點,但是也可能是缺點,會想要把事情自己搞定,而忘了目標是要能賺就好
發表於 13-9-5 10:40 | 顯示全部樓層
一般來說, 設計 backtest module 就是把 historical price data 先放在一個 database 如 Sql, 依序把價格讀出來讓您的 Strategy module 來作虛擬下單, 再把下單結果放在程式裡一個 datatable object, 最後把 datatable 裡的所有交易紀錄作一個統計即可.  

如果您已經有 Amibroker, 而策略還不太容易用 Amibroker 來作和 backtest, 雖然不知是什麼邏輯, 但猜想應該是對 tick 跳動很敏感的策略, 如果一個交易日的日內交易會產生十幾次買賣動作, 我剛看了一下 IB API 的網站, 他們有 paper trader 可利用, 如果用Fxcm API 以 demo account 來模擬測試, 您就直接每天都讓您的策略直接下單下去, 反正是 demo account 不是真錢, 根據當天虛擬交易結果來修改明天要測試的參數.

另外一種替代方式就是直接把即時價格用程式畫出圖, 您策略的買賣點產生後再畫上買賣標記, 先用"看"的來判斷策略好與壞, 如果策略是對價格跳動敏感, 就不需要用 K 線圖來畫, 雖然微軟免費提供的 MSChart control 可以畫許多種技術線圖包含K線圖, 但程式只要把價格有跳動才畫在圖上, 這就是所謂的 tick charting (記得 tick charting 不少交易軟體都有內建這個功能..., Amibroker 沒有嗎?), 如果嫌點會畫的太多, 以恆生指數期貨為例, 比上個價格+/-2 點才畫, 這樣就可以減少許多點, 放大這個正負值, 就成了變種的 non-time based 的 Renko chart, 這對程式是寫法最簡單的, 連 timer event 都不用設了, 有價格變化才畫, 希望對您有幫助.

 樓主| 發表於 13-9-5 11:26 | 顯示全部樓層
jinace 發表於 13-9-5 09:55
小弟也是自製交易系統的開發者~從什麼都不懂到現在我用自己的系統交易快兩年了~一開始連Java也是邊做邊學~ ...

Hi 版主大大, 你開始時是如何學的? Java我是懂的, 只想想知道backtest/live trade的基本structure.

 樓主| 發表於 13-9-5 11:31 | 顯示全部樓層
ambercrystal 發表於 13-9-5 10:40
一般來說, 設計 backtest module 就是把 historical price data 先放在一個 database 如 Sql, 依序把價格讀 ...

學了如何用amibroker出去工作沒有用又難找出如何做好多事, 不如用java學好java好過, java高手本身已經好值錢.

For example, in amibroker I need to do something like these:
Buy   = Sell = 0;Short = Cover = 0;
it doesn't make sense in programming point of view, it is just amibroker has this kind of programming. It really wastes of time to find out how to do just something like this and have no meaning other than doing this in amibroker program, then why not just write my own program and it is much faster to write my own program than keep finding how to do everything in amibroker.


發表於 13-9-5 11:35 | 顯示全部樓層
crunchor 發表於 13-9-5 11:26
Hi 版主大大, 你開始時是如何學的? Java我是懂的, 只想想知道backtest/live trade的基本structure.

...

其實架構就是C大你想的那本書上就有寫到了,雖然主要是用VBA,
但相信C大應該是讀得懂,自己改成JAVA,也許因此有進一步的想法。


PS.
我是買2009年那本,2012年那本應該也有架構,還多加了API連接的寫法。

 樓主| 發表於 13-9-5 11:54 | 顯示全部樓層
rockwell 發表於 13-9-5 11:35
其實架構就是C大你想的那本書上就有寫到了,雖然主要是用VBA,
但相信C大應該是讀得懂,自己改成JAVA,也 ...

I read 2009年那本 already, even just scan through but not carefully read. I wonder if the 2012 one is much better...

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-24 18:56

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |