抓取K棒的收盤價, 一開始正確, 過1分鐘後都會變成0或是錯誤的值.

  •   209 
  • 最後發表   不要騙我錢@@  2024 五月 13
不要騙我錢@@ 發文於   2024/05/11

使用交易腳本, 頻率1分或是5分, 逐筆洗價,

符合買入條件的前一根K棒出現後, 我會先記錄下來, 等下次出現高於(或是低於)收盤價時進場,

if  long_condition and flag02=0 then begin

   KbarHigh=GetField("最高價", "1")[1];
   KbarLow=GetField("最低價", "1")[1];
   KbarOpen=GetField("開盤價", "1")[1];
   KbarClose=GetField("收盤價", "1")[1];
   print("高:",numtostr(KbarHigh,0) ,"   低:",numtostr(kbarlow,0),"   開:",numtostr(Kbaropen,0), "   收:",numtostr(kbarclose,0)) ;
 flag02 =1 ; // 有設一個參數, 讓這段抓K棒值, 不會一直反覆執行
end;

 

 

通常第一次列印出來, 都是正確的.

但1分鐘後的print , 最低跟收盤都會變成0 , 因為flag01 一直都是1, 理論上不會再執行一次才對, Kbarclose 的值應該也都固了才對

我抓取的K棒值, 也都是[1] 分鐘前已經完成的, 應該也不會亂跳才對

想請問是哪一個部份沒有注意到呢?

 

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

宣告開高低收這四個變數,都加intrabarpersist,問題就可解決。

  • 按讚來自於
  • raphael1980
不要騙我錢@@ 發文於   2024/05/12

有耶,我一直都有加耶. @@

像以下這樣

 

//最高最低點參數
Var:intrabarpersist KbarHigh(0),KbarLow(0);
Var:intrabarpersist Kbaropen(0),Kbarclose(0);
Var:intrabarpersist kbarfix(0);

虎科大許教授 發文於   2024/05/13

你有沒有注意,最低價與收盤價為0,而開盤價與最高價都有數值?那是因為你這樣的寫法,只有開盤價及最高價有intrabarpersist。最低價與收盤價前面也要加。

Var:intrabarpersist KbarHigh(0),intrabarpersist KbarLow(0);

Var:intrabarpersist Kbaropen(0),intrabarpersist Kbarclose(0);

不要騙我錢@@ 發文於   2024/05/13

好的, 我試試試看. 我以為Var:intrabarpersist  後面接著的 都可以一起變成intrapersist 

感謝許教授解答~~

發表回覆
Close