個人如何實現程序化交易?
有沒有可能通過炒股軟體等其他方式實現程序化交易?
這個問題我居然沒有答,真是慚愧。
感覺每個開始往程序化交易上靠的人都是在股市裡賠光了內褲錢的人。(好吧,誇張了一下)。
我自己一直金融專業,在HF實習過一段時間,有些接觸。後來自己開始找了個平台做量化策略研究。
一提到程序化交易,很多人會覺得要自己做整套的交易系統,拿數據,做各種模塊。然後想想就覺得門檻太高不適合自己。還有很多事CS轉來做的,要惡補很多金融證券的知識。
國內幾個比較大的量化平台,我很中立的說,各有各的優劣,但是自己用習慣了也是常駐的是JoinQuant。給個推送門:JoinQuant聚寬量化交易平台
包括我在知乎,很多人問起我也是這麼推薦。研發能力很強,跟進和改進速度快,API也提供的很全,寫策略非常的方便。同時自己也在上面做些小研究,寫些策略。po幾個大家感興趣關注一下:
【簡單的多均線擇時策略】那個天台排隊的孩子,我給你講個故事
【回測來啦】——鱷魚法則交易系統,15年至今114%【網格交易策策略】-網格大法好,熊市不用跑~【滾動複利策略】的量化實現三高五低,一種基本面選股思路的驗證【組合管理】——投資組合理論(有效前沿)===================分割線================================================
回到正題,我給題主的建議就是,
1. 學一門編程語言。很多平台用python,也可以選擇matlab/C++/Java自己搭系統後面幾個不太熟悉,就不多講。至於python的話,很多第三方庫很好的支持做數據處理,簡單好上手。
2. 多看一些投資理論、量化交易和數據處理類的書籍。這部分知識是為了生存策略修鍊內功用的。
3. 找一個好的靠譜的平台,邊練邊學。之所以用JQ順手了也一直在上面做研究和回測,因為答主本身編程水平一般,社區里很多策略源碼分享,可以邊看邊學,比自己捧本語法書從零學起要快很多。
以上。希望能解答你的問題。1、交易策略的設計
首先要明確交易策略的屬性(趨勢型、波動性、套利型…),也可以是以上多種簡單交易模式的綜合應用,然後根據所要交易的品種價格波動特性和所要交易的周期來制定交易策略,交易策略中設定目標利潤和允許最大虧損,以及具體止盈止損點的設置。
2、模型的編寫
首先要選擇一個程序化交易平台,目前國內較為流行的程序化交易軟體包括文化的贏智,交易開拓者(TB)以及金字塔等等,不同的交易軟體程序語言具有不同的特點,包括語句語法結構、函數構造等都有所不同,投資者結合自身選擇一種語言便可,然後將自己的交易策略通過計算機語言來實現。
以文華贏智程序化交易平台為例,下面的程序代碼為一個簡單的波動性突破的交易策略,波動性的定義為:最高價與最低價、當根bar的最高價與上一收盤價、當根bar的最低價與上一收盤價,這三組價格差額的最大者即為該品種的波動性值,波動性既可以進行橫向比較品種間的波動性水平,也可以用於縱向判斷價格波動的異常,並作為入市信號的觸發器,具體操作為:若當前價格波動突破此前波動平均水平時,開倉進場;當前價格波動回落合理範圍內之後進行平倉處理。
3、模擬交易
投資者可以通過使用程序化交易軟體對自己的交易策略進行模擬交易測試,以便於投資者對自己的交易思想進行評判和改進,在進行模擬測試時需要注意一下幾點:回測的bar周期要與策略制定初期相吻合;回測的時期長短的選擇,一般來講回測效果較好的策略對近期行情有較好的指導性;測試報告的分析以及對模擬測試的理解,在測試報告當中要對最終收益率、資金最大回撤、收益風險比、連續虧損次數等多項指標綜合考慮。
4、參數優化
對參數的優化要注意一下幾點:
(1)、優化所用為歷史數據,對未來的指導性強弱還有待於探討;
(2)、模型開發要有理論基礎,不能依賴於參數最優化;
(3)、回測中長期的最優化參數,或許對短期行情來講是一個不錯的選擇;
(4)、過度最佳化的參數對後市的指導性不一定最好;
(5)、要考慮交易成本和滑移價差對投資結果的影響。
5、實盤交易
在實盤交易之前,建議投資者先進行模擬實盤跟蹤交易,觀察交易策略的穩定性後再進入實盤交易,特別是對於投資經驗較少的投資者來說更為重要。
講真,國內程序化的氛圍還是不怎麼濃厚的。真正在玩程序化的都是些大玩家,比如幾年前爆出來的光大。你要是想學程序化交易,推薦還是期貨。證券的程序化策略過於複雜,外匯是不受國家法律保護的(為什麼?之前好像看到過說國家對於外匯是管制的,儘管你可以找經紀人代理,但是真出了事經紀人也沒辦法的。),期指期權門檻太高,一手可能要二十萬,手數少純粹在賭博。期貨呢,有的一手就一萬,十萬的資金已經可以開始倉位管理了。市面上現在支持程序化交易的交易軟體大概有文華贏智,金字塔,交易開拓者,MC,國信剛引入的Tradestation.首先第一談穩定性。從期貨公司的合作關係來講,開拓者沒跑了,和80%的期貨公司合作,如果穩定性存疑,早就被告翻了。國信TS剛引進,效果怎麼樣不知道,但是國外版的TS運行多年,口碑是不錯。第二功能性。金字塔功能眾多,但是說真的程序化交易重點在於交易,太多雞肋功能顯累贅。贏智、MC的功能都很簡單,也可以說乾淨。TB在贏智、MC基礎上,提供一些很有意思的功能,比如套利寶、價差交易,也提供了一些輔助程序化交易的類似頭寸監控、發單監控等等的功能,簡化了一些用戶對於特定交易需求的實現方式。第三介面。這方面外盤、證券差不多每個軟體都已經滿足了。第四策略模型的編寫語言。金字塔的VB,文華麥語言都是自己定製的語言,MC和TS基本就是把matlab的語言搬過來,而且很多思路都是程序員思維。總的來說金字塔和文化可能更好入手,但是長遠發展沒有MC和TS好。TB也是自己的語言。第五模型測試 基本上大家都做的差不多,除了金字塔稍微差一點都是一路貨。其他方面,學習階段不推薦文華,因為文華分收費版和免費版,免費版的功能是被閹割的。金字塔的vba語言潛力不大。MC和TS是流量收費,只有一個版本,所以可以先模擬學習再實盤,不過模型編寫走的是matlab的路,如果沒有學習過編程可能會在數據類型等計算機編程常識上繞很久。TB也是流量收費,實盤運行前可以模擬運行,語言是自己的語言,學起來很簡單。而且TB對於培訓做的很認真,專門出了一本書,內容是基於TB的經典模型編寫,稍微有點軟體基礎的看完就能懂。
說說我的程序化交易學習過程,希望對您有幫助:
本人高中文科,大學在國內一家不知名的本科院校學的管理,和程序化交易八竿子打不著,期間對計算機略有興趣,學了C語言,差不多也就國家三級的水平,學校強加要學的FOXFRO什麼的基本都是入門水平,應付考試而已,07年畢業,上班半年後偶然機會接觸到外匯保證金交易,投入2000刀,一個月血本無歸,但總算弄清楚MT4的操作,因為MT4的編程語言與C基本類似,由此開啟了程序化交易研究的不歸路。
外匯失利之後,08-11年期間轉投股票交易,這中間還利用業餘時間進修金融學(在職研究生那種),主要是想系統的梳理一下,學校能教的與交易相關的都是些基本面分析的知識,因此在股票交易的分析上以看基本面為主,國內對於股票交易的各種限制如T+1,漲跌停板,各種原因的停牌等等並不適合程序化交易,在股票市場零星的賺了一些小錢,後來因為老婆是從業人員的原因銷了股票賬戶,從此不再看股票。在上述玩票之餘,開了期貨賬戶,11年入金開始期貨交易,開始以做豆粕豆油的壓榨套利為主,主要是熟悉一些操作過程,因為上班的原因,只能拿手機用文華財經下單,時常因為開會之類的瑣事耽誤下單良機,因為之前在外匯領域有過程序化交易的方面的粗淺研究(開發過一些只能運行不能賺錢的交易系統),所以開始嘗試在期貨領域用程序化進行交易,已解上班不能下單之愁,當時的入門書籍是《期市截拳道》,順著裡面的代碼編了同樣的程序(書中代碼垃圾的很,如BARBCOCK的那個系統含未來),雖然未找到聖杯,但基本把TB裡面的函數和編譯搞清楚了,說實話,任何看書式的學習都沒實踐來的快。再然後自己嘗試編一些像均線交叉之類的比較簡單長線系統,跑一跑,收益率曲線還不錯,拿錢實盤。實盤一段時間後,不賺不虧,主要是操作麻煩,因為公司不能上外網,所以還是自備筆記本和3G無線路由,網路很不穩定,這對程序化交易來說是硬傷,後來租阿里雲的伺服器,總算解決了這一問題。從11年實盤至今,中間經常泡TB論壇,業餘時間就是自己琢磨著開發一些系統,還參加過一些模型交換活動,有時候也會寫一些模型去與別人的進行比較(主要是和中量網的一些模型),實盤也是有賺有虧,不斷的對系統進行調試,程序化交易的好處是穩定,但想發大財很難,期間想過辭職去專門幹這一行,也認識了很多已經這樣乾的朋友,但凡事還是看遠一點比較好,畢竟程序化交易也是新興事物,而且感覺入門不難,不可能一個系統能吃一輩子,散戶專門做這個還是以玩票的心態為好,畢竟能獲得成功的還是那一小撮人。前面說了學在職研究生,畢業論文就是寫程序化交易方面的,網上找了不少參考文獻,,其實個人推薦一些畢業論文還是不錯,比如山東大學的一些,有不少論文裡面都有源碼乾貨,基本上看上幾篇就可以對程序化交易有個較全面的認識,看論文比看書的好處是論文沒有一些坑蒙拐騙的商業包裝,乾貨較多,比較節省時間和成本,寫論文的半年也是對程序化交易最為深刻的半年,有種閱盡源碼無數,心中一片荒涼的蒼白感。就像我的指導教授說的那樣,程序化交易就好比釣魚,有的人喜歡海竿釣,有的人喜歡池塘邊拿個竹竿釣,方法千姿百態,但一定是要適合自己的。說了這麼多,我覺得最好的入門資料還是程序化交易平台的軟體說明書,簡單利落沒有誤導,看熟了就啥都會了。要想深入學習的話,各類數學啊、物理啊、金融工程啊,對於我這個文科小白都是不可逾越的高山,但人生還有很長,慢慢學著吧,反正學會一些知識也不是壞事,就當打發時間吧。修改了,內容在後面。
~~~~~~~~~~~~~~~~~~~~~佔個坑,等過幾天來展示我的程序化交易。
在申萬新開了戶。已搞定了託管伺服器。
—————————分割線—————————當時寫了個新策略,然後就佔了個坑。投用後連續虧損7天,都沒臉見人了。後來發現程序中一個語句複製錯了。
氣得我一口鮮血要吐出百米。但最近確實行情不如意,總體沒賺到錢。對於這種整體沒行情的市場,程序沒賺到錢,我也不覺得丟臉。要是沒那個bug,估計也稍稍賺了一點點。先貼個圖,過兩個月再貼一下該策略投用情況。該策略存在很大風險,投用80-90%的資金,有可能爆倉。但一旦行情好,賺個十倍八倍的也是有可能的。因此以後賺錢了就取出一些,備用。當爆倉後,加點資金進去就好。寫個ea唄,自己不會寫有商店賣
學習程序化的最佳步驟:1、確定一個量化平台,文華、TB、金字塔、聚寬……等等選一個就可以;2、從系統自帶的簡單易懂的程序入手,比如雙均線、MACD……,先熟悉最簡單的程序,同時熟悉量化平台的操作;3、到相關論壇學習,這裡我推薦文化財經軟體,它的「有問必答」非常好;4、在有了基礎知識和基礎技能後多在網路上搜索交易策略來進行完善和模擬運行;5、最後一點也是最重要一點:必須在模擬運行3--5年,並且模擬賬戶穩定盈利後才能開戶實盤運行,千萬別根據歷史回測數據來決定是否開戶實盤運行,切記!!!
國內程序化交易尚處於起步階段,在期貨上應用的較為廣泛。外匯原油次之,股票基本上很少聽說。期貨的話,交易開拓者,文華智贏,金字塔比較主流,台灣來的MC以及用於外匯的MQ4平台也開始接入;如果是機構的話,很多都是直接接入期貨公司的埠,自己編寫平台實現交易,一般C語言和MATLAB應用的較多
不懂編程沒關係,不懂統計沒關係。所謂程序化交易,就是剔除了人的情感因素做出的投資決策。你只要:用筆寫下自己的操作策略,然後在交易軟體上買賣股票就可以了。比如,你設置一個MACD金叉買進,死叉賣出的策略(這裡不討論具體策略好壞,舉個例子),然後盯著一隻股票,出現自己的信號買進即可,賣出信號賣出。時間周期最好設成周。這樣也不用每天盯盤,也不會頻繁交易。需要的只是:強烈的自律!!其實,編程還有自動交易軟體什麼的都是『術』而已,交易策略才是「道」。
股票最好別程序化~實在要搞~那就wind+matlab~後面說的什麼MT4 TB什麼的那都扯蛋的期貨軟體...
中國股票市場並不是特別適合使用程序化交易
1.數據源的問題,程序化交易必然需要長期的、精準的價格數據,個人很難輕易獲得2.交易介面,程序化交易的指令到交易所必須申請介面,個人很難申請3.編程語言,國內常見的TB等語言門檻較高,個人難以輕易習得相反,在外匯、貴金屬等市場上,使用MT4/MT4(以下簡稱MTx)軟體的交易商,如:鐵匯、福匯、嘉盛等平台,
MTx交易平台內置 MQL4/MQL5的智能交易語言,專門為了程序化而開發,面向對象無指針,語法類似C,很容易上手。MTx平台可以輕易獲取大部分交易品種10年以上的,精確到1分錢K線的歷史數據,並且支持復盤,MT5還支持雲計算復盤。MTx平台另一方面對交易的支持也很好,MTx本身作為交易軟體,可以直接根據智能交易系統的指令進行下單。所以個人實現程序化交易,建議可以嘗試MTx的平台來進行,不過品種上只能是外匯、貴金屬原油等沒那麼複雜。。。亞馬遜租個免費伺服器,mt4一開,按鍵精靈寫個腳本掛起來,這不也是程序化交易么?我就是這麼乾的~
剛買了個1u伺服器,放在小黑屋裡,準備自己折騰折騰
交易開發兩不誤,最後希望能賺錢……按一般的做法順序的話
1.形成自己的交易理念
2.選一個交易平台(商業or開源)
3.把你的交易策略變成現實的代碼(要會編程語言,剛上手的話,過程辛苦)
4.做backtesting
5.因為某些原因,你的策略被你砍掉了
6.回到第一條
想了解更多關於股票、期權、量化、程序化交易內容,可以添加微信公眾號:pioneer_option,或期權量化先鋒,乾貨、答疑、指路、一應俱全。
學好C++和CTP就能做啦,炒股軟體如果你能找到合適的介面也可以。如何找,可以私聊。
個人實現程序化交易的最關鍵一步,打通交易介面:穩定、安全、極佳性能、易集成、功能強大的佐羅金股票交易COM組件發布了,支持直接連接多個伺服器交易,支持多賬號使用。支持絕大部分券商,支持32和64位程序調用,支持C++/C#/Python/Java/PHP/ASP/JS/VB/Delphi/易語言等調用。詳情請戳:https://github.com/emeimonkey/ZMStockCom
如果自己不想編寫 可以去中量網買策略
通過閱讀券商量化策略研究報告,然後自己寫程序實踐策略,最好有對於量化策略的改進,提高程序化交易的勝率與收益率。了解各種程序化交易的模型以及它們的應用,比如數據挖掘模型,機器學習演算法模型,以及統計學習理論在金融交易中的應用。涉及高頻交易的還需要對於微觀市場結構的應用有所了解。
分析分析國內的行情軟體的介面,獲取較實時的行情。然後再分析一下交易的介面,自己發報文即可,介面不好逆向分析,就直接抓窗口數據。
我們用level 2數據和價量數據進行股票分析和量化買賣。我們網站有level2數據,裡面還有個統計分析工具可以看大單小單和主力動向,有興趣可以看看。level2數據最重要的一點是,基礎成交明細沒法作假,不管你是拉高也好,出貨也好,都可以看出痕迹,這就是level2成交明細的價值所在。注意level2成交明細不是3秒一次的tick成交明細數據。
用好這個數據,得看至少3個月每天的數據,統計每天的大單小單,比如頻率,數量,注意每隻股的大單定義是不一樣的,不能像手機app上固定50手算大單。
看長期的趨勢,幾個月。然後你就知道有沒有主力,主力在幹什麼。知道有主力埋伏以後,你就可以判斷主力是買還是在賣,是買的話,就可以入了,短線成功率很高。我們採用波段和短線結合的方式反覆套利,直到大漲。
但要注意大盤和價位,大盤如果大跌,價位如果太高,都會導致主力動作的迅速變化,或者拉升操作延遲。因此一個對大盤的判斷也是很有必要的。推薦閱讀:
※9.21的盤面是不是一波強反彈的開始?
※股票初學者應該注意哪些東西?
※你們用過的炒股手機軟體有哪些推薦?
※什麼是MACD頂背離和底背離?