input、陣列與for

  •   129 
  • 最後發表   阿建  2024 二月 19
阿建 發文於   2024/02/12

小幫手您好,我有訂閱企業版。
在交易中心腳本中我有兩個問題。
第一個是,想請問假如我設定了一個陣列
array:stockclose[3];
那我有辦法用input指定值進去陣列嗎?
例如
input: stockclose[1](10,"股票價格1");
input: stockclose[2](10,"股票價格2");
input: stockclose[3](10,"股票價格3");
目前實際上編譯是失敗的,似乎無法用input指定資料進去陣列中?



第二個問題是,如何利用for迴圈,自動判別close = stockclose1 、close = stockclose2、close = stockclose3 時進場,例如以下寫法是可以的嗎?

input: stockclose1(10,"股票價格1");
input: stockclose2(20,"股票價格2");
input: stockclose3(30,"股票價格3");

For i = 1 to 3
begin
if close=stockclose[i] then setposition(1)
end;

以上感謝小幫手。

 

排序方式: 標準 | 最新
XS小編 發文於   2024/02/15

Hello 阿建,

 

您不能用input直接指定array的值,但可以用input設定值後賦予給array。

舉例來說:

Array: stockclose[3](0);

input: close1(10), close2(10), close3(10);

 

stockclose[1] = close1;

stockclose[2] = close2;

stockclose[3] = close3;

 

小編不建議將交易函數放入迴圈中,就小編所知這種作法是不正確的。

您可以將條件變數放入迴圈中記錄,在以此判斷是否要交易。

舉例來說:

condition1 = false;

For i = 1 to 3 begin

    if close=stockclose[i] then condition1 = true;

    end;

 

if condition1 then setposition(1);

阿建 發文於   2024/02/15

謝謝XS小編回復,第2個問題部分再請教一下,那stockclose[i] 可以不用陣列嗎?
例如改用以下。目前stockclose[i]需要用陣列,須額外寫一個賦予給arry,筆數多的話就相當麻煩。

input:stockclose1(10,"收盤價1),input:stockclose2(10,"收盤價2),input:stockclose3(10,"收盤價3)

condition1 = false;

For i = 1 to 3 begin

    if close=stockclosei then condition1 = true;

    end;

if condition1 then setposition(1);




XS小編 發文於   2024/02/19

Hello 阿建,

 

就小編所知是沒辦法的,不過如果條件相對單純的話 (像是close = stockclose1 這種),與其寫個陣列並賦予值,直接和各個input的價格比較會比較快。

發表回覆
Close