月營收 可以用陣列方式取多個月的資料嗎?

  •   196 
  • 最後發表   Weston  2020 八月 28
Weston 發文於   2020/08/26

如題 我試過取多月的 但是取到都是0

排序方式: 標準 | 最新
XQ小幫手 發文於   2020/08/27

Weston大 您好

想詢問您是怎麼撰寫陣列的呢?

小幫手測試了一下發現是可以抓取多月數據的

ex 下圖為我用陣列撰寫月營收累積量,以2348為例 他的數值是會正常的

Weston 發文於   2020/08/27

一定要宣告陣列?

我抓MA

var: ma200(0);

ma200 = average(close, 200);

condition3 = countif(ma200 > ma200[1], 100) = 100;

這樣用可以耶 也有print出來看過

XQ小幫手 發文於   2020/08/27

Weston大 您好

因為我們所指的陣列 主要會是這個ARRAY

您寫的code 意思應該是,

先算出過去200日MA 

如果過去一百個交易日,每天的200MA都大於前一日

那才會觸發

所以您想問為何沒有篩選出股票是嗎??

Weston 發文於   2020/08/27

我取多個月營收的方式跟取MA一樣 宣告時是宣告一般變數 並不是宣告為陣列

使用的時候用陣列的方式取值 結果都是0

你的範例是宣告一個陣列變數 然後用for loop把值塞進去

所以說 月營收 要取多個月 一定要用這方式嗎? 不能跟取MA一樣?

Weston 發文於   2020/08/27

var: sales(0);

sales= getfield("月營收", "M");

然後我用

sales[2],sales[3] 這樣子取到都是0

XQ小幫手 發文於   2020/08/28

Weston大 您好

如果您只是單純想取資料的話是不需要用到陣列的,

直接抓取就好

以下程式碼為例

var: sales(0);

sales= getfield("月營收", "M");

outputfield1(sales,"1");
outputfield2(getfield("月營收", "M")[1],"2");
outputfield3(getfield("月營收", "M")[2],"3");
ret=1;

如果你是想取sales前幾期的資料,您不能直接用[1] 因為是要抓前一月的資料

而不是前一日的資料

Weston 發文於   2020/08/28

那為什麼ma的資料可以?

ma200 = average(close, 200);

然後我可以抓ma200[1], ma200[2]?

XQ小幫手 發文於   2020/08/28

Weston大 您好

您可以用

getfield("月營收", "M")[1]

與sales[1] 

分別跑看看會比較有感覺

getfield("月營收", "M")[1]是取前一個月的資料 ("m"本身是跨頻率的寫法)

sales[1]並非跨頻率,而是您原本的頻率下的前一期 也就是昨天的月營收財報

以2330為例 7月營收 105,963,468 6月 120,877,785

今天為8/28  sales[1] 為8/27 

以最新一期的財報你不管今天看財報 還是昨天看財報都是7月的

---

ma是按照每天去計算的,所以數值會隨天期變動的

 

發表回覆
Close