1. Multicharts中關於數組的操作比較麻煩,而且當中所謂的動態數組的定義並不是像其他語言那種的概念。因此要對數組進行元素“”追加“”的話,需要重新更改數組的索引,然后再最后一個位置添加value。這樣操作是比較繁瑣而且不清晰的。
2. 但是比如像Python語言中,列表的操作,可以直接采用像 變量.appen(值),這樣的方式進行元素的添加,這樣非常的方便。
3. append函數,本人把Multicharts中關於數組元素的追加進行封裝操作。
4. 原先的設計:采用value1簡單的變量進行計數操作,更改Multicharts中數組的索引的更改,但是用簡單變量的話,根據Multicharts的圖表運行邏輯,這個函數運行不運行,這個簡單變量都會進行計數操作。根據Multicharts的運行機制,把這個計數並且勇於更改數組索引的操作,更改為也用幾個簡單數組來進行計數,這樣使得跟圖表的運用邏輯進行隔離,符合條件時才進行計數——加總——更改數組長度——賦值操作。
5. 函數的調用格式:
value1 = append(array,value);
value1 返回當前數組的長度
array:原數組變量名
value:需要追加的值
array:返回追加后的新數組(由於Multicharts函數的格式要求,這里采用的是引用參數,也就是說通過上面的操作,array原數組將變成追加元素后的新數組)
6. 演示:
7:公開代碼:
//append函數:仿制其他編程語言的數組添加函數。 //解釋:比如在Python語言中,x.append(value), x是一個列表,這樣可以通過面向對象的方式,追加列 //表的最后一個值。在MC語言中沒有類似的函數,這里制作一個這樣的函數。原先的計數采用value1的序列 //計數,但是采用這種方式,不管函數運行不運行,都會進行加減操作;計數改為用數組計數,這樣復合 //條件,用數組計數,使數組計數同圖表中采用序列變量的形式進行隔離操作。 //用法:value1 = append(array,value); //返回值: //value1:表示當前數組的索引長度 //array:需要添加的原數組 //value:需要添加的數值 //備注:array是一個引用參數做為傳值操作,使用這個函數后,array引用參數將返回追加元素后的新數組(數組更新操作),這個函數是一個一維,添加數值的操作函數,其他需要添加或者要改成多維數組添加方式,可以照此進行修改
inputs:
arr[MaxSize]( numericarrayref),
input_value(NumericSimple);
variables:
value1(0);
array:
count0[](0),
count[1](0);
if count[1] = 0 then begin
arr[count[0]] = Close;
count[1] = count[1] + 1;
end;
if count[1] > 0 and count0[0] <> 0 then begin
count[1] = count[1];
array_setmaxindex(arr,count[1]);
arr[count[1]] = Close;
count[1] = count[1] + 1;
end;
count0[0] = count0[0] + 1;
append = array_getmaxindex(arr);
//========================轉發時請注明出處======================//