這篇更新一下 之前和朋友討論的 optimal F
一直想寫這篇文章但沒寫出來
Optimal F 是一個計算下注比的公式
因為我們在做股票操作的時候
常常會聽到風險 風險的
或是資金控管
這些名詞其實簡單來說 就是
我們沒有把握每一次投入錢去進行買賣
因為有可能一次就大賠 然後過沒幾個交易日就直接畢業了
這是股票操作上 一定要解決這個問題
如果你聽過凱利公式 最好
那Optimal f 其實就是 凱利公式的進化版
如果沒聽過的話
一個簡單的想法就是:
我們看到賺了一些錢 那我下次就多放一點 反之亦然
這個概念寫成R code 如下
然後一些demo
如果你對算法有興趣 可以參考這個圖片
########## OptimalF 的函數 開始
OptimalF=function(PL)
{
#等於零的部分拿掉
PL[PL==0] <-NA
PL<-na.omit(PL)
if (sum(PL >= 0) == length(PL)) { OptF = sign(sum(PL)) }
## 如果全勝(沒賠),則全壓(f=100%)
else{
###### 這邊打算是用暴力法
###### 也就是 0% 到 100% 每一個都試試看
###### 看哪一個 % 會放我們的公式最佳化
BidF = seq(0, 1, 0.01) ##賭0%到100%
TWR = setNames(BidF, BidF) ##設定TWR向量
### 主要計算開始
for (f in BidF){
TWR[[as.character(f)]] =
(prod(1+f*-PL/min(PL)))^(1/length(PL))
}
### 主要計算結束
OptF=as.numeric(names(which.max(TWR)))
##取出Optimal f
}
return(OptF)
}
讓我們來測試一下
我定義一個PL 向量是 過去 我幾次的交易成果 ( 損益價差 )
假設我前面都是全贏的時候
那optimal F 當然是建議你全縮囉~~
如果賠了一次呢?
耶~他會給你建議 下一次就下 0.75 吧~~
當然 這個賠一次 如果是賠很大的話......
他會給你建議~ 叫你賠這麼多 就不要玩了吧!!
也可以想成他會依據損益的大小 來調整 參數
好啦~ 新手小白這次就短短的更新
不過這東西 是蠻實用的
希望你會喜歡 ^ ^