自動交易<可現股當沖股票判別問題><K棒內只下單一次>

  •   589 
  • 最後發表   肯尼  2023 十月 04
肯尼 發文於   2021/05/06

小幫手您好

請教兩個問題

第一個是<可現股當沖股票判別問題>

我目前是用

condition1 = GetSymbolInfo("買賣現沖") or GetSymbolInfo("先買現沖"); //抓取股票欄位資料判斷可否現沖

var:InCondition(false);

InCondition =  condition1 and close cross over average(GetField("收盤價","D"),5)   

//條件1達成 + 成交價穿越日線五日均價

if position = 0 and  InCondition  then setposition(2,market);  //如果部位=0+進場條件成立市價下兩張多單

我用這樣去判別可否當沖的股票下單

但是今天我遇到一個問題

2014中鴻

券商系統是可現沖 ,但是XQ的欄位卻沒有 買賣現沖OR先買現沖 導致沒有觸發下單

想請問是XQ資料有問題嗎? 還是說有其他方式可以判別能現股當沖的股票呢?

 

 

第二個問題是

我現在是用1分鐘頻率+逐筆洗價 去進場

所以在K棒內條件達到就會下單

但是有時候行情會在1根K棒內 進場後馬上就打到停損點出場 然後又再次進場

想請問要用什麼方式寫來讓1根K棒內只下單一次呢?

我想了很久想不太出來

所以想請教小幫手

 

感謝

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

Hello 肯尼,

 

小幫手針對2014中鴻的 買賣現沖 和 先買現沖 作測試,買賣現沖在 4/27 - 5/6 日之間都是 True。沒有發生您所說的問題。或許是您其他的條件導致沒有觸發下單?

需要麻煩您提供 交易中心匯出檔、交易腳本和XQ Log 來作進一步的檢查。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw且附上討論文章連結網址。

感謝。

 

至於您1根Bar內只進出場一次的限制,小幫手想到的是您可以用最近一次交易後必須要相隔一段時間才能進場。您可以用 FilledRecordCount、FilledRecordTime 和 TimeDiff 來達成。

舉例而言

if FilledRecordCount <> 0 then 

    condition1 = timediff(time, FilledRecordTime(FilledRecordCount), "S") > 60

else

    condition1 = True;

這樣的話只要您有交易過,就必須要再過60秒condition1才會True。

  • 按讚來自於
  • kenny5946
桂桂 發文於   2023/09/26

請問要怎麼套用於腳本

if value6 crosses over value7  and  condition1 then  setposition(,market); 

使用起來進出場怪怪的~ 

XQ小幫手 發文於   2023/10/04

 Hello 桂桂,

 

要麻煩您提供詳細說明,不然小幫手無法判斷您遇到什麼問題。

 

上面的寫法中 time 為當根Bar開始的時間,所以計算出的時間差距會和當下時間有差別。

也可以換成 currentime 用本機端腳本運算當下的時間。

 

除此之外,也可以用變數限制。

舉例來說:

var: intrabarpersist _once(0);

 

if value6 crosses over value7 and _once <> currentbar and position = 0 and filled = 0 then begin

    setposition(1,market); 

    _once = currentbar;

    end;

 

這樣就可以確保一根Bar最多只會執行一次判斷式裡面的交易指令。

發表回覆
Close