如何寫出在短均線突破長均線且用那天回推過去10天收盤高點語法

  •   221 
  • 最後發表   Eric.J  4 週前
Eric.J 發文於   2025/05/08

各位大大好

本人是初學者 想在指標中 自製一個指標,

如何在K線中找到 短均線死亡交叉長均線,且記錄出該日期,以那一天為基準,往前回推10天期間的最高收盤價,若今天股價站上那一段期間的最高收盤價,則給予一個指標記號。

舉例 某個股 10日均線死亡交叉50日均線 觸發日期在5/2,則以5/2發生日回推過去10天期間的最高收盤價,若5/8收盤站上此最高收盤價,則5/8出現一個訊號指標。

以下 是我嘗試寫的過程 ,但到日期那邊卡住,再請各位大神 協助說明 

謝謝

input: Shortlength(10); setinputname(1,"短期均線期數");

input: Longlength(50); setinputname(2,"長期均線期數");

input: period(10,"計算天數");

 

If Average(Close,Shortlength) crosses over Average(Close,Longlength) then plot3(low) else noplot(3);

If Average(Close,Shortlength) crosses under Average(Close,Longlength) and Average(Close,Shortlength[1]) < Average(Close,Longlength) then plot4(high) else noplot(4);

if Average(Close,Shortlength) crosses under Average(Close,Longlength) and Average(Close,Shortlength[1]) < Average(Close,Longlength) then value100 = 0 else value100 += 1;

if value100 > 0 then date?;

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/05/08

如何在K線中找到 短均線死亡交叉長均線,且記錄出該日期,以那一天為基準,往前回推10天期間的最高收盤價,若今天股價站上那一段期間的最高收盤價,則給予一個指標記號。

這個沒辦法做到。往回標記指標,就我所知,只能用PlotLine。你可以試著這樣繪製:

input: Shortlength(10); setinputname(1,"短期均線期數");
input: Longlength(50); setinputname(2,"長期均線期數");
input: period(10,"計算天數");
var: myBar(0);
If Average(Close,Shortlength) crosses over Average(Close,Longlength) then
    begin
        value1=highest(h,period);
        value2=highestbar(h,period);
        myBar=currentBar;
    end;
PlotLine(1,myBar-value2,value1,currentBar,value1,"金叉前10日最高價");

Eric.J 發文於   2025/05/09

好的 謝謝 許教授

XS小編 發文於   2025/05/21

Hello Eric.J,

 

小編補充,如果您只是要標記在價格超過符合條件時的最高價 (也就是先取得最高價,再用接下來的價格判斷是否有超過) 的話那是可以作到的。

舉例來說:

If Average(Close,10) crosses over Average(Close,50) then value1 = simplehighest(close, 10);

 

if value1 <> 0 and close > value1 then begin

    plot1(high);

    value1 = 0;

    end

else noplot(1);

發表回覆
Close