日內最大量2分鐘K棒的最高價/最低價

  •   955 
  • 最後發表   HUMBLEbee  2022 四月 28
HUMBLEbee 發文於   2021/01/07

小幫手您好,

編譯了以下指標想隨著日內行情發展在主圖疊圖畫出最大量2分K的高低價. 只有最大量K棒的高低價才會顯示, 稍早的最高量高低價應該隨著新的最高量出現而消失.

麻煩請幫我看一下哪裏出錯了, 萬分感謝!

input:Length(60,"2分K區間");
if barfreq <> "Min" and barinterval <> 2 then raiseruntimeerror("此範例僅支援2分頻率");
Value1 = highestbar(volume,Length);
Value2 = high[value1];
Value3 = low[value1];
Plot1(value2, "最大量高價");
plot2(value3, "最大量低價");

排序方式: 標準 | 最新
HUMBLEbee 發文於   2021/01/07

剛才發現錯誤地方了, input:Length(60,"2分K區間");的60應該改為135才對.

但是昨天最大量的高低價還是會繼續顯示 直到今天出現更高量 我想是回朔135根K棒的原因.

如有任何其它可修正的地方讓指標只顯示今日最大量高低價, 還請您建議, 謝謝.

 

XQ小幫手 發文於   2021/01/08

HUMBLEbee 您好

稍早的最高量高低價應該隨著新的最高量出現而消失

這個是沒辦法做到的,主要是因為K線圖唯一個時間序列

無法逆推回去把過往的東西刪掉

但我們可以 使用date=currentdate 的條件 

讓今天以前的數值都=0

撰寫方式如下,提供給您參考看看

input:Length(135,"2分K區間");
if barfreq <> "Min" and barinterval <> 2 then raiseruntimeerror("此範例僅支援2分頻率");

if date=currentdate then 
begin
Value1 = highestbar(volume,Length);
Value2 = high[value1];
Value3 = low[value1];
end
else
begin
value2=0;
value3=0;
end;
Plot1(value2, "最大量高價");
plot2(value3, "最大量低價");

 

HUMBLEbee 發文於   2021/01/08

小幫手您好,

謝謝您對於我的疑問提出解釋, 以及針對我的需求修正程式碼.

感謝!

 

HUMBLEbee 發文於   2021/01/08

小幫手您好,

不好意思要再麻煩您,試了您的修正版, 但是無法理解為何前一日資料還會出現.

以下3227例子 1/7 13:28 最後一盤大量高低價還是被標上圖,

其他如 1216 6173 等昨日尾盤大量者也是.

另外2328則是只有昨日最大量高低價.

請幫我再看看, 謝謝!

 

XQ小幫手 發文於   2021/01/08

HUMBLEbee 您好

主要是因為

Value1 = highestbar(volume,Length);

這段還是會撈到過往的數據 (假設今天1/8 9:00 往前推135根找最大值)

----------

以下是我再次改良的辦法 您試試看

簡單來說 原理是我們去計算當天有幾根k棒 來抓highestbar的計算範圍

if barfreq <> "Min" and barinterval <> 2 then raiseruntimeerror("此範例僅支援2分頻率");
if GetField("日期","D")<>GetField("日期","D")[1] then 
begin
value99 +=1;
if time=133000 then 
value99=0;
end;

if date=currentdate and value99<>0 then 
begin
Value1 = highestbar(volume,value99);
Value2 = high[value1];
Value3 = low[value1];
end
else
begin
value2=0;
value3=0;
end;
Plot1(value2, "最大量高價");
plot2(value3, "最大量低價");

HUMBLEbee 發文於   2021/01/08

小幫手您好,

謝謝您努力試著幫我解決問題, 剛試了您改良的程式, 編譯錯誤但也看不出是哪裡出錯.

再麻煩您了, 謝謝.

[23:05:26] New and Improved Largest Volume HL Price 編譯開始

[23:05:26] New and Improved Largest Volume HL Price 編譯發生錯誤

 

 

 

XQ小幫手 發文於   2021/01/11

HUMBLEbee 您好

是否能請您使用以下檔案匯入腳本試看看?

 

 

附加文件

HUMBLEbee 發文於   2021/01/11

小幫手您好,

有勞您費心反覆修改,非常感謝!

 

 

 

 

  • 按讚來自於
  • b24524658
Eddie Rich 發文於   2021/09/04

想詢問一下XQ大大,程式碼中的value99 +=1會被定義成甚麼期數呢? 我知道value99 +=1 就等於 value99 =value99+1,但是如果value99不等於0時,那value99會是多少呢? 因為我查詢highestbar這個參數,第二個數字代表的是期數,那如果設定為value99 +=1,那會被設定為多少期數呢? 謝謝

XQ小幫手 發文於   2021/09/08

Hello Eddie Rich,

 

value99計算出來的值會是距離當日開盤幾根Bar。

其邏輯大概為:換日重置,每過一筆加1。

若要更好理解的話:

if getfielddate("Date") <> getfielddate("Date")[1] then value99 = 1 else value99 += 1;

print(date, time, value99);

//如果換日的話當根Bar為1,不然每經過1根Bar加1,您可以觀察print出來的資訊即可理解

這樣您用highest就可以取得當日最高。

  • 按讚來自於
  • Jia Hong
Show More Posts 發表回覆
Close