當前位置:外匯行情大全網 - 期貨行情 - 為什麽不直接用C++開發CTP

為什麽不直接用C++開發CTP

pyctp,c++ ctp,還有c# ctp,我都用過壹點,不過都是只做了壹小部分工作。

在我看來,各種語言核心邏輯部分的代碼量都差不多。區別在於基礎庫的完善程度和語言本身帶來的開發調試效率差別。

即使對c++很熟悉,開發效率依然比不上c#,因為將來做策略開發,會頻繁的修改程序,然後運行,而c++的編譯速度太慢。另外,c++語言和開發環境決定了其調試的代價過高,綜合下來,c++開發ctp的效率要遠低於c#。

我自己的感覺,用C#開發,絕大部分時間是用於業務邏輯,而C++很大壹部分時間是用於解決語言和環境直接、間接帶來的問題。

從效率方面來看,經過我的簡單測試,相差不大(不超過20%),因為stl和boost範式鼓勵在棧上創建對象,對象復制的開銷很顯著,而C#中傳引用的方式則沒有這個代價。此外C#中創建對象的代價要小於c++堆中創建對象的代價。

當然,相對與C++,c#的限制要多壹些,比如跨平臺(mono相對不成熟),c#模板、運算符重載的約束比較嚴格等。總的來說,我傾向於C#。

對於Python,我在寫復雜系統的時候感覺比較吃力,尤其是在做面向對象的架構時(面向對象機制不完善,也沒有函數重載)。沒有靜態類型檢查,時間長了,代碼反復修改之後,不知道會有什麽陷阱。而且因為動態類型,編輯器的自動完成和提示也很弱,以前的函數要什麽參數要看著代碼想壹會才能想起來,很影響開發效率。

所以,我現在又回到C#了。

我的建議是,除非對C++及開發環境用的很順手,並且積累了完善的基礎工具庫,否則用C++的代價很高。

  • 上一篇:外匯期貨合約怎麽買賣
  • 下一篇:文華財經股指期貨的 if指數 是如何按照各合約指數加權得到的?
  • copyright 2024外匯行情大全網