移動停利的腳本寫法

By | 2018-06-19

有網友問到如何撰寫移動停利的腳本,我以RSI低檔回昇的進場腳本為例,請優秀的同仁寫出對應的停利腳本作為出場腳本,跟大家說明如何用停利腳本來作回測。

首先,RSI低檔回昇的腳本如下

if rsi(close,12) cross over 20
then ret=1;

那麼這個進場腳本的移動停利腳本寫法可以如下

input:ratio(10);
//設定回檔幅度

//用condition1來代表進場的觸發條件
condition1=false;

if rsi(close,12) cross over 20
then condition1=true;

value1=barslast(condition1);
//計算上一次觸發到現在共歷經幾根bar
value2=highest(high,value1);
//計算觸發後到目前為止的最高價

if close*(1+ratio/100)<value2
then condition2=true
else condition2=false;
value3=barslast(condition2);
if value3 cross under value1 then ret=1;
//觸發移動停利

這當中用condition1代表進場的條件,用barslast來計算符合進場條件後至今共有幾根bar,再拿這數字去找出條件成立後的最高點,接下來就是計算最新價跟這最高價之間是否差了一成以上,如果是的話就是出場條件成立。如果股價往上走,這個自觸發後以來的最高價就會一直走高,也就達到移動停利的目的。

接下來就可以把這個腳本加在回測的出場設定中  如下圖

2018061901

這樣就可以在回測中做到移動停利了。

大家可以把自己的進場腳本設為condition1的條件,其餘的,follow這個出場腳本的寫法就可以作出特定進場策略的移動停利腳本了。