自動交易符合條件但沒觸發也沒買進,請協助!!

  •   204 
  • 最後發表   謝小  2026 六月 01
謝小 發文於   2026/01/21

小編你好:

1/21早上台指期9:05-9:25這支k棒結束時符合進場條件,但自動交易完全沒反應,沒觸發,沒買進。有發信至信箱,附上log與腳本,請協助查詢原因。

 

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/01/22

沒看到程式碼,很難判斷可能的問題。建議你,針對該進場卻沒有進場的條件進行檢視,確認數據是否都正確(使用Print列印進場條件相關的變數、價格或指標數值)。在沒找出問題之前,建議你先別用真實帳號執行策略,而改用虛擬帳號執行,因為很可能你的程式邏輯有問題。

謝小 發文於   2026/01/22

請問小編有收到信件嗎?如果沒收到,我再寄一次,裡面有附log和腳本。

謝小 發文於   2026/01/26

小編你好:

遲遲未收到您的回應,已重新發信至信箱,裡面有附log和腳本。請回應是否收到!

虎科大許教授 發文於   2026/01/26

小編的任務並非只盯著論壇,而且查找問題也需要時間,建議你,若要盡快解決問題,最好貼上部份的程式碼,特別是你認為有問題的部份,這樣的話,其他人也許可以幫上忙。

XS小編 發文於   2026/01/28

Hello 謝小,

 

由於不知道您策略的設定,故無法確定問題原因,但您使用 MACD 和 xf_XAverage 的話會需要足夠的前期運算值才能夠得出正確的數值。

就腳本的內的參數設定而言,MACD 會需要 (26+9)*4 = 140 筆資料讀取筆數,而 xf_XAverage 的參數是240天,那所需的筆數會長達800天,換算成20分鐘頻率的話則要更多 (應該是超過可設定的上限)。

小編用預設值100,20分鐘頻率測試,1/21這天是不會符合的,實際印出的結果是 xf_XAverage 的條件不符合。

建議可以將其換為 average,或是搜尋討論區裡面提到的,用陣列的方式來跨頻率計算。

另外在腳本中加上 print 函數,將條件相關的數值印出,應該會更容易確認。

 

小編在回覆問題時會由後往前,若在同一個問題下再次回覆發問的話,會導致問題被推到前面,而延後小編的看到問題的時間。

由於討論區的問題較多,要麻煩發問後多等待一些時間。

感謝。

小小的茶米 發文於   2026/05/30

小幫手請問討論區哪一篇有討論到使用陣列的方式來跨頻率計算average呢?我用搜尋找不到

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

小小的茶米:

跨頻率計算平均,只需要將跨頻率的資料賦予Average函數即可。

例如,分鐘頻率之下,要計算過去3天日的收盤價平均,可撰寫如下:

Value1 = Average(GetField("收盤價", "D")[1], 3);

若上述三個日收盤價存放在陣列Arr裡面,則可用加總陣列元素的函數Array_Sum先加總再除以元素總數。

Value1 = Array_Sum(Arr, 1, 3) / 3;

小小的茶米 發文於   2026/05/30

許教授您好,

我是想在5分k台指商品取得當下日k加權指數5MA,但用以下程式碼print發現value2取到的是5分k的5MA,所以一直在研究怎麼樣可以真正的取得加權5日均價

value1 = GetSymbolField("TSE.TW","close","D");

value2 = average(value1, 5);

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

跨頻率不要透過變數。

Value1 = average(GetSymbolField("TSE.TW","close","D") ,5);

   

小小的茶米 發文於   2026/05/31

太感謝許教授的回答,我還有一個問題就是

我原本寫法可以print出來

value1 = GetSymbolField("TSE.TW","close","D");

value2 = average(value1, 5);

Print("5MA=", average(value1, 5));

 

可是改成這樣卻print不出來,這是為何呢?

value1 = average(GetSymbolField("TSE.TW","close","D") ,5);

Print("5MA=", average(GetSymbolField("TSE.TW","close","D"), 5));

顯示更多回應 發表回覆
Close