您現在的位置:程序化交易>> 程序化交易>> 程序化老手>>正文內容

Python量化交易之管理概率等于理性交易[程序化老手]

我們以股票為交易標的講解量化交易的學習,主要原因是股票的風險和收益介于期貨和基金之間。期貨一方面加了杠桿,另一方面走勢變化非常迅速,稍有不慎有可能血本無歸,這不太適合大眾參與?;鹩蓪I團隊打理,雖然收益最小,但風險也是最小的,求穩的話買基金也是個不錯的選擇。

說起股票,A股市場自設立至今經歷了多次牛熊轉換,筆者身邊也有很多朋友在牛市賺了很多錢,但最終“退潮”的時候還是虧回去了。之前看到一則新聞上說中國的股民有1.2億多,統計股民的行為發現他們每天平均看盤2小時,全年平均買19只股,平均2天一次交易,可以看出大多數股民交易頻繁,對買賣點思考并不嚴謹。

本專欄將量化交易技術應用股票交易中,并不是傳授戰勝市場、一夜暴富的本領,而是想讓同學們通過量化交易管理虧盈的概率,能夠更理性的將股票投資作為理財的一個手段,而不是以賭博的心態參與其中。那么本小節,筆者結合一個簡單的市場模型來介紹下為什么在沒有概率優勢的前提下參與交易會虧錢。

假設我們投資的市場是一個具備短線交易特征的市場,可以不分晝夜的不停交易,而且還不需要交手續費。那么我們的初始資金是1000元,每次隨機的買9個股票,如果有一半以上的股票漲了的話,我們暫定賺1元,否則一半以上的股票跌了,我們就虧一元。由于我們是隨機買的,那么贏錢的概率為50%。我們邀請50個人參與1000局看下效果:
圖片描述
代碼如下:
def simpmarket(win_rate, play_cnt=1000, stock_num=9, commission=0.01):?

money = np.zeros(play_cnt)?    
money[0] = 1000?    
binomial = np.random.binomial(stock_num, win_rate, play_cnt)?    
print(binomial)?    
for i in range(1, play_cnt):?        
    if binomial[i] > stock_num//2:?            
       money[i] = money[i-1] + 1?        
    else:?            
       money[i] = money[i-1] - 1?        
       money[i] -= commission?        
    if money[i] <= 0:?            
       break?    
 return money

[plt.plot(np.arange(1000), simpmarket(0.5, play_cnt=1000, stock_num=9, commission = 0)) ?
for _ in np.arange(0, 50)]

結果還不錯,虧錢的人和賺錢的人基本一半一半,符合零和游戲的特征。不過市場要經營是需要有收入的,那么就需要對交易收取手續費,為了更直觀的比較出手續費對交易的影響,我們假定每次交易的手續費為0.1元。我們邀請50個人參與1000局看下效果:
圖片描述
和游戲,沒有一個人是賺錢的,大家都虧錢了,當局數再增大以后的結局一定是血本無歸。市場是一定會有手續費的,那我們就這么心甘情愿的當韭菜嗎?如果我們想盈利的話就只能期待每局上漲的概率大于50%時才參與,否則不參與就不會虧錢了,并且每局贏的錢要比虧的錢多。其實這些需求映射到量化交易之中就是策略回測、倉位管理、止盈止損這些功能。那么我們改變概率這個因子,將它放大到55%,我們邀請50個人參與1000局看下效果:
圖片描述
看來結果還不錯,只要增加盈利的概率,就可以在市場中獲得收益,這就是量化交易的魅力——管理概率==理性交易。轉自:segmentfault

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 511411198   點擊這里給我發消息或微信:cxhjy888 進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
排列五千神机器人软件