今天隨意買入且不會停損

  •   105 
  • 最後發表   Jacky522  2022 九月 27
Jacky522 發文於   2022/09/21

我是用10分K且未開啟逐筆洗價,今天卻在16:57買入又賣出又買入

現在是買入了不會停損(設定32點停損,但跌好幾根超過百點還不停損)

9/22 02:50到03:37該停損了吧?

 

到了03:40才出場,而且竟然是因為出場條件到了而非達到停損條件

 

 

以下是停損程式碼

這個移動停損我是依照你們的腳本修改的

 ---------------------------------------------------------------

 

//多方移動停損 

if Position = 1 then begin 

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

var: intrabarpersist stoploss_point(0); 

 

{ 計算停損價格 } 

if stoploss_point = 0 then begin 

stoploss_point = FilledAvgPrice - loss_point; 

end; 

 

//如果價格上漲超過38點則啟動移動停損 

if Close > FilledAvgPrice then begin 

if Close - 38 >= FilledAvgPrice then begin 

stoploss_point = Close - loss_point; 

end;  

end;  

 

if Close <= stoploss_point then begin 

{ 停損 } 

SetPosition(0); 

stoploss_point = 0; 

end; 

end; 

 

  

 

XQ小幫手 發文於   2022/09/27

Hello Jacky522,

 

16:57:25 賣出 16:57:26 買入這部分需要麻煩您提供完整的腳本和 XQ Log 才能確認是哪處有問題所造成。

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

您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。

 

關於停損的部分,您的開始計算條件為 if position = 1,此時若委託單還未成交的話,filledavgprice 會是 0。

所以您的 stoploss_point 一開始會被設定在 0 - loss_point ,此時 Close <= stoploss_point 不可能會觸發,所以也不會停損。

開始計算的條件應該要是有庫存 (filled = 1) 或是 filledavgprice <> 0 以後才開始計算。

 

就算接下來有符合超過38點啟動移動停損,您的寫法會讓 stoploss_point 隨著close上下變化跟著改變,而不是只會往上。

因為只要 Close - 38 >= FilledAvgPrice 的話 stoploss_point 就會跟著改變。

舉例來說 close 從大於FilledAvgPrice 50點下降到大於FilledAvgPrice  40點,Close - 38 >= FilledAvgPrice 都會符合,stoploss_point也會跟著向下。

您的這個條件其實會類似於 當超過38點時,將停損點改為 FilledAvgPrice + 38 - loss_point,而不是跟著價格往上 (不往下)。

需要多加上如同範例腳本中的 Close - loss_point > stoploss_point 這個條件,這樣才不會跟著向下。

您可以觀看 06-多單移動停損(點) 這個內建腳本來確認。

 

另外建議您可以在腳本中加上print函數來確認 stoploss_point 隨著時間的變化是否有符合自己所想的運作。

發表回覆
Close