請問期貨時間通道策略

  •   113 
  • 最後發表   KH  2024 一月 08
KH 發文於   2024/01/04

不好意思 我想寫一個期貨時間通道突破的腳本,9:40後突破高點做多,跌破低點做空。

停損 1.5%, 停利375點

但跑回測出來去看 交易分析 發現很多應該要啟動訊號卻沒有執行

想請教腳本的語法有甚麼問題? 

非常感謝

//我寫的腳本如下

 

input: timeline(094000); setinputName(1,"時間切算點");

input: TXT1("限用分鐘線"); setinputname(2,"使用限制");

input: TXT2("高點字開盤起算"); setinputname(3,"使用說明");

 

settotalBar(3);

if barfreq<> "Min" then return;

variable: rangehigh(0), rangelow(0), BCost(0), BOut(0), SCost(0), SOut(0);

if date <> date[1] then rangehigh = 0;

if date <> date[1] then rangelow = 0;

if time < timeline then rangehigh = maxlist(rangehigh, high);

if time < timeline then rangelow = minlist(rangelow, low);

 

// 進場區(多方)

if time >= timeline and rangehigh > 0 and close > rangehigh and position<=0 then 

  begin 

  setposition(1);

  BCost=C;

  BOut=C*0.985;

  end;

  

 

// 出場區(多方)

if position=1 and C<BOut then setposition(0)   

 else if position=1 and C>BCost+375 then setposition(0);  

 

// 進場區(空方)

if time >= timeline and rangelow > 0 and close < rangelow and position>=0 then

  begin

   setposition(-1);

   SCost=C;

   SOut=C*1.015;

  end;

   

// 出場區(空方)

if position=-1 and C>SOut then setposition(0) 

 else if position=-1 and C<SCost-375 then setposition(0);

 

XS小編 發文於   2024/01/08

Hello KH,

 

麻煩您提供 回測的相關設定 (截圖或回測報告) 以及有問題的商品日期時間,讓小幫手比較好判斷問題為何。

另外建議您可以在腳本中加上print函數將相關數值印出,會比較容易確認原因。

如果有庫存的話可以使用 filledavgprice 來取得未平倉成本做停損停利。

若有勾選逐筆洗價的話,BCost等函數在宣告時最好加上 intrabarpersist,否則該價格可能不會保存。

在回測時也可以用市價單確保商品是在觸發後馬上成交,否則限價單委託可能會因為價格波動的關係導致間隔了一段時間後才成交。

發表回覆
Close