用GBM模擬制定limit order book交易策略

求geometric brownian motion的概率密度函數(shù)

若已知幾何布朗運動:

\frac{dS_t}{S_t}=\mu dt+\sigma dW_t

利用伊藤積分祭阀,求解上式可以得到

S_t=S_0exp((\mu-\frac{\sigma^2}{2})t+\sigma W_t)

對任意t呐赡,上面是一個對數(shù)正態(tài)分布副签,故有

E(S_t)=S_0e^{\mu t}

Var(S_t)=S_0^2e^{2\mu t}(e^{\sigma^2t}-1)
則可以得到S_t的概率密度函數(shù)

f_{S_t}(s;\mu,\sigma,t)=\frac1{\sqrt{2\pi}}\frac1{s\sigma\sqrt t}exp(-\frac{(ln s-lnS_0-(\mu-\frac12\sigma^2)t)^2}{2\sigma^2t})

這樣得到了每個時間點各個價格的概率论衍。

交易策略

假設(shè)已知所有參數(shù)。

先對一般布朗運動做monte Carlo simulation楣责,然后按定義模擬幾何布朗運動:

from scipy.stats import norm
import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
def generate_gbm(mu, sigma, T, S0,dt):
    N = round(T/dt) 
    t = np.linspace(0, T, N) 
    W = np.random.standard_normal(size = N) 
    W = np.cumsum(W)*np.sqrt(dt) ### standard brownian motion ### 
    X = (mu-0.5*sigma**2)*t + sigma*W 
    S = S0*np.exp(X) ### geometric brownian motion ### 
    return S

參數(shù)設(shè)置如下顷蟆,模擬效果如圖

T = 2 
mu = 0.1 
sigma = 0.01
S0 = 200
dt = 0.01
S = generate_gbm(mu,sigma,T,S0,dt)
plt.plot(S)
plt.show()

定義上面算出來的概率密度函數(shù)

def f(s,mu,sigma,t,S0):
    return (2*math.pi)**(-0.5)*(s*sigma*t**0.5)**(-1)*math.e**(-(math.log(s)-math.log(S0)-(mu-0.5*sigma**2)*t)**2/(2*sigma**2*t))

針對每個點,無論是賣單還是買單腐魂,期望的收益為

profit=|S-S_\mu|Q-KQ^n

可以得到p_{best}(S),Q_{best}(S)這里以n=2為例

def profit(s,s_mu,K,Q,n):
    return abs(s-s_mu)*Q-K*Q**n
def best(s,s_mu,K,n=2):
    Qbest=abs(s-s_mu)/(2*K)
    pbest=profit(s,s_mu,K,Qbest,n=2)
    if pbest>0:
        return Qbest,pbest
    else:
        return 0,1

期望收益:eprofit

s_mu=s.mean()
K=0.001
m=[]
for s in np.arange(int(0.9*S0),int(1.1*S0),0.001*S0):
    sum=0
    for t in range(int(T/dt)):
        sum+=best(s,s_mu,K,2)[0]*f(s,mu,sigma,t,S0)
    m.append(sum)    
m=np.array(m)
eprofit=m.mean()

該參數(shù)下期望收益eprofit=252.49622608022156

故對每個時間點的價格s,比較s與上面模擬的平均價格s_mu,如果價格高賣出逐纬,價格低買入蛔屹,

然后算得profit與期望收益比較,高于期望收益就進行交易豁生,單量Q=best(s,s_mu,K,n=2)

def trade(s):
    if s<s_mu:
        print ('buy')
    else:
        print ('sell')
    if best(s,s_mu,K,n)[1]>eprofit:
        print ('size=',best(s,s_mu,K,n)[0])
    else:
        print ('zero')
    return

下面是幾個測試結(jié)果:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兔毒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子甸箱,更是在濱河造成了極大的恐慌育叁,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芍殖,死亡現(xiàn)場離奇詭異豪嗽,居然都是意外死亡,警方通過查閱死者的電腦和手機豌骏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門龟梦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窃躲,你說我怎么就攤上這事计贰。” “怎么了蒂窒?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵躁倒,是天一觀的道長。 經(jīng)常有香客問我洒琢,道長秧秉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任衰抑,我火速辦了婚禮福贞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘停士。我一直安慰自己挖帘,他們只是感情好完丽,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拇舀,像睡著了一般逻族。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骄崩,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天聘鳞,我揣著相機與錄音,去河邊找鬼要拂。 笑死抠璃,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脱惰。 我是一名探鬼主播搏嗡,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拉一!你這毒婦竟也來了采盒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蔚润,失蹤者是張志新(化名)和其女友劉穎磅氨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫡纠,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡烦租,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了除盏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片左权。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痴颊,靈堂內(nèi)的尸體忽然破棺而出赏迟,到底是詐尸還是另有隱情,我是刑警寧澤蠢棱,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布锌杀,位于F島的核電站,受9級特大地震影響泻仙,放射性物質(zhì)發(fā)生泄漏糕再。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一玉转、第九天 我趴在偏房一處隱蔽的房頂上張望突想。 院中可真熱鬧,春花似錦、人聲如沸猾担。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绑嘹。三九已至稽荧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間工腋,已是汗流浹背姨丈。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擅腰,地道東北人蟋恬。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像趁冈,于是被迫代替她去往敵國和親歼争。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容