警示策略觸發條件除錯

  •   199 
  • 最後發表   GB  2018 十二月 22
GB 發文於   2018/12/21

Hi 小幫手,

我有一個警示策略腳本在12/18 9:05分和9:45分觸發了(3624)光頡,但是我已檢查數次,還是無法理解為何它會觸發,明明條件就沒成立, 可以幫我debug嗎? 感謝!

腳本如附件或如下

Value2 = average(GetField("收盤價","60"),10); //60分K的10MA

Value3 = average(GetField("收盤價","60")[1],10); //60分K的前一根10MA

 

condition1 = Value2 >= Value3;

condition2 = average(GetField("收盤價","60"),5) crosses over average(GetField("收盤價","60"),10); 

value4 = GetField("收盤價","5");

value5 = GetField("收盤價","5")[1];

//condition3 = TrueAll(Close > Close[1],3);

Value7 = barslast(average(GetField("收盤價","60"),5) crosses over average(GetField("收盤價","60"),10)); 

Print("時間:", timevalue(time,"M"),"前根收盤價:", value5);

if 

condition1

and condition2

and value7 < 5

and value4 >= value5

then ret = 1 else return;

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/12/22

Hi GB,

您好,附檔策略雷達匯出檔是小幫手該寫的 Print 檢驗相關數值是否正確的 Print 檔案,

在 12/18 9:05分 和 9:45分 皆有觸發,觸發的原因,小幫手有改寫 Print 顯示相關數值,

擷取部分Log如下,您可以試試跑跑看檢驗數值是否正確:

觸發警示資料: 20181218.000000 90500.000000 32.510000 32.500000 =Value2 >= Value3 32.530000 32.510000 =condition2 crosses over 0.000000 =Value7<5 32.050000 31.750000 =value4 >= value5 

觸發警示資料: 20181218.000000 94500.000000 32.505000 32.500000 =Value2 >= Value3 32.520000 32.505000 =condition2 crosses over 0.000000 =Value7<5 32.000000 31.850000 =value4 >= value5 

 

您可以在對照檢驗撰寫的程式碼是否與您的策略想法有所落差,

以上方向供您參考,謝謝。

附加文件

GB 發文於   2018/12/22

謝謝
我研究一下

GB 發文於   2018/12/22

Hi
我的問題就在condition1有成立 但condition2 應該沒成立
32.530000 32.510000 =condition2 crosses over

32.520000 32.505000 =condition2 crosses over

程式有bug嗎?

GB 發文於   2018/12/22

sorry, 看錯
32.53是穿越後的值

  • 按讚來自於
  • b24524658
發表回覆
Close