大量K的跨頻率寫法

  •   1.5K 
  • 最後發表   Eddie Rich  2022 七月 19
Eddie Rich 發文於   2022/05/04

XQ大大您好,我想把1分K中當前最大量的K棒高低點,放置到5分K裡面顯示,在1分K中的顯示是正確的,但在5分K中卻無法顯示正確的數值,想請問一下是否有哪裡該修正嗎? 謝謝XQ大大

 

嘗試了兩種寫法,都無法在5分K中正確顯示

if date <> date[1] then begin
    value1 = 0;
    value2 = 0;
    value3 = 0;
end;


if xfMin_GetValue("1",GetField("成交量", "1"),0) > value1 then begin
    value1 = xfMin_GetValue("1",GetField("成交量", "1"),0);
    value2 = xfMin_GetValue("1",GetField("最高價", "1"),0);
    value3 = xfMin_GetValue("1",GetField("最低價", "1"),0);
end;

plot1(Value2,"最大量1分K高點");//
plot2(Value3,"最大量1分K低點");//

 

第二種寫法,但顯示的數據一樣

if date <> date[1] then begin
    value1 = 0;
    value2 = 0;
    value3 = 0;
end;


if GetField("成交量", "1") > value1 then begin
value1 = GetField("成交量", "1");
value2 = GetField("最高價", "1");
value3 = GetField("最低價", "1");
end;

plot1(Value2,"最大量1分K高點");//
plot2(Value3,"最大量1分K低點");//

 

排序方式: 標準 | 最新
GammaCEO 發文於   2022/05/05

//臨時想的,測試看看..不行再討論

variables:td(0),H1(0),L1(0);

td=TimeDiff(time,090000, "M")+1;

value1=xfMin_GetValue("1",NthHighest(1,volume,td),0);
value2=xfMin_GetValue("1",volume,0);

if value2=value1 then
begin
h1=xfMin_GetValue("1",high,0);
L1=xfMin_GetValue("1",low,0);
end;

plot1(H1,"1K高");
plot2(L1,"1K低");

Eddie Rich 發文於   2022/05/05

感謝G大火力支援,剛剛測試一下G的寫法,用在今天的台勝科上面,數值還是有錯誤(大量K低點的部分)......

 

不過沒關係,還是感謝G大幫忙~

XQ小幫手 發文於   2022/05/10

Hello Eddie Rich,

 

就小幫手所知,xfMin_GetValue 無法取得在大頻率跨到小頻率的資訊。

所以要用其他辦法來取得。

舉例來說,您可以使用while迴圈將今日的1分鐘Bar的資訊抓出來比對。

附上指標腳本供您參考。

 

感謝 GammaCEO 的熱心回覆。

附加文件

Eddie Rich 發文於   2022/05/10

感謝XQ大大教學,腳本可以正常顯示了,再次感謝XQ大大

 

 

對了想請問XQ大大,XS的跨頻率只能用在小跨大,不能大跨小,這樣理解正確嗎?

XQ小幫手 發文於   2022/05/12

Hello Eddie Rich,

 

是的,就小幫手所知,大部分的跨頻率函數只能小跨大。

如果有小跨大的話最好先確認一下函數運算是否正確,有問題的話則需要另外處理。

如同小幫手上面所說,使用 while 將該根Bar中的小頻率資訊抓出。

  • 按讚來自於
  • eddie740704
Eddie Rich 發文於   2022/07/08

小幫手您好,一樣是關於跨頻率大量K的延伸問題,想請問要如何計算,當前的爆量區間,是今天的第幾個大量區間? 因為有時候一天不只一個大量區間,所以想說有沒有辦法計算現在是位於第幾個,謝謝小幫手

XQ小幫手 發文於   2022/07/13

Hello Eddie Rich,

 

您只需要多加1個變數,每日重置並在條件符合時增加即可。

舉例來說:

var: count(0);

if date <> date[1] then count = 0;  //每日重置

condition1 = 爆量條件...;

if condition1 then count += 1;

這樣count就會是今日有觸發條件的次數。

Eddie Rich 發文於   2022/07/13

小幫手謝謝,我試著將上述的變數加入,但好像仍然無法跟4F您所提供的腳本結合,不知道我是否有修改錯誤呢? 謝謝

var: count(0);
if date <> date[1] then count = 0;  //每日重置
if getfield("Volume", "1")[value1] > value2 then count += 1;
plot8(count,"爆量次數");//

XQ小幫手 發文於   2022/07/19

Hello Eddie Rich,

 

小幫手4F提供的範例是如果您頻率用日頻率的話,要抓出1分鐘Bar的資訊該怎麼作。

且裡面的範例是當天的成交量有創幾次新高(由0開始)。

您腳本中的value2一直都是0,只要有交易過的1分鐘Bar都會符合。

 

如果您是大頻率跨小頻率的話,要使用while迴圈抓出裡面的資料。

舉例來說,5分鐘頻率下跨1分鐘頻率的話可以這樣做:

value1 = getfield("Time", "5");

value2 = 0;

value3 = 0;

 

while value1[value2] = time then begin

    if {您的爆量條件} then value3 +=1;    //像是 getfield("Volume", "1")[value2] > 100;  1分鐘成交量大於100之類的

    value2 += 1;

    end;

這樣value3就會是這5分鐘內達成爆量條件的次數。

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