自動買進後,持有三天出場(請教語法)

  •   495 
  • 最後發表   我要寫出好策略  2022 五月 24
我要寫出好策略 發文於   2022/05/20

vars:FD(0),enddate(0);
input:addate(3,"幾天後到期");

condition1 = OpenD(0) > CloseD(1) ;

if position = 0 and condition1 then begin
 setposition(1,MARKET);
 FD = CurrentDate;

//持有三日出場
enddate=DateAdd(FD,"D", addate); 

if currentdate = enddate and position = 1
then SetPosition(0);
end;

照此語法回測,持有時間仍會超過三日,請教小幫手及各位先進該如何寫出像選股中心裡的最大持有時間呢?謝謝

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/05/24

Hello 我要寫出好策略,

 

您的出場部分不應該包在進場的begin ... end 裡面。

且變數需要使用 intraBarPersist 來令。(若有使用逐筆洗價的話)

另外需注意的是,dateadd會包含非交易日,所以可能會發生您的enddate是假日的狀況。

小幫手簡單修改下您的腳本:

vars: intraBarPersist FD(0);

input:addate(3,"幾天後到期");

 

condition1 = OpenD(0) > CloseD(1) ;

 

if position = 0 and condition1 then begin

    setposition(1,MARKET);

    FD = date;

    end;

 

if getfield("Date", "D")[addate] = FD and position = 1 then SetPosition(0, market);

這樣的話就會是過了3根日頻率的Bar後出場。

  • 按讚來自於
  • BABY93314
我要寫出好策略 發文於   2022/05/24

感謝小幫手

不僅協助撰寫,還貼心附上解說,已回測成功,萬分感謝!

發表回覆
Close