股海忌死牛一面頸 AI都學識要轉策略

上期簡介過Python AI bot熱量圖的概括解讀,這期主要針對美股第一太陽能(fslr)作逾2,000回合訓練,並解釋AI學到的策略,順便介紹一些Python AI bot的運作模式。選擇fslr的原因是樣本股票500回合訓練(包括bot開發及debug過程中多輪訓練)中,表現較為飄忽的,可以針對性了解。

首先複習熱量圖的讀法。熱量圖垂直的 Y 軸代表電腦作決定時的持倉水平,每格一成,第一格代表10%持倉以下,第二格代表10%-20%持倉,橫向的 X 軸代表改變去到哪水平持倉,同樣是每格一成。當XY相同,譬如X1Y1、X2Y2、X3Y3……代表持倉不變(的獎勵,以顏色代表),而這些方格左面代表沽貨到該水平(的獎勵,以顏色代表),右面則是增持到該水平(的獎勵,以顏色代表)。

這機制是AI強化學習(Reinforcement Learning)中的「Q網絡」模式,透過一個Q表格(Q-table)讓AI學習「處境(Y)—行動(X)」間的記憶和選擇。舉一個例子模擬WFH初期行山銀行IG自拍就較易明白Q表格的解讀法:

靜靜雞
selfie上IG
WFH行山
+100
-100
WFH工作
0
+100

垂直Y軸是處境,橫向X軸是行動,格裏數字是獎勵。這個Q表格意思就是WFH去了行山的處境下,還是靜靜雞着數了不為人知好;selfie上IG,弄個滿城風雨,反而有懲罰。不過相反WFH工作的處境下,selfie上IG會給人努力工作的感覺,但靜靜雞做只是份內事,就無功也無過。

現在回頭解讀fslr的熱量圖,圖中獎勵最多是X2Y2,表示持倉20%至30%的獎勵值最多,也是最舒服的倉位。而在Y6那一行,即60%至70%持倉下,略為往左減持(行動)至X4,即40%-50%獎勵會較多,所以bot會揀選減貨。同理,你會看到Y5那一行,X6獎勵較多,反映bot在50%至60%持倉水平時,會輕微加倉。

在Y6那一行,即60%至70%持倉下,略為往左減持(行動)至X4(左箭咀),即40%-50%獎勵會較多,所以bot會揀選減貨。

當再考慮股價變化時,就能更了解bot的行動。因為持倉水平就是簡單公式「(股價 X 持股)/((股價 X 持股)+ 現金)」,而X2Y2是最優解,當bot持倉在20%到30%時,不會有動作,只有當股價波動,令持倉脫離該區間,電腦就會選擇其他行動。譬如股價下跌,令持倉處Y1時,bot記憶中最好的選擇是X1,即死守不動,或輕微撈底至X3水平;若股價上升,持倉升至Y3水平,bot則會追貨至X5水平。

最後可以看看bot在逾2000回合訓練中的「心路歷程變化」(https://www.facebook.com/algobug/posts/140752701432897),對比訓練結果圖可以看到,bot早段維持高持倉策略紅點主要於X7X7水平,其後約在1000回合時改變策略,導致訓練結果圖的藍線開始擴大波幅,並在1500回合後表現開始回穩,藍線已較少位於平均線橙線以下;灰線是回合結束時bot的持貨市值。

【AI股票bot使用需知】