部分庫存 >1 時,只要條件符合就會一次次的賣掉一張,如何避免?

  •   303 
  • 最後發表   XQYi  2024 七月 15
XQYi 發文於   2024/07/15

以下程式碼庫存有都多少,只要條件符合就會一次次的賣掉一張,安控好像不針對賣出管控

,如何避免?

if

position > 0 //未委賣

and  filled > 0 //有庫存

and currentTime > TM //進場時間

then begin

 

if position > 0 //確保未委賣

and filled > 0 //確保有庫存

and addSpread(mThigh-mth,0) > addSpread(mTlow+mtl,0) 

then begin

if getField("最高價", "D") >= addSpread(mThigh-mth,0) 

then begin

setposition(maxList(position-1,0),addSpread(mThigh-mth,0) ,label:="壓力價停利");

SentTime=Getfield("時間","Tick");//紀錄委賣時間

    FRC1=getField("當日序號", "Tick");//紀錄序號

end;

end;

end;

排序方式: 標準 | 最新
鍵盤上的小白兔 發文於   2024/07/15

if

position > 0 //未委賣

and  filled > 0 //有庫存

and currentTime > TM //進場時間

then begin

 

if position > 0 //確保未委賣

and filled > 0 //確保有庫存

and addSpread(mThigh-mth,0) > addSpread(mTlow+mtl,0) 

then begin

 

斜體部分重複了 , 同一次洗價 , 重複只會降低效率 , 因為會判斷出一樣的結果

是想要賣到庫存為0就停止 , 而不想變成放空是嗎

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

if position > 0 

and filled > 0 

and position = filled //加這行以確保沒有未成交的委託

and currentTime > TM 

and addSpread(mThigh-mth,0) > addSpread(mTlow+mtl,0) 

and getField("最高價", "D") >= addSpread(mThigh-mth,0) then 

      begin

            setposition(maxList(position-1,0),addSpread(mThigh-mth,0) ,label:="壓力價停利");

            SentTime=Getfield("時間","Tick");//紀錄委賣時間

            FRC1=getField("當日序號", "Tick");//紀錄序號

      end;

XQYi 發文於   2024/07/15

情況如圖

例如 此品庫存有2張,啟動策略後,條件符合會連續一張一張的委賣 到為0

但只想委賣一張就好

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

var: intraBarPersist finishSession(false);
if getinfo("IsRealTime")=0 then return;
if finishSession=true then return;
if position > 0 
    and filled > 0 
    and position = filled //加這行以確保沒有未成交的委託
    and currentTime > TM 
    and addSpread(mThigh-mth,0) > addSpread(mTlow+mtl,0) 
    and getField("最高價", "D") >= addSpread(mThigh-mth,0) then 
        begin
            setposition(maxList(position-1,0),addSpread(mThigh-mth,0) ,label:="壓力價停利");
            SentTime=Getfield("時間","Tick");//紀錄委賣時間
            FRC1=getField("當日序號", "Tick");//紀錄序號
            finishSession=true;
        end;

XQYi 發文於   2024/07/15

感謝!

雖然不是很清楚程式碼為何這樣就能控制,但如預期只委託一張。

 

position = filled //加這行以確保沒有未成交的委託

這一行是否可用於買進後立即委賣,在策略整體,最多持有商品的管控失效情況?

 

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

策略只能處理個別商品,無法控制或判斷其他商品是否有庫存或是否成交。

XQYi 發文於   2024/07/15

恩恩 

所以還是得再等XQ

 

發表回覆
Close