小幫手請教
我在台期抓取第一筆成交的量及高低,
量抓到後對應明細是資訊正確,
但為何其高低在2/15這天並沒有成交到,會是這樣呈現出來呢?

小幫手請教
我在台期抓取第一筆成交的量及高低,
量抓到後對應明細是資訊正確,
但為何其高低在2/15這天並沒有成交到,會是這樣呈現出來呢?

Hello 風期會,
您的附圖太小,小幫手放大後還是看不清楚。
麻煩您附上解析度更好的圖。
另外,也要麻煩您提供腳本不然小幫手無法判斷問題。
小幫手,圖片我用附件方式,
而程式碼如下這樣
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);
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;
3 評論