怎樣用 Python 寫一個股票自動交易的程序?(不包含交易演算法)?
怎樣將python與交易軟體連接?怎樣設置建倉平倉位置?
非常感謝!
我懂你的意思,你就是想找個軟體或者券商的介面去上傳交易指令,你前期的數據抓取和分析可能python都寫好了,所以差這交易指令介面最後一步。對於股票的散戶,正規的法子是華寶,國信,興業這樣願意給介面的券商,但貌似開戶費很高才給這權利,而且只有lts,ctp這樣的c++介面,沒python版就需要你自己封裝。還有的辦法是wind這樣的軟體也有直接的介面,支持部分券商,但也貴,幾萬一年是要的,第三種就是走野路子,滑鼠鍵盤模擬法,很複雜的,就是模擬鍵盤滑鼠去操作一些軟體,比如券商版交易軟體和大智慧之類的。還有一種更野的方法,就是找到這些軟體的關於交易指令的底層代碼並更改,我百度看到的,不知道是不是真的可行。。散戶就這樣,沒資金就得靠技術,不過我覺得T+1的規則下,預測準確率的重要性高於交易的及時性,花功夫做數據分析就好,交易就人工完成吧。。
概率炒股法:
下面方法買漲不買跌,同時避免被套,缺點,手續費比較高,但完全可以吃完整個牛市,熊市不會被套。
用python獲取股票價格,如tushare,如果發現股票當天漲幅在大盤之上(2點30到2點50判斷),買入持有一天,下跌當天就別買,你可以用概率論方法,根據資金同時持有5支,10支或20支,這樣不怕停盤影響,理論上可以跑贏大盤。好處:避免人為衝動,缺點手續費高
還有一種是操作etf,如大盤50etf,etf300,中小板etf,創業板etf,當天2.30分判斷那個etf上漲就買入那支,買入漲幅最大的,不上漲什麼都不買,持有一天,第二天上午判斷一下,如果下跌超過2%賣掉。好處:不會踩地雷,缺點:漲隨大盤,我比較推薦這個方法,外圍的風險比較小。
具體的python程序我有,比上面複雜,有止贏止損位,資金管理,監視管理,我用在實盤當中,自動化下單也已解決。
我覺得程序的成敗不在一日之功,在於長期穩定賺錢,如運行十年,過多的數據分析也無意義,因為預測未來永遠是一個概率問題,不是百分之百確定的,如果你的程序能在長時間多次數上戰勝市場,你的程序就能趨向大數定理。
否則一時的回撤會讓你停止程序自動執行,而無法趨向大數定理中的穩定概率。
如果有一個程序能百分之99確定,那麼基本上肯定是分析了內幕交易數據,和徐x一樣,每次重倉一支股,這種手法應該是得到了內幕,也就不需要什麼程序來交易了。
巴菲特的交易模式實質上也是內幕交易的一種,因為他靠的是外在分析,實地考查,估計這是尋找內幕的手段,現在做大了,這種效果就不靈了,收益也下降了,美國經濟也下滑了,所以巴菲特的未來是必定是暗淡的,因為內幕交易的池子有限,資金量大了不好操作。
想想如果巴菲特生在蘇聯,印度,日本等等其他國家,他可能在街頭要飯,美國二戰後經濟環境加傾向內幕造就了他,而不是炒股技術有多神。所以巴菲特不屑於程序化交易。
巴菲特及不少美國式的股神實際上是倖存者偏差造成的,你想想蘇聯的股神在那裡?為什麼一個都沒有?(「沉默的數據」、「死人不會說話」)
我覺得未來真正能成股神必定是程序,不是人,因為一個好的程序策略可以用一輩子,實現長期穩定增長,當然前提是社會經濟環境穩定,不會出現類似蘇聯的動亂,也不會出現日本式的惡性通脹(對貨幣m2有點擔心)。
太多的股票讓股民每天沉浸在選股的遊戲中,選股造就了券商的行情軟體,實際上很多數據都是沒有用的,所有的關鍵是按操作方法永遠執行下去才能趨向穩定概率,否則今天換一種明天換一種方法,今天按kdj,明天按macd,後天按boll,大後天按ddx,大大後天按自編指標,多條件選股,最後錢都交手續費或止損不及時被套牢了。這時券商收傭金的目的也就達到了,每年券商收的傭金比股市分紅要高。不管行情如何,只要多請幾個股評員,總有方向說對的,玩個概率遊戲讓大家頻繁交易,券商的收入只會增不會降。所以千萬別信股評,玩的是概率遊戲,如同預測硬幣的正反,請十個股評師必定有個能預測三次正確的神股評。你信這個神股評,後面可能是三次都不準,呵呵。所以券商和行情軟體總會在收盤或午休時彈出各種消息或評價,說實在的這種東西沒有一分錢的價值。可能早就寫好了上漲的說法是模塊a,下跌的說法是模板b,平市的說法是模板c,只是填上當天數據即可,都是八股文,都是馬後炮,一樣的事件上午說成是上漲理由,下午說成是下跌理由。
程序的策略經過測試後的關鍵在於穩定執行,長期穩定執行,長期長期穩定穩定執行執行,重要的事說三遍。
人性無法戰勝的弱點是執行力,小學生都懂的天天向上,每日進步,世間有幾人能做到?而穩定幾十年執行更是難上加難,如同背英語單詞一樣,理論上一天背一百個,一百天就可以一萬詞,但十年,二十年過去了,你可能還是三千詞以下。
用程序的目的就是百分之百執行到位,沒有折扣,真正戰勝人性的弱點,和t+1沒有關係。另外通過一定方法降低手續費也可以使你的資金活得更久,如把上面的日模型改為周或月模型。如果是期貨,可以用ctp介面,支持國內各家期貨交易所,有支持python的開源的pyctp。
股票的話,華寶證券有個股票的ctp,不過可能沒有現成的python介面。
你問的是connectivity code. 一般是java, c/c++ code. Python 很少見的。事實上從效率角度來說python不是寫connectivity code的最好選擇
按鍵精靈,然後使用他們的com庫,然後你就發現可以快樂的使用py來操作軟體了。
怎麼寫這個主要看你想做什麼,對接的不是直接broker的客戶端,而是broker 的自動化交易指令網關,一般使用最多最通用的就是fix,目前國內國信版本貌似是最高的,能支持融資融券。期貨端用CTP,或者飛馬當然現貨首先你要有level2的行情接入,這個簡單。如果你追求速度,用C++吧,如果只是簡單的演算法和信號識別,python或者R都有比較簡單的庫。
http://quantopian.com 不知道有沒有被牆
GitHub - shidenggui/easytrader: 提供券商華泰/傭金寶/銀河/廣發/雪球的基金、股票自動程序化交易,量化交易組件 實測成功. good luck for you.
股票一般需要券商提供介面,個人很難拿到賬號。期貨比較方便,直接CTP。
我的賬戶是華泰證券同花順,python調用easytrader模塊就可以用華泰的賬戶自動下單(這模塊支持的券商不多),不用重複造輪子,策略才是最重要的。
用鍵盤滑鼠模擬是可以的, 估計也不會太複雜, 家裡設置一台伺服器/或者備用一個不用的手機也可以, 然後用主QQ遠程 監控就好了....
最終要的是策略, 成熟的股票投資策略, 才是王道, 寫的出來嗎? 什麼是上策/中策/下策? 說的人太多了.
目前市面上券商不會冒風險提供介面,因為監管不允許。有的券商即使能提供但其實是三方平台,並非專業介面,其次,策略好比暴露在人面前所以並不安全也不專業。有的券商即使說的是介面其實也不完全是,都封裝了的,而且功能也有不完善的地方,無法支持兩融等交易。
有的券商繞了個彎,想要實現機器自動下單交易是沒有問題的。
歡迎評論切磋。推薦閱讀:
※20151208股市分析?
※如何看待2015年7月9日股市大漲?
※股市蒸發的錢去到那裡了?
※20151015市場如何看,有什麼特點呢啊?