盤中急拉時,是否來得及?

  •   357 
  • 最後發表   sl55ianhuang  2025 三月 06
sl55ianhuang 發文於   2025/03/03

//多單停損(%)

input: profit_percent(3.5, "停利(%)");

input: loss_percent(0.9, "停損(%)");

if Filled > 0 then begin

 { 依照成本價格設定停損/停利 } 

 if profit_percent > 0 and 

 Close >= FilledAvgPrice*(1+0.01*profit_percent) then begin

 { 停利 }

 SetPosition(0, label:="停利出場");

 end else if loss_percent > 0 and 

 Close <= FilledAvgPrice*(1-0.01*loss_percent) then begin 

 { 停損 }

 SetPosition(0, label:="停損出場");

 end;

end;

//空單停損(%)

if Filled < 0 then begin

 { 依照成本價格設定停損/停利 } 

 if profit_percent > 0 and 

 Close <= FilledAvgPrice*(1-0.01*profit_percent) then begin

 { 停利 }

 SetPosition(0, label:="停利出場");

 end else if loss_percent > 0 and 

 Close >= FilledAvgPrice*(1+0.01*loss_percent) then begin 

 { 停損 }

 SetPosition(0, label:="停損出場");

 end;

end;

教授 我是做空的,有以下幾個問題,

1. 我現在的策略停損出場,的賣出價格是多少?  是否為市價?

2. 假如急拉漲停時,委託單是依市價送出,但是無成交,系統後續會怎麼處理?

3. 假如急拉漲停時,是否可以直接設定漲停價買回? 程式碼要如何改?

感謝有您

 

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

1.你的空單停損回補價位使用系統預設價格,若你沒有另外處理,它應該就是觸發價+1。

2.若停損改成送市價買進,漲停鎖死且沒成交,就會一直排隊等著買進。若收盤時仍然沒成交,則會留倉空單。

3.若原本的委託價格買不到,可刪單改價,看是送單一定時間後若沒成交就改價,或是判斷即時價格為漲停價時改價,都可以。漲停時,市價單優先於漲停價,改價用市價比較有機會成交。

我開設的中階課程專門談自動交易,你需要的概念在課程中都可以學到。

sl55ianhuang 發文於   2025/03/03

//空單停損(%)

input: profit_percent(3.5, "停利(%)");

input: loss_percent(0.9, "停損(%)");

 

if Filled < 0 then begin

 { 依照成本價格設定停損/停利 } 

 if profit_percent > 0 and 

 Close <= FilledAvgPrice*(1-0.01*profit_percent) then begin

 { 停利 }

 SetPosition(0, label:="停利出場");

 end else if loss_percent > 0 and 

 Close >= FilledAvgPrice*(1+0.01*loss_percent) then begin 

 { 停損 }

 SetPosition(0,getField("漲停價","D"), label:="停損出場");

 end;

end;

 

if currentTime>=132500 and position<0 then setposition(0,getField("漲停價","D")); //空單平倉

教授 我是希望停損時,用漲停價直接買回。 避免坐直升機。 程式碼如上。是否有其他的作法,或是程式碼 可以更好? 謝謝您

虎科大許教授 發文於   2025/03/03

要加入position控制,以避免無效單。

input: profit_percent(3.5, "停利(%)");
input: loss_percent(0.9, "停損(%)");
if Position < 0 and Filled < 0 then 
    begin
        { 依照成本價格設定停損/停利 } 
        if profit_percent > 0 and Close <= FilledAvgPrice*(1-0.01*profit_percent) then 
            { 停利 }
            SetPosition(0, label:="停利出場")
        else if loss_percent > 0 and Close >= FilledAvgPrice*(1+0.01*loss_percent) then
            { 停損 }
            SetPosition(0,getField("漲停價","D"), label:="停損出場");
    end;
if currentTime>=132500 and position<0 then setposition(0,getField("漲停價","D")); //空單平倉

 

 

sl55ianhuang 發文於   2025/03/03

教授 感謝您!

 

XS小編 發文於   2025/03/06

Hello sl55ianhuang,

 

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

另外關於交易語法的部分,可以參考 自動交易語法介紹 以及 SetPosition 的說明。

 

發表回覆
Close