成交日期

  •   91 
  • 最後發表   自然  2024 二月 20
自然 發文於   2023/03/18

您好

出場條件:A. 庫存股票跌破當初成交K棒的低點時賣出 或  B. 成交後5天賣出              

請問如何取得庫存成交日期

條件A.條件B 的程式要如何寫 請指教

// 作多, 日頻率 

//進場

  var:intraBarPersist LD(0);

  condition2 = GetField("投信買賣超","D")[1]> volume[1] * 0.1;

  condition3 = c > H[1];

  if  condition2 and condition3 

  AND FILled =0 AND position =0 then 

    begin

       setposition(1);

       LD=date;

    end;

 //出場:跌破當初成交K棒的低點時賣出 或  成交後5天賣出

if filled>0 

and (c<LowD(getBarOffset(LD)) or  date-LD=5)  

then setposition(0);

print( "成交日期", NumToStr(LD, 0) , "成交天數", NumToStr(date-LD, 0));

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/03/28

Hello 自然,

 

如果您的自動交易策略都在執行中沒有中斷的話,可以使用交易函數來取得交易的進場日期。

或是也可以像文中腳本用變數保存。

須注意目前自動交易不會保存前次執行的資訊,所以就算您使用依庫存再啟動策略,取得前次交易庫存的交易日期會是啟動當下的日期而不會是實際交易日期。

 

另外日期的加減可以參考 dateadd 函數。

由於是使用日頻率,以您腳本中的範例而言,就會是:

if filled>0 and (c<low[getBarOffset(LD)] or  date[4] > LD)  //經過5個工作天

或是  

if filled>0 and (c<low[getBarOffset(LD)] or  date > dateadd(LD, "D", 5))  //經過5天

自然 發文於   2024/02/20

自動交易執行中斷的話,無法取得庫存的進場日期,因此無法固定時間交易(例如成交後要在第16天平倉),嘉實是否有改善的規劃或排程,

自然 發文於   2024/02/20

自動交易執行中斷的話,無法計算庫存所有個股的累計金額,如果買超過了會違約交割,嘉實是否有改善的規劃或排程,

自然 發文於   2024/02/20

承上述,需求兩個函數

1. 庫存進場日期: 自動交易隨時可以取得交易日期,自動交易執行中斷後也可以取得交易日期,類似像FilledAvgPrice(未平倉成本)一樣,可以取得交易日期。

2. 庫存累計總成本: 自動交易隨時可以取得所有個股的庫存累計總額,自動交易執行中斷後也可以取得所有個股的庫存累計總額,才可以計算還可以買多少,避免超買造成違約交割。

自動交易執行無法保證不中斷,電腦可能當機或重開機,期待中斷後仍可以取得庫存的成交日期以及 庫存累計總成本,感謝

發表回覆
Close