求救 !! 程式抓不到部位 ?

  •   365 
  • 最後發表   XS努力學習  2024 十月 22
XS努力學習 發文於   2024/10/15

請教各位前輩 :

我用範例程式加了 print(file("E:\XSPrint\[Symbol].log"),"Date=", Date, "Time=", Time,
            "FilledAtBroker= ",FilledAtBroker,"Filled= ", Filled,"Position= ", Position);

儘管策略執行時, 系統已經顯示部位了, 但是程式中 Print 出來的部位全都是 0

Date= 20241009.000000 Time= 0.000000 FilledAtBroker=  0.000000 Filled=  0.000000 Position=  0.000000
Date= 20241011.000000 Time= 0.000000 FilledAtBroker=  0.000000 Filled=  0.000000 Position=  0.000000
Date= 20241014.000000 Time= 0.000000 FilledAtBroker=  0.000000 Filled=  0.000000 Position=  0.000000

這是甚麼原因呢 ? 要怎麼樣才能抓到現有部位 ?

 

謝謝大家!

 

 

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

當開始即時洗價時,就可以抓到。

XS努力學習 發文於   2024/10/15

是的, 有抓到了! 感謝許教授的指導.

XS努力學習 發文於   2024/10/15

請教許教授 :

因為我是手動下單, 要讓程式幫我下停損停利單. 因為是手動下單關係, 因此, Filled =0, FilledAtBroker=1.

但是由於 Filled =0, FilledAvgPrice=0. 那有什麼函數可以抓到手動下單的成本呢 ? 好像沒有 FilledAtBrokerAvgPrice

感謝!

 

虎科大許教授 發文於   2024/10/15

手動進場買進1張,Filled =0, FilledAtBroker=1,若要用程式平倉空手,符合出場條件時,用setPosition(filled-FilledAtBroker)。

XS努力學習 發文於   2024/10/15

因為我想這樣寫 :

    if Close <= (FilledAvgPrice*0.98) then begin
        { 停損 }
        SetPosition(0);
    end

 

但是因為我是手動下單, FilledAvgPrice 始終為 0. 我就沒辦法判定停損價. 想請手動下單時, 教該如何寫這段程式 ? 謝謝!

 

虎科大許教授 發文於   2024/10/15

自動交易中心的腳本設定時,策略部位選擇依庫存,且將庫存異動時自動加入執行打勾。

XS努力學習 發文於   2024/10/15

有的, 策略部位選擇依庫存,且將庫存異動時自動加入執行打勾. 不過 FilledAvgPrice 仍然是 0. 很奇怪!

XS努力學習 發文於   2024/10/15

老師, 我發現策略停止再重啟就可以抓到 FilledAvgPric. 好像, 不能先開啟策略再手動下單. 必須要下單後再啟策略. 

  • 按讚來自於
  • YYFrankLi0813
XS小編 發文於   2024/10/22

Hello XS努力學習,

 

小編補充,建議您先觀看網站上的教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

另外 庫存異動時自動加入執行 只有在 策略的執行商品中沒有該商品,且帳戶庫存裡沒有該商品 的時候才會觸發。

 

感謝 虎科大許教授 的熱心回覆。

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