取得期貨1分K成交時的指數

  •   318 
  • 最後發表   Ethan Cheng  2025 五月 31
Ethan Cheng 發文於   2025/05/29

請教管理員及各位先進:

我想要在台指期1分K成交時取回當下的指數, 存在變數方便之後做『再進場與再出場』的標的, 因為我的參數都是固定的, 想要以變數來編寫就好, 爬文之後還是不知道該怎麼寫, 因此上來求教, 謝謝各位。

我的寫法不論怎麼改都離不開以下兩種結果, 請各位幫忙看看哪邊錯誤了, 謝謝:

1. 可以進場, 但之後不會出場 。

2. 可以進場, 但馬上就出場 。

(宣告變數我這邊用中文代替, 就不用再解釋)

Var : _進場條件(false), _持倉數量(0),  _成本(0), _停損(0), _出場(0), _進場條件的指數(0) ;

if  _進場條件(ture) then _進場條件的指數 = C ;

if position = 0 and Filled = 0 and _進場條件(ture) then 

      begin 

          setposition(1,_進場條件的指數,label:="多單進場") ;   // 到這邊都是正常的

if position = 0 and Filled = 1 then          //  我想將『成交時的指數』寫入變數就異常了

 

       begin          

          _成本 = FilledAvgPrice  ;      //  如果不用變數直接用函數執行就可以, 但是之後就沒辦法以停損點或出場點當標的做            _停損 = FilledAvgPrice - 20 ;  『再進場與再出場』。  

          _出場 = FilledAvgPrice *1.01 ;

          _持倉數量 = 1 ;  // 這個是做記錄, 後續要計算賺賠比用的。

         end ; 

              end ;

if C <= FilledAvgPrice - 20 and position = 0 and Filled = -1 then setposition(0, market, label:="多單出場") ; 

if C >= FilledAvgPrice *1.01 and position = 0 and Filled = -1 then setposition(0, market, label:="多單出場") ; 

// 因為不知道指數該怎麼存到變數, 只能用市價出, 但是我要的是用變數當觸發條件跟限價單。

 

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

(1)if position = 0 and Filled = 1 then不應該放在if position = 0 and Filled = 0 and _進場條件(ture) then裡面,否則永遠不會被執行。

(2)_成本, _停損, _出場, _進場條件的指數, _持倉數量,這5個變數要用intrabarpersist宣告。

(3)filled沒有機會是-1,所以也無法停利停損,應改成1。

Var : _進場條件(false), 
intraBarPersist _持倉數量(0),  
intrabarPersist _成本(0), intraBarPersist _停損(0), 
intraBarPersist _出場(0), intraBarPersist _進場條件的指數(0) ;
if  _進場條件(ture) then _進場條件的指數 = C ;
if position = 0 and Filled = 0 and _進場條件(ture) then 
    setposition(1,_進場條件的指數,label:="多單進場") ;   // 到這邊都是正常的
if position = 1 and Filled = 1 then          //  我想將『成交時的指數』寫入變數就異常了
    begin          
        _成本 = FilledAvgPrice  ;      //  如果不用變數直接用函數執行就可以, 但是之後就沒辦法以停損點或出場點當標的做            _停損 = FilledAvgPrice - 20 ;  『再進場與再出場』。  
        _出場 = FilledAvgPrice *1.01 ;
        _持倉數量 = 1 ;  // 這個是做記錄, 後續要計算賺賠比用的。
    end ; 
if position = 1 and Filled = 1 then
    begin
        if C <= _成本 - 20 then setposition(0, _成本 - 20 , label:="多單出場") ; 
        if C >= _出場 then setposition(0, _出場, label:="多單出場") ; 
    end;

 

Ethan Cheng 發文於   2025/05/30

謝謝許教授, 回測成功了,

請問許教授, 停損不能寫成  _停損 = FilledAvgPrice - 20 嗎? 我看教授是用 _成本 - 20, 請問2者的差別?  

想請問許教授及各位先進, 我是想在指數跌破『_成本』後掛多單買進的限價單在_成本』指數上等指數漲到_成本』才進多單, 該怎麼寫? 我用if C < _成本 then setposition(0, _成本, label:="多單進場") ; 都會變成馬上進場, 我查網路是說XQ都是以委託單送出, 以券商的下單機制會馬上進單, 想請問XS有限價單的寫法嗎?

 

 也祝許教授沒有相關的例子供我參考, 謝謝, 也祝許教授及各位先進端午節快

虎科大許教授 發文於   2025/05/30

(1)我上面給的範例,_成本就是filledAvgPrice,一般而言,處理庫存成本,我不會另外用變數處理。只是順著你原本的寫法才用變數。

(2)我看不大懂你的需求,請更詳細描述情境。進場時是空手,還是持有部位?是空手,且用上次持有部位的成本當作進場條件,價格低於成本且又漲到成本價,才進場?看到你是setposition(0, _成本),我又困惑了,這是平倉空手的指令,你的所謂進場,是建立部位,還是平倉?

Ethan Cheng 發文於   2025/05/31

在我的期貨當沖策略是這樣:開盤空手→進場訊號出現進多單建立部位→2種情況(1)停損出場平倉變成空手→掛限價單在剛剛的多單成本價, 等指數漲到限價單再次進場建立部位,這段在我的多方訊號沒有消失前會反覆執行。(2)有部位時-隨著指數上漲會出現轉折(V型), 轉折低點是我的移動出場點-平倉, 當指數回跌到前轉折低時就出場平倉, 如果多轉折則以最高的轉折低點做出場平倉。(3)尾盤時間到全部強制平倉(這個網路上有範例可供借鏡,已解決)

轉折低網路上有範例, 變數現在知道要設定成IntrabarPersist _前轉折低(0), 剩下的架構還在摸索中, 望許教授及各位先進能不吝提供想法, 謝謝。

 

祝許教授及各位先進端午佳節快樂。

虎科大許教授 發文於   2025/05/31

多單停損變成空手之後,若立即以當初的成本價掛限價買單,會在停損價格附近成交買進,而非比較高的當初成本價。你最多只能在價格漲回到當初的成本價時送出委託,以當初的成本價當作委託價。

Ethan Cheng 發文於   2025/05/31

原來如此, 謝謝許教授, 我再研究看看有沒有其他替代方式。

發表回覆
Close