如何標示近5日的最高價與最低價

  •   284 
  • 最後發表   法金麥  2022 九月 27
法金麥 發文於   2022/09/20

小幫手您好,我寫了一個指標來標示近5日每天的最高價與最低價,假如價格超出個股今天的漲跌停範圍就不顯示。但我這個寫法好像有點土法煉鋼,而且要增減天數也很不方便。請問您有沒有什麼方法可以優化這個指標呢?

if highD(1) <= closeD(1)*1.1
and highD(1) >= closeD(1)*0.9
and Date=currentDate
then plot1(highD(1),"前1天最高價");

if highD(2) <= closeD(1)*1.1
and highD(2) >= closeD(1)*0.9
and Date=currentDate
then plot2(highD(2),"前2天最高價");

if highD(3) <= closeD(1)*1.1
and highD(3) >= closeD(1)*0.9
and Date=currentDate
then plot3(highD(3),"前3天最高價");

if highD(4) <= closeD(1)*1.1
and highD(4) >= closeD(1)*0.9
and Date=currentDate
then plot4(highD(4),"前4天最高價");

if highD(5) <= closeD(1)*1.1
and highD(5) >= closeD(1)*0.9
and Date=currentDate
then plot5(highD(5),"前5天最高價");

if lowD(1) <= closeD(1)*1.1
and lowD(1) >= closeD(1)*0.9
and Date=currentDate
then plot6(lowD(1),"前1天最低價");

if lowD(2) <= closeD(1)*1.1
and lowD(2) >= closeD(1)*0.9
and Date=currentDate
then plot7(lowD(2),"前2天最低價");

if lowD(3) <= closeD(1)*1.1
and lowD(3) >= closeD(1)*0.9
and Date=currentDate
then plot8(lowD(3),"前3天最低價");

if lowD(4) <= closeD(1)*1.1
and lowD(4) >= closeD(1)*0.9
and Date=currentDate
then plot9(lowD(4),"前4天最低價");

if lowD(5) <= closeD(1)*1.1
and lowD(5) >= closeD(1)*0.9
and Date=currentDate
then plot10(lowD(5),"前5天最低價");

XQ小幫手 發文於   2022/09/27

Hello 法金麥,

 

您可以使用 GetField("漲停價") 和 GetField("跌停價") 來取得各日的漲跌停價格,不用另外計算。

另外條件判斷的部分可以用 迴圈 或是 撰寫函數腳本的方式簡化,不過plot還是需要一個個寫。

舉例來說:

Array: NumArray[5](0);

for value1 = 1 to 5 begin

    if getfield("High", "D")[value1] > = GetField("漲停價") then NumArray[value1] = getfield("High", "D")[value1] else NumArray[value1] = 0;

    end;

 

plot1(NumArray[1],"前1天最高價");

plot2(NumArray[2],"前2天最高價");

plot3(NumArray[3],"前3天最高價");

plot4(NumArray[4],"前4天最高價");

plot5(NumArray[5],"前5天最高價");

 

這樣就會畫出前5天的最高價,如果該天最高價大於漲停價的話則會畫出0。

發表回覆
Close