請益,今天收盤量,要大於昨日其中平均5/10/20日 收盤平均量的1.2倍 ,詢問計算邏輯!!

  •   547 
  • 最後發表   Alumi  2023 五月 24
Alumi 發文於   2023/05/05

你好,小幫手,不好意思,我想不出來計算邏輯
假例:
今天的close收盤量是1810張  ,只要大於昨日其中5/10/20 收盤平均量的1.2倍   就通知我

value1 =average( close , 5) *1.2倍   假如平均close量是1000   1.2倍  1200張

value2 =average( close , 10) *1.2倍 假如平均colse量是1500   1.2倍  1800張

value3 =average( close , 20) *1.2倍 假如平均close量是900     1.2倍  1080張

 

請小幫手指導,我要用什麼公式去比較呢?~~~非常感恩!!

排序方式: 標準 | 最新
sss 發文於   2023/05/05

收盤量是整天的成交量嗎?

VALUE1=AVERAGE( getfield("volume","D")[1] , 5);

VALUE2=AVERAGE( getfield("volume","D")[1] , 10);

VALUE3=AVERAGE( getfield("volume","D")[1] , 20);

 

IF getfield("volume","D")>value1 or

    getfield("volume","D")>value2 or

    getfield("volume","D")>value3 

then ret=1;

 

 

sss 發文於   2023/05/05

收盤量是整天的成交量嗎?

VALUE1=AVERAGE( getfield("volume","D")[1] , 5);

VALUE2=AVERAGE( getfield("volume","D")[1] , 10);

VALUE3=AVERAGE( getfield("volume","D")[1] , 20);

 

IF getfield("volume","D")>value1*1.2 or

    getfield("volume","D")>value2*1.2 or

    getfield("volume","D")>value3*1.2 

then ret=1;

 

  • 按讚來自於
  • Alumi588
XQ小幫手 發文於   2023/05/08

 Hello Alumi,

 

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

close 是收盤價,跟成交量沒有關係。

您可以參考 sss 的回覆,其中 getfield("volume","D") 才會是日頻率的成交量。

 

感謝 sss 的熱心回覆。

Alumi 發文於   2023/05/09

非常感謝謝回覆!!~小幫手您好~~~以這個語法成交量只要比其中之一的昨日量5日/10日/20日平均量1.2倍,就通知!

那我怎麼計算出來另一種求最高量的方式:
假如今天量是1700張的話是會比以下內容昨日5日平均量   1.2倍  1200張  來的大,但這不通知我!!
因為有昨日10日平均量 1000張  1.2倍  1800張 ,所以要今天成交量一定要1800以上大要於(昨日10日平均量1.2倍)1800張才須要通知我。。我是需要 昨日平均量5日/10日/20日 x1.2倍再求最高量,而今天的成交量須大於昨日(均量5日/10日/20日的1.2倍的再求最高量)!!

昨日 
5日平均量 1000張   1.2倍  1200張
10日平均量 1000張  1.2倍  1800張
20日平均量 900張  1.2倍  1080張


VALUE1=AVERAGE( getfield("volume","D")[1] , 5);

VALUE2=AVERAGE( getfield("volume","D")[1] , 10);

VALUE3=AVERAGE( getfield("volume","D")[1] , 20);

 

IF getfield("volume","D")>value1*1.2 or

    getfield("volume","D")>value2*1.2 or

    getfield("volume","D")>value3*1.2 

then ret=1;

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

Hello Alumi,

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

最簡單的方法是把 or 改成 and,這樣就會變成要大於3個平均量的1.2倍才會警示。

或是您可以參考 maxlist 函數。

舉例來說,腳本可以調整為:

 

VALUE1=AVERAGE( getfield("volume","D")[1] , 5);

VALUE2=AVERAGE( getfield("volume","D")[1] , 10);

VALUE3=AVERAGE( getfield("volume","D")[1] , 20);

value4 = maxlist(value1 * 1.2, value2 * 1.2, value3 * 1.2);

 

if getfield("volume","D") > value4 then ret = 1;

 

需注意 getfield("volume","D") 如果是在盤中的話,會只有從開盤到運算當下累積的成交量。

要到收盤後才能取得當天的數值。

另外想確認數值是否有如您所想的計算,可以寫成指標畫出或是使用 print 函數印出。

Alumi 發文於   2023/05/14

請問小幫手,你說的這句話『需注意 getfield("volume","D") 如果是在盤中的話,會只有從開盤到運算當下累積的成交量。』我有用警示去跑。確實開盤後當下的累積量就馬上一直延續通知。所以這 getfield("volume","D")是只能用在選股模組嗎?


如果用警示腳本通知的話,是要怎麼讓指定頻率(日)讓腳本只在13:30收盤後通知計算為整天的成交量),是否有其它腳本可以參考嗎?

XQ小幫手 發文於   2023/05/15

Hello Alumi,

 

GetField("Volume", "D") 可以使用在任何模組,但系統無法預知未來的成交量,就算是歷史資料也無法取得運算那根Bar當下時間點之後的資訊。

要取得當日完整的日成交量,一定要在盤後 (當天結束後) 才能夠取得。

 

如果一定要使用策略雷達的話,您可以選擇日頻率並且選擇單次洗價模式。

細節可以參考 觸發設定方式的應用

Alumi 發文於   2023/05/23

小幫手,請教一個問題,我用策略雷達並選擇日頻率並且選擇單次洗價模式
,是會在早盤開盤後就通知,前一日的完整成交量。
在當天收盤13:00後就都沒有通知當日的成交量,這樣是正常的嗎?

也就是說(
選擇單次洗價模式)當天是無法知道的,要等到隔日開盤後。

 

VALUE1=AVERAGE( getfield("volume","D")[1] , 5);

VALUE2=AVERAGE( getfield("volume","D")[1] , 10);

VALUE3=AVERAGE( getfield("volume","D")[1] , 20);

value4 = maxlist(value1 * 1.2, value2 * 1.2, value3 * 1.2);

 

 

if getfield("volume","D") > value4 then ret = 1;

XQ小幫手 發文於   2023/05/24

Hello Alumi,

 

如果您有閱讀小幫手提供的連結的話,就會知道單次洗價執行的方式。

請注意單次洗價比較類似選股中心執行選股,腳本執行後會把最後一根K棒符合腳本條件的商品列出來之後就停止執行,不像其他的執行方式會等待即時價格更新後才觸發。

策略只有在點了執行後會運算,運算結束後就中止。

所以當天收盤後執行的話,getfield("volume","D") 就會是收盤的資訊。

如果您有疑慮的話,可以將相關資訊print出來確認。

發表回覆
Close