C#比JAVA適合做程式交易嗎? - 財經

Skylar Davis avatar
By Skylar Davis
at 2017-07-06T00:16

Table of Contents

※ 引述《chema (chema)》之銘言:
: 這問題對板上程式高手們,可能覺得很菜
: 但還是希望大家指教一下。
: 我目前從事交易員,因為有些交易模型在既有MC架構做不到
: 所以學習其他語言是必須的。這幾天有去補習班詢問C#的課程,
: 她們建議我學JAVA,可是我問了身邊做交易的人,多半用C#,
: 似乎沒有聽過使用JAVA在建構交易系統的
: 由於我是文科背景出身,對於各個程式語言的認識不是很多,
: 所以好奇程式交易上,使用C#的人數較多的原因是什麼?

要分 API 跟演算法兩部份

1、API

基本上,您只能從 Broker 有提供的 API 語言中,選一個

(也可能是協定,例如 REST,那就不限定語言了)

不外乎 Java、C++、C# 跟 Python

怎麼選?

有 Python 選 Python,沒有就依序選 C# Java C++

但不要花太多時間去學這部份的語言,API 只是要讓您的程式可以跟 Broker 做溝通

可以看的懂跟會稍微修改 Broker 提供的範例就好

2、演算法

基本功,要好好學

怎麼選?

Python,沒有之二,這廝演算法交易 (或說資料科學) 相關的資源太多了

除了基本語法外,先熟悉 NumPy (資料格式)、Pandas (資料處理) 跟 Scikit-learn (機器學習) 這三個套件

已經可以用傳統的機器學習做許多嘗試

再進階,可以試試 Deep Learning (深度學習)

好的是,深度學習一些主流開發框架例如 TensorFlow,也是以 Python 做前端

所以一開始就熟悉 Python 會更容易上手

那如果,演算法的語言跟 API 的語言不同,怎麼串接?

簡單一些,演算法就寫成 Console 程式,Java、C++ 或 C# 都可以呼叫 Console 程式做溝通

例如丟 10 根 k 棒的數據給 Console 程式,Console 程式輸出 sell or buy or ... 給 Java、C++ 或 C#

進階一些,可以寫成 Client Server 架構,概念上就是用一些網路協定做溝通

Socket、Thrift 或 gRPC ... 都可以做到

但最佳解其實是直接呼叫,大多也都找的到解法

例如 google:calling python from c# .net

回到最後的問題,程式交易上,使用 C# 的人數較多的原因是什麼?

我想是因為蠻多 Broker 提供的 API 中都有 C# 的選項,但 C# (或 Broker 選用的 API 語言) 是不是就適合發展演算法?

我想不一定,如前面提到的,API 只是要讓您的程式可以跟 Broker 做溝通

Broker 選用的 API 語言常常只是因為它們適合做溝通

--
Tags: 財經

All Comments

Ethan avatar
By Ethan
at 2017-07-06T11:44
專業
Callum avatar
By Callum
at 2017-07-06T23:11
Dora avatar
By Dora
at 2017-07-07T10:38
推推
Olga avatar
By Olga
at 2017-07-07T22:06
C#能直接呼叫python 3?
Oliver avatar
By Oliver
at 2017-07-08T09:33
回樓上,你寫個batch檔call python再用C#去執行batc
h不就好了
Callum avatar
By Callum
at 2017-07-08T21:00
呼叫越多層會不會有時間差的問題?
Mary avatar
By Mary
at 2017-07-09T08:27
C#有processstart可以用 直接透過cmd跑python檔
Rachel avatar
By Rachel
at 2017-07-09T19:55
可以用matlab call c#的api嗎?
Todd Johnson avatar
By Todd Johnson
at 2017-07-10T07:22
好文 感謝分享

C#比JAVA適合做程式交易嗎?

Agnes avatar
By Agnes
at 2017-07-04T15:14
這問題對板上程式高手們,可能覺得很菜 但還是希望大家指教一下。 我目前從事交易員,因為有些交易模型在既有MC架構做不到 所以學習其他語言是必須的。這幾天有去補習班詢問C#的課程, 她們建議我學JAVA,可是我問了身邊做交易的人,多半用C#, 似乎沒有聽過使用JAVA在建構交易系統的 由於我是文 ...

如何用VBA從公開資訊觀測站抓每日股價

Hedda avatar
By Hedda
at 2017-07-01T23:35
※ 引述《faceoflove56 (浪漫台三線)》之銘言: : 最近剛碰VBA,目前資料都是從鉅亨網及Histock等網站來的 : 但其實我還是比較想從公開資訊觀測站抓(MOPS),因為比較可靠資訊也較多 : 以下是資料來源 : http://www.tse.com.tw/zh/page/trading/e ...

關於點金靈DDE

Emma avatar
By Emma
at 2017-07-01T19:09
想請教各位高手,一直以來都使用富邦e01的DDE在讀取報價資料,但最近想開始讀一些海外商品的報價,因為富邦e01沒有那些商品資料,所以想改用元大點金靈的DDE,但照語法讀出來的報價卻都是0,而且用點金靈DDE功能匯出的excel檔也是直接就是數字,不是DDE語法,想請問有人可以正常使用的嗎?或者有其他建議的做 ...

PowerLanguage data2問題

Doris avatar
By Doris
at 2017-07-01T02:48
版上各位高手好 最近在使用MC寫策略時遇到一個問題 在TS(EasyLanguage)如果要找data2的前日最高點可以直接用 highd(1)of data(2) 但在PowerLanguage中 使用highd(1)of data2似乎不是這個效果 因為我是用劵商版沒有Print的功能 無法自 ...

2017/06/22 八八節前夕閒聊

Odelette avatar
By Odelette
at 2017-06-28T09:56
天那麼黑 風那麼大 預祝辛苦血汗工作的八八們佳節愉快 - ...