自動化交易語法問題請益:if condition判斷頻率及set timmer

  •   343 
  • 最後發表   狂暴小次郎  2024 八月 14
狂暴小次郎 發文於   2024/08/12

 

小編您好,我做了一個MD_5_TRIGGER抓取前一分鐘之資料(程式碼如下),並以此作為後續是否進場的判斷,想請問在系統中此兩個if condition的條件會是以每分鐘or每個tick的頻率去判斷?

(因為在測試模擬帳號時有發現在某一分鐘MD_5_TRIGGER跳成1,但在該分鐘仍有進場,故想請教上述寫法的判斷頻率。)

var:intraBarPersist MD_5_TRIGGER(0);

MD_5 = (close[1]-high[1])/high[1];

if barfreq<>"Min" then return;

condition1 = absValue(MD_5) > 0.0125;

if condition1

then begin

MD_5_TRIGGER = 1;

end;

if position=0

and filled=0

then begin 

if MD_5_TRIGGER = 0

then begin 

setposition(1);

end;

if MD_5_TRIGGER = 1

then begin 

MD_5_TRIGGER = 0;

end;

end;

 

 

以及若我想要修改成當MD_5_TRIGGER跳成1,則該分鐘不進場,因為並無找到類似set timmer的寫法,想請問該如何達成?

若後續出場的條件使用If(getfield("收盤價","TICK") >= addspread(filledavgprice, 3),是否會變成以分鐘判斷trigger及進場條件,並以tick頻率判斷出場條件?

謝謝!

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/08/12

(1)若你的主頻率是1分鐘,且勾選逐筆洗價,則condition1會每個Tick都判斷一次。

(2)單根K棒只觸發一次,可透過Time處理。

var: intrabarpersist myTime(0);

if myTime<>Time then

begin

......

myTime=Time;

end;

(3)出場條件若沒有放在上述if myTime<>Time的條件裡面,則每個Tick洗價都會判斷出場條件。

狂暴小次郎 發文於   2024/08/14

感謝許教授的回覆!!

發表回覆
Close