2018年7月10日

隨機進場的策略怎麼寫:Random()函式的運用

Random(N)函式會隨機回傳0~N間任一值,如果有天異想天開想寫一個隨機進場的策略,可以派上用場,簡單舉例如下:

=========================================
Inputs: Bias(0.5); 
Var:Trigger(0),Signal(0);

trigger =random(1);
if trigger < bias then signal=-1;
if trigger >1 - bias then signal=1;

{ Random Entry}
If signal =1 then Buy next bar at open;
If signal =-1 then Sellshort next bar at open;
=========================================

Random(1)會隨機回傳0~1間任一值,我們用messagelog看看實際回傳的亂數值會呈現如下:

   0.74
   0.14
   0.35
   0.66
   0.82
   0.73
   0.28
   0.94
   0.05
   0.78
   0.95
   0.37
   0.82
   0.15
   0.09
   0.22
   0.39


接著在程式碼中我們設定一個參數Bias並預設為0.5,當回傳值>0.5就做多,反之做空,換言之就是多或空是很公平(各50%)的隨機決定出,如果你認為行情比較偏多,Bias可以設為0.3,等同於隨機前提下做多機率70%來決定多空。

如果是想取得0~100任一隨機整數,則可以加上Round()函式,如下:

Round(Random(100),0)

當然Random函式還有很多用法,特別是想驗證一些想法或是a跑模擬統計(例如蒙地卡羅模擬)時都可以派上用場。