請問如何寫出在昨日開盤090000的average(close,60)大於前日average(close,60)的最高點呢?
以5分K的示警模式下,抓去前日最高點均線
- 389
- 最後發表 JCL 2025 二月 05
虎科大許教授
發文於
2025/01/31
{這個任務需要準備足夠的資料筆數,以5分鐘頻率而言,
需要至少準備3天加60筆資料,亦即3*54+60=222}
setTotalBar(222);
value1=getbaroffset(getField("日期","D")[1],090000);
value2=getbaroffset(getField("日期","D")[2],090000);
value3=average(c[value1],60);
value4=simplehighest(average(c,60)[value1],value2-value1+1);
if value3>value4 then ret=1;
JCL
發文於
2025/01/31
謝謝教授的回答,另外請教上述幾點問題:
1.如果剛好遇到跨假日或是休市日,舉例來說getbaroffset(getField("日期","D")[2],090000)回傳上會有問題嗎?
2.在value4=simplehighest(average(c,60)[value1],value2-value1+1); 中的value2-value1+1這段是甚麼意思呢?
虎科大許教授
發文於
2025/01/31
(1)getbaroffset抓的是資料的日期。不受假日影響。
(2)value4為何這樣計算,你慢慢琢磨,這樣才會進步。
JCL
發文於
2025/01/31
了解,謝謝許教授熱心地回答。
虎科大許教授
發文於
2025/02/01
你可在上述程式的最後一行加上Print,以顯示相關變數的數值,這樣方便你了解各個變數運算的結果。
print(date,time,datetime[value1],datetime[value2],value1,value2,value3,value4);
JCL
發文於
2025/02/03
好的,謝謝許教授的回覆。
XS小編
發文於
2025/02/05
JCL
發文於
2025/02/05
謝謝小編的解答。
8 評論