請教5分K線圖中,K棒收盤價大於前一日最高價的警示腳本寫法,謝謝。

  •   1.6K 
  • 最後發表   Ryo  2024 十一月 28
Ryo 發文於   2022/08/03

請問以下兩種情境的警示腳本如何寫,謝謝大家。

<情境1>

在當日5分鐘K線圖中,9點開盤後,若某一根K棒收盤價大於前一日的最高價請警示。

<情境2>

符合情境1後,5分鐘K線圖中,後續的某一根K棒收盤價若大於前一根K棒的最高價,請警示。

排序方式: 標準 | 最新
musashi 發文於   2022/08/03

試試看有沒有問題

//<情境1>
//在當日5分鐘K線圖中,9點開盤後,若某一根K棒收盤價大於前一日的最高價請警示。
if   barInterval<>5 then raiseRunTimeError("限5分頻率使用");
if   issessionFirstBar then value1=0;
if   time>=090000
and  c>highD(1)
then begin
    ret=1;
    retmsg="情境1觸發";
    value1=1;//符合情境2後續判斷
end;

//<情境2>
//符合情境1後,5分鐘K線圖中,後續的某一根K棒收盤價若大於前一根K棒的最高價,請警示。
if   value1=1
and  c>h[1]
then begin
    ret=1;
    retmsg="情境2觸發";
end;

Ryo 發文於   2022/08/04

musashi3560010大大,有成功了,太感謝您了!

請教您,若情境2,我想改成"後續的某一根K棒收盤價若大於前一根K棒的最高價,且創當日新高",以下的寫法正確嗎?

//<情境2>

//符合情境1後,5分鐘K線圖中,後續的某一根K棒收盤價若大於前一根K棒的最高價,且創當日新高,請警示。

value2=getfield("High", "D");

if   value1=1

and  c>h[1]

and  c cross over value2[1] //5分K收盤價創當日新高

then begin

    ret=1;

    retmsg="情境2觸發";

end;

 

musashi 發文於   2022/08/04

改這樣看看

//<情境1>
//在當日5分鐘K線圖中,9點開盤後,若某一根K棒收盤價大於前一日的最高價請警示。
if   barInterval<>5 then raiseRunTimeError("限5分頻率使用");
if   issessionFirstBar then begin value1=0;value2=0;end;
if   time>=090000
and  c>highD(1)
then begin
    ret=1;
    retmsg="情境1觸發";
    value1=1;//符合情境2後續判斷
end;

//<情境2>
//符合情境1後,5分鐘K線圖中,後續的某一根K棒收盤價若大於前一根K棒的最高價,請警示。
if   value1=1
and  c>h[1]
and  c>value2
then begin
    ret=1;
    retmsg="情境2觸發";
end;
value2=highD(0);//更新當日最高

Ryo 發文於   2022/08/05

musashi大大,謝謝您的幫忙,今日測試很完美,再次感謝!!您真是大好人!!

Ryo 發文於   2022/08/12

musashi大大,請教您一個問題。

請問第22行的程式碼(如下),放在最後一行的原因是?

value2=highD(0);//更新當日最高

我有試著把它移到第12行,但測試後跑不出結果,不知問題出在哪裡?

請問是因為它要抓當下正在發生的數據,所以才放最後一行嗎?

謝謝您的幫忙!!

 

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

Hello Ryo,

 

因為需要先比較收盤價是否有大於前一根Bar的HighD(0)再更新value2的數值。

不然close不可能大於當日最高價。

musashi 的寫法是讓腳本先確認現在的收盤價是否突破之前的最高價,再將value2更新成新的最高價。

如果您將其向前移的話,若close是新的最高價,更新後最多也只能兩者相等。

感謝 musashi 的熱心回覆。

  • 按讚來自於
  • alstonke
小豪很仁慈 發文於   2024/11/25

請問以下三種情境的警示腳本如何寫,謝謝大家。

<情境1>

開盤跳空上漲3%,且成交量大於500張請警示

<情境2>

符合情境1後,在當日5分鐘K線圖中,9點開盤後,若某一根K棒收盤價大於前一日的最高價請警示。

<情境3>

符合情境2後,5分鐘K線圖中,後續的某一根K棒收盤價若大於前一根K棒的最高價,請警示。

XS小編 發文於   2024/11/28

Hello 小豪很仁慈,

 

小編建議您先觀看網站上的教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

 

另外您的條件可能要更明確,成交量指的是當日的成交量,還是哪一根5分鐘Bar都可以?

舉例來說,使用在5分鐘頻率上:

if date <> date[1] then begin

    condition1 = False;

    condition2 = False;

    end;

 

if getfield("Open", "D") > getfield("close", "D")[1] * 1.03 and getfield("Volume", "D") > 500 then begin  //開盤跳空上漲3%且當日成交量大於500

    ret = 1;    //情境1警示

    condition1 = True;  //這種寫法可以確保情境1條件成立後 condition1 在當天都維持True

    end;

 

if condition1 and close > getfield("High", "D")[1] then begin

    ret = 1;    //情境1&情境2警示

    condition2 = True;

    end;

 

if condition2 and close > high[1] then ret = 1;  //情境2&情境3警示

發表回覆
Close