當沖回測

  •   405 
  • 最後發表   阿邦  2022 五月 06
阿邦 發文於   2022/04/23

你好

    因為希望可以使用當沖回測,需要在盤中抓到漲2%就入場,因為有時間軸的概念,目前只有想到使用repeat and until來處理

    想請問小幫手

    1. 有其他方式可以處理嗎?

    2. 我的程式碼如下,請幫我看一下對不對,目前回測結果為0

(1分K)

var: n(0);

n=0;

repeat 

begin 

 

value1=(high[n]-open[0])/open[0];

n=n+1;  

  end;

 

  until value1 > 1.02 and value1 < 1.025;    

 

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

Hello 阿邦,

 

小幫手認為不需要用repeat until來處理。

請問您所謂的盤中漲2%,是指從當日開盤到當下高點有滿2%就進場的意思嗎?

如果是的話,您只要這樣寫就可以了:

condition1 = 100 * (getfield("High", "D") - getfield("Open", "D")) / getfield("Open", "D") >= 2;

這條件就會回傳當天的開盤到高點的漲跌是否有超過2%。

阿邦 發文於   2022/04/30

你好  

    感謝回應,可能是我說的不清楚,因為我要做""當沖""的回測,所以不能用"天"的頻率,

   希望是1分K的頻率來進行

   我把需求放附件,麻煩你了

附加文件

蕎伊斯 發文於   2022/05/02

上面小幫手的回應寫法呼叫日欄位,可以運用任何時區回測,包含1分鐘K

1.如果是前一分,開盤線至今沒上漲超過2%,當下超過2%
寫法: 

condition1 = 100 * (getfield("High", "D") - getfield("Open", "D")) / getfield("Open", "D") >= 2;
IF Condition1[1]<>True and Condition1 then ret=1;

2.如果是今天只要取第一次的訊號,可以用Once,在編輯器中按F1查一下語法用法
https://xshelp.xq.com.tw/XSHelp/?HelpName=once&group=CONTROLFLOW

試試看~

  • 按讚來自於
  • ymcaee
XQ小幫手 發文於   2022/05/06

Hello 阿邦,

 

搭配once的時候要注意,有可能在資料讀取筆數時就運算到,可以參考 GetInfo("IsRealTime") 讓其只在即時的時候運作。

 

感謝 蕎伊斯 的熱心回覆。

發表回覆
Close