台期量及其對應高低價

  •   44 
  • 最後發表   風期會  2023 二月 15
風期會 發文於   2023/02/15

小幫手請教

我在台期抓取第一筆成交的量及高低,

量抓到後對應明細是資訊正確,

但為何其高低在2/15這天並沒有成交到,會是這樣呈現出來呢?

 

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

Hello 風期會,

 

您的附圖太小,小幫手放大後還是看不清楚。

麻煩您附上解析度更好的圖。

另外,也要麻煩您提供腳本不然小幫手無法判斷問題。

風期會 發文於   2023/02/15

小幫手,圖片我用附件方式,

而程式碼如下這樣

input:X(0);
var: _high(0), _low(0);

if getsymbolfielddate("FITX*1.TF","Date") <> getsymbolfieldDate("FITX*1.TF","Date")[1] then begin
    value1 = 0;   
    while GetsymbolField("FITX*1.TF","SeqNo", "Tick")[value1] >= 
            GetsymbolField("FITX*1.TF","SeqNo", "Tick")[value1 + 1] begin
        value1 += 1;
        end;
    end;

if GetsymbolField("FITX*1.TF", "Volume", "Tick")[value1]>=X then 
  begin
    plot1(GetsymbolField("FITX*1.TF", "Volume", "Tick")[value1],"量",checkbox:=0);
    _high=GetsymbolField("FITX*1.TF","H","1")[value1];
    _low=GetsymbolField("FITX*1.TF","L","1")[value1];
  end;

plot2(_high,"量高",checkbox:=1);
plot3(_low,"量低",checkbox:=1);

附加文件

XQ小幫手 發文於   2023/02/15

Hello 風期會,

 

如果您要取得第一筆 tick 的位置,可以用 value1 = GetsymbolField("FITX*1.TF","SeqNo", "Tick") - 1; 的方式。

因為 GetsymbolField("FITX*1.TF","SeqNo", "Tick") 就會是運算當下為第幾筆tick,那麼往前 GetsymbolField("FITX*1.TF","SeqNo", "Tick") - 1 筆就會是當天第一筆Tick。

不需要用迴圈往前抓。

另外您的 value1 是要往前幾筆tick,但 high 與 low 卻是1分鐘頻率,因此抓到的位置不會是當天第一分鐘的位置。

tick只會有一個成交價,所以您可以使用 GetsymbolField("FITX*1.TF","Close","Tick")[value1];

若您是要第一分鐘的高和低,那麼可以另外判斷:

if time = 084500 then begin

    _high = GetsymbolField("FITX*1.TF","H","1");

    _low = GetsymbolField("FITX*1.TF","L","1");

    end;

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