分時買賣力變數

  •   191 
  • 最後發表   Dao  2023 十月 03
Dao 發文於   2023/09/14

小編你好,

在編輯分時買賣力的時候遇到一些困難,想記錄0920前內外盤差的最大量該K棒收盤價,舉例如照片

該股在0900時內外盤差+1164

0925時內外盤差+1862

想在0925時盤差量>0900時跳出警示,附上目前編輯的警示,回測後出現的個股有記錄道-值得量該怎麼修正呢?

var: trading_power(0);//分時買賣力(內外盤差)

trading_power = GetField("外盤量")-GetField("內盤量");//內外盤差公式

if issessionfirstbar then begin

value1 = trading_power;//外盤量差

value2 = close;

end

else if trading_power > 0 then begin

value1 = trading_power;

value2 = close;

end;

if time > 091900

and trading_power > value1

and close > value2

then ret=1;

 

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/09/22

 Hello Dao,

 

您可以用變數保存 09:20 以前的內外盤差最大值,併用來當作條件。

舉例來說,在1分鐘頻率下:

value1 = GetField("外盤量")-GetField("內盤量");

 

if issessionfirstbar then begin

    value2 = value1;    //用來保存內外盤差最大值

    value3 = close;     //保存對應的收盤價

else if value1 > value2 and time < 092000 then begin

    value2 = value1;

    value3 = close;

    end;

 

if time >= 092000 and value1 > value2 then begin

    ret = 1;

    print(date, time, "09:20前內外盤差最大值:", value2, "對應的收盤價:", value3);

    end;

 

Dao 發文於   2023/09/22

感謝小編回覆..

另外在請教一個問題,記錄變數能否不受時間上的限制去達成呢?

上面的範例都限制在0920分以前記錄最大值,0920分後達成條件式後即警示,如果將時間軸去掉則無法運行,是否可以直接記錄最大值?

舉例:

 

value1 = GetField("外盤量")-GetField("內盤量");

if issessionfirstbar then begin

    value2 = value1;    //用來保存內外盤差最大值

    value3 = close;     //保存對應的收盤價

else if value1 > value2  then begin

    value2 = value1;

    value3 = close;

    end;

if  value1 > value2 then begin

    ret = 1;

XQ小幫手 發文於   2023/10/03

Hello Dao,

 

網站上有教學區,裡面有XS語法的基礎和應用,小幫手建議您先閱覽該區文章。

當然可以把時間限制拿掉,但您的寫法會先更新 value2 的最大值,所以 value1 永遠也不會大於 value2。

可以修改為:

if issessionfirstbar then begin

    value2 = value1;    //用來保存內外盤差最大值

    value3 = close;     //保存對應的收盤價

else if value1 > value2  then begin

    value2 = value1;

    value3 = close;

    ret = 1;

    end;

 

這樣就會在創新高的時候同時更新value2數值與警示。

發表回覆
Close