請問自動交易程式如何中斷往下執行?

  •   359 
  • 最後發表   莊莊  2024 十二月 04
莊莊 發文於   2024/12/01

if Filled > 0 then begin
    if Close <= FilledAvgPrice * (1 - 2/100) then SetPosition(0, label:="停損出場");
    if Close < GetField("AvgPrice") and Close <= Open then SetPosition(0, label:="跌破 5MA 出場");
end;

在串接接自動交易時,發現似乎如果達到停損會出清部位,但是會往下繼續執行,假設當下也是跌破 5MA 收黑,又再賣 1 張,變空單 1 張,要怎麼設定已觸發出場就不會往下繼續執行呢?

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

撰寫程式,要避免同一次洗價有超過一次以上的setposition。另外,避免平倉部位尚未成交,又送出平倉的無效委託,應該加入position控制流程。

if Position >0 and Filled > 0 then 
    begin
        if Close <= FilledAvgPrice * (1 - 2/100) then 
            SetPosition(0, label:="停損出場")
        else
            if Close < GetField("AvgPrice") and Close <= Open then 
                SetPosition(0, label:="跌破 5MA 出場");
    end;

  • 按讚來自於
  • hohayo
XS小編 發文於   2024/12/04

Hello 莊莊,

 

小編補充,當腳本同一次執行有複數個交易指令同時成立時,系統只會執行第一個。

另外,SetPosition 是將部位調整成指定數值,故就算連續兩次執行 SetPosition(0) 也不會變成放空。

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