回測下單log有異常,請幫忙看

  •   130 
  • 最後發表   tradeNew  2022 二月 23
tradeNew 發文於   2022/02/18

小幫手您好:

  • 目前寫一個測試當價格穿越20ma 的幾% 買,低於幾%賣

問題 : 

我把log列印出來,為什麼沒到條件,程式會進去,前幾行會列印出來log(1-7行log檔案如附件 價格跟時間也不對)

謝謝您

程式碼如下:

value1 = average(close, 20);

// 收盤價高過ma 

if Close Cross Above value1 and Close > value1*1.002 and ( Position = 1  or Position = 0) Then Begin

Setposition(2,market);

print("策略1 購買兩張 = ",close,filledAvgPrice," 時間 = ", CurrentDate , currentTime);

end;

// 多單轉空單 or 停損

// 收盤價低於ma 0.02%

if Close Cross Below value1 and Close < value1*0.998 and (Position = 1 or Position = 2) Then Begin

Setposition(0,market);

print("策略1 停損兩張 = ",close,filledAvgPrice," 時間 = ", CurrentDate,currentTime);

end;

有問題的log如下:

第一行到第七行有異常

策略1 購買兩張 =  10821.000000 0.000000  時間 =  20210217.000000 0.000000 

策略1 購買兩張 =  11470.000000 0.000000  時間 =  20210217.000000 0.000000 

策略1 購買兩張 =  12735.000000 0.000000  時間 =  20210217.000000 0.000000 

策略1 購買兩張 =  12784.000000 0.000000  時間 =  20210217.000000 0.000000 

策略1 購買兩張 =  12677.000000 0.000000  時間 =  20210217.000000 0.000000 

策略1 購買兩張 =  12864.000000 0.000000  時間 =  20210217.000000 0.000000 

策略1 購買兩張 =  15752.000000 0.000000  時間 =  20210217.000000 0.000000 

 

問題二:

如果是庫存有兩口台指期貨,有語法能列出最高成本價格的那一張嗎?

目前想達成目標:

一次買兩張,一張移動停利,停利之後到滿足點位再買回,如果用 filledavgprice 就無法再計算,第二張買回的

成本價格了!,再請教謝謝

感恩謝幫手

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/02/21

Hello tradeNew,

 

1.由您列出的資訊來看,currenttime顯示為0。這應該是因為這1到7行是在資料讀取筆數運算的,因此這段時間雖然有發生符合條件print出資訊,但setposition並沒有執行。

關於資料讀取筆數相關說明可參考此篇文章

 

2.您可以參考XSHelp裡面的交易函數

裡面可以使用 FilledRecordPrice 來取得某筆成交的成交價格,並搭配 FilledRecordBS 來確認是買進還是賣出。

FilledRecordCount 則可以取得策略執行到目前為止的成交紀錄筆數。

在取得目前部位的進場價格後便可以此作條件判斷。

tradeNew 發文於   2022/02/22

請問程式關掉以後重開機,例如手上有2個價格 100 ,110 平均成本是105 能知道筆記高的那張價格嗎?

 

XQ小幫手 發文於   2022/02/23

Hello tradeNew,

 

就小幫手所知,如果是未關閉自動交易策略 (同次執行) 的狀況下可以分別取得不同庫存交易的價格。

但若有關閉後再啟動的話就只能取得庫存的平均成本。

發表回覆
Close