想在跌至平盤價格買入

  •   115 
  • 最後發表   Y0  2021 七月 22
Y0 發文於   2021/07/17

 

if getField("時間", "5")=130000 and open=getField("漲停價", "D") then condition1=true;

if  condition1=true and getField("時間", "5")>130000 and close=getField("參考價", "D") then ret=1;

我想要找一點價格還是漲停鎖死,一點後跌至平盤價格就買進,按照邏輯程式碼應該沒錯。

但我用逐筆洗價的日頻率沒有交易資料,用分鐘頻率他感覺就無視了condition1。

小幫手救救我ಥ_ಥ

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/07/20

 Hello Y0,

 

您的問題點在於不知道使用的頻率,所以對應取到的 getField("時間", "5") 有可能不會有 130000。

舉例來說,假設您用10分鐘頻率的話,取到的會是125500 跟 130500。

另外還有一點要注意的是日頻率的time一律會是0,就算您用逐筆洗價也會如此。

 

最簡單的作法,小幫手會建議您將頻率設為1分鐘,然後將腳本修改為:

if getfielddate("Date") <> getfielddate("Date")[1] then value1 = 0;

if time = 130000 and open = getfield("漲停價", "D") then value1 = 1;  //1點時價格等於漲停價的話value1 = 1 不然就會維持在0

if value1 = 1 and time > 130000 and close=getField("參考價", "D") then ret = 1;

  • 按讚來自於
  • UU0831
Y0 發文於   2021/07/20

我用逐筆洗價1分鐘有抓到交易資料,但為什麼頻率5、10分鐘就抓不到資料了呢?

 

XQ小幫手 發文於   2021/07/22

Hello Y0,

 

如果您是在回測時用逐筆洗價的話,1分鐘逐筆洗價會拆成OHLC,以上的頻率會拆成1分鐘頻率來模擬。

換句話說,如果1分鐘的L有到參考價就會觸發,但是5分鐘因為是用1分鐘Bar作模擬所以有可能沒觸發。

小幫手會建議您將 close=getField("參考價", "D") 修改為 low <= getField("參考價", "D"),這樣只要價格曾經有到參考價或以下的話就會觸發。

 

另外需注意,XQ的time是指該根Bar開始的時間,所以若是在即時且沒有勾選逐筆洗價的狀況下,5分鐘頻率130000這根Bar實際上是在13:05時運算。

有勾選逐筆洗價的話則是有tick進來的時候運算。

  • 按讚來自於
  • UU0831
發表回覆
Close