出場問題

  •   115 
  • 最後發表   布萊恩來了  2025 六月 18
布萊恩來了 發文於   2025/06/17

各位前輩好

我的程式碼是1分K洗價 沒開逐筆,有時候回測的時候都會出現這種沒有當天出場的股票,請問是滑價的問題嗎?

如果是請問怎麼解決呢? 謝謝

// 時間控制出場

    if CurrentTime >= 131000 then begin

        setposition(0, market, label:="尾盤強制平盤");

    end;

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/06/17

有沒有檢查看看當天是否禁止買賣現沖?

布萊恩來了 發文於   2025/06/18

謝謝教授回復 我在進場處有加"判斷可否當沖"

可是一樣會出現 當天進場後出不去的問題

 

if GetSymbolInfo("買賣現沖") = true

and CurrentTime >= 091500 and CurrentTime <= 100000 then begin

 

    if Close > preOpenHigh and Close[1] <= preOpenHigh then begin

        condition1 = yesterdayClose >= yesterdayOpen; 

        condition2 = todayVolume > yesterdayVolume * 0.6; 

        condition3 = avgVolume3 > 1000;

        condition4 = Close >= 100 and Close <= 400;

        condition5 = true;

        condition6 = maFast > maSlow; 

        condition7 = RSI_Long > 20 and RSI_Long < 70;

        condition8 = High <= GetField("收盤價", "D")[1] * 1.08;

        condition9 = ma5 > ma20; 

condition10 = preOpenVolatility > 0.015;

虎科大許教授 發文於   2025/06/18

以2024/9/10該股票的情況判斷,應該是可以出場的。這可能要看你把出場的程式碼寫在哪裡。

布萊恩來了 發文於   2025/06/18

謝謝教授提點

setposition(0, addSpread(c, 1), label:="停損2%出場"); >> setposition(0, market, label:="停損2%出場");

我把這改成 市價單 後就解決了

 

順帶一問 請問如果委託單沒有成交 有辦法刪單後重新下單嗎?

我有看到 CancelAllOrders 這用法可是不是很了解

虎科大許教授 發文於   2025/06/18

CancelAllOrders會將所有未成交的委託單刪單。

布萊恩來了 發文於   2025/06/18

那請問有方法能讓程式自動檢查未成交的委託單,並重新下單的方式嗎?

例如 : 當停損條件觸發並下委託單時,10分鐘還沒成交,系統檢查到後刪單並重新下市價單

虎科大許教授 發文於   2025/06/18

position<>filled就代表有未成交的委託單。你可用TimeDiff協助判斷刪單時間。

發表回覆
Close