請問小幫手,如果是在分鐘頻率下,要如何抓出 <20日內"最大成交量"當天的最高價>,麻煩你了
我是寫value1=xfmin_getvalue("d",highestbar(volume,20),0)
但抓到的資料是20根"分鐘頻率"的最大量所在
麻煩您了
請問小幫手,如果是在分鐘頻率下,要如何抓出 <20日內"最大成交量"當天的最高價>,麻煩你了
我是寫value1=xfmin_getvalue("d",highestbar(volume,20),0)
但抓到的資料是20根"分鐘頻率"的最大量所在
麻煩您了
請問小幫手,有看到這個提問嗎 ?
謝謝
jack121974 您好
因為思考策略需要一些時間
待小幫手有解決方法後會再回覆給您
感謝
顯然最近大家的問題很多,小幫手持續燒腦中........
麻煩您了
請問小幫手,這題有解嗎 ?謝謝
XS 可以在分K頻率下,跨頻率取得資料!
getField("成交量", "D")
也可以取得其極大值和K棒
Extremes(getField("成交量", "D"),20,1,value1,value2);
其中, value1 就是成交量最大值, value2 就是成交量最大值對映的K棒...
但....有這麼簡單就好!
成交量最大值是對的!
但最大值對映的K棒, 因為跨頻率的關係...是錯的!
所以, 必需改寫Extremes函式!
我將它命名為 ExtremesA
setBarMode(1);
input:
SourceSeries(numericseries), //來源數列
Length(numericsimple), //計算期間
DscAsc(numericsimple), //極大值(1)或極小值(-1)
refExtremeValue(numericref), //輸出極值
refExtremeBar(numericref);//輸出極值K棒相對位置
if 1 > Length then
begin
refExtremeValue = 0 ;
refExtremeBar = -1 ;
ExtremesA = -1 ;
return;
end;
value1 = SourceSeries;
value2 = 0;
for value3 = 1 to Length - 1
begin
if DscAsc * SourceSeries[value3] > DscAsc * value1 then
begin
value1 = SourceSeries[value3];
value2 = value3;
end;
end;
refExtremeValue = value1;
refExtremeBar = value2;
ExtremesA = 1;
=== 以上程式
編輯完之後, 就可以用
ExtremesA(getField("成交量", "D"),20,1,value1,value2);
value2 就是你想要的K棒數
highD(value2) 就是你要的答案!
Hello jack121974,
您可以宣告一個Array儲存近20日的日成交量及日高價。
然後取得裡面最高成交量對應的日高價即可。
這邊提供簡單範例:
array: volume_high[20, 2](0);
//用volume_high去存近20天的日成交量及日高價
for value1 = 1 to 19 begin
if value1 = 1 then begin
volume_high[1, 1] = getfield("Volume", "D");
volume_high[1, 2] = getfield("High", "D");
end
else begin
volume_high[value1 + 1, 1] = getfield("Volume", "D")[value1];
volume_high[value1 + 1, 2] = getfield("High", "D")[value1];
end;
end;
//找出最高的日成交量及其對應位置
value2 = volume_high[1, 1];
value3 = 1;
for value1 = 2 to 20 begin
if volume_high[value1, 1] > value2 then begin
value3 = value1;
value2 = volume_high[value1, 1];
end;
end;
print("Date:", date, " Highest Volume:", value2, " Correspond High:", volume_high[value3, 2]);
Dear gary63chiang兄,非常感謝您的回覆,小弟就來試試
Dear 小幫手,非常感謝您的回覆;所以這個在任一分鐘頻率上都可直接用嗎 ?
gary63chiang兄您好,當我按下編譯後,出現這段文字:
"變數 "ExtremesA" 沒有宣告,請用 Vars: 的方式宣告,冒號後面是變數名稱再用括號填入預設值。例如: Vars:varA(100); 如果要宣告陣列請用 Arrays: 冒號後面是名稱再用 [] 設定維度與大小,括號填入預設值。例如 Arrays:arr1[10](0);。"
想請問是我露了甚麼嗎 ?
另外,想請教這是否有辦法變成指標?在副圖中show出來value1 value2,謝謝
小幫手您好,當我將腳本用指標畫出時,發現數值不太正確,
例如在4/16 看 2603長榮,其20日來最高量(629635張)及最高價(60.4)都是在4/14,
但當游標移到4/15,卻顯示(589753張)及(47.6元),還請檢查一下,謝謝
13 評論