如何使用XS指標腳本繪製最高點為一直線

  •   1.6K 
  • 最後發表   Jack  2022 三月 16
Jack 發文於   2016/10/05

如何使用XS指標腳本繪製最高點為一直線?

 

類似下圖的最低點繪製方法,如果有變動的話,線圖會自己調整。

 

程式碼大致撰寫邏輯

1 跑第一根K棒時,用一個變數紀錄第一個K棒最高價,並繪製該變數的直線,

2 跑第二根K棒時,第二個K棒的最高價 > 第一個K棒的最高價時,則變數紀錄第二個K棒的最高價,並繪製該變數的直線,

3 跑之後的K棒後,目前K棒的最高價 > 之前K棒的最高價時,則變數紀錄目前K棒的最高價,並繪製該變數的直線,

 

程式碼範例如下:

var: i(2), Thehigh(0);

if currentbar = 1 then Thehigh = high;


if currentbar = 2 then 
    if high > high[1] then Thehigh = high;

if currentbar > 2 then
begin
    if high > SimpleHighest(high[1], i) then Thehigh = high else Thehigh = SimpleHighest(high[1], i);
    i = i + 1;
end;

plot1(Thehigh);

 

繪製後的圖如下:

 

以上,提供參考。

 

 

排序方式: 標準 | 最新
Jack 發文於   2016/10/06

補充,

 

Jack 這裡提供給大家,

只要 輸入開始日期(yyyymmdd) 與 結束日期 後,

就能在指標上,顯示起始日期的最高價直線。

 

以下是程式碼範例,供大家參考:

input: startday(20160801), endday(20160901);
variable: i(2), Thehigh(0);

value1=getbaroffset(startday);
value2=getbaroffset(endday);

setinputname(1, "開始日期");
setinputname(2, "結束日期");

if date = startday then Thehigh = high;

if value1 = 1 then
    if high > high[1] then Thehigh = high;

if value1 > 1 then 
begin
    if high > SimpleHighest(high[1], i) then Thehigh = high else Thehigh = SimpleHighest(high[1], i);
    i = i + 1;
end;

if date >= startday then plot1(Thehigh);

if value2 <> 0 then noplot(1);

 

跑出來的畫面如下圖:

 

文字有點不清楚抱歉,

左邊那條垂直線為"開始日期",

右邊那條線為"結束日期",

 

以上,提供給大家參考,謝謝。

 

 

小韭菜 發文於   2022/03/13

Hi Jack大大您好,這裡有幾個問題想跟您請教:

1) 請問日期的2條橙是xq畫出來的還是後製加上去的?

2)我知道xq的指標不能往回畫,但您的範例可以變成不指定開始跟結束的日期,而是指定要畫出幾天內的最高價直線(以執行腳本的那天當基準點往前幾天)。

謝謝 Jack大大

XQ小幫手 發文於   2022/03/16

Hello 小韭菜,

 

就小幫手所知來回覆問題。

1.是後製的。

2.沒有辦法。小幫手能想到的辦法是在指標中currentdate會回傳指標掛上去的日期,所以您可以用 dateadd(currentdate, "D", -10) 來當作限制10個日曆日的條件。

舉例來說:

if date >= dateadd(currentDate, "D", -10) and value1 < high then value1 = high;

plot1(value1);

這樣就只會有這10天(包含股票未開盤的日期)value1會等於最高價,往前都是0。

小韭菜 發文於   2022/03/16

謝謝小幫手幫忙回答,我再來試試看。

發表回覆
Close