這篇更新一下 之前和朋友討論的 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 吧~~
當然  這個賠一次 如果是賠很大的話......

他會給你建議~ 叫你賠這麼多 就不要玩了吧!!
也可以想成他會依據損益的大小 來調整 參數


好啦~ 新手小白這次就短短的更新
不過這東西 是蠻實用的 
希望你會喜歡 ^ ^
 


 

arrow
arrow
    全站熱搜

    Markjong001 發表在 痞客邦 留言(0) 人氣()