量化投资_Multicharts数组操作函数_append()追加函数(自定义)

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[0] = 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] -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);

  //========================转发时请注明出处======================//

原文地址:https://www.cnblogs.com/noah0532/p/12359799.html

时间: 2024-10-15 06:49:24

量化投资_Multicharts数组操作函数_append()追加函数(自定义)的相关文章

原生JS数组操作的6个函数 arr.forEach arr.map arr.filter arr.some arr.every arr.findIndex

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script type="text/javascript"> var arr = [1,2,4,5,3] var arrObj = [{'id':1,'name':

PHP:数组操作函数array_count_values()的实现

    PHP作为一门弱类型的脚本语言,其变量无需声明,即用即得,其数组更是与其他强类型语言相差巨大,比如PHP数组中的关联键和数值键,其中最有趣的莫过于关联键了,这是在C++或JAVA中无法见到的,而且PHP还提供诸多强大的数组操作函数,比如   array_values()//可以剥离数组中的关联键和数值键,或得有其元素的值所组成的数组 array_keys()//获得所有的关联键和数值键  利用这两个函数就可以非常方便简单的实现  array_count_values()函数  思路就是先

PHP:常用PHP数组操作函数

php为我们提供了丰富的数组操作函数,用这些函数可以非常方便的实现我们所想实现的功能. 添加和删除数组元素 添加元素的方法 array_unshift(array array,mixed var [,mixed var...]) 在数组头添加元素,所有的数值键会被相应的修改,但关联键不会受到影响 array_push(array array,mixed var [,mixed var.....]) 在数组尾添加元素 删除数组元素的方法 array_shift(array array) 删除数组头

JavaScript中常见的数组操作函数及用法

昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下,这样方便大家准备参考.如果恰好你也在准备各种笔试,希望对你有所帮助.同时,也欢迎补充. 1.数组创建 创建数组应该是最简单的了,有用数组字面量创建和数组构造函数两种方法,见下: var array1 = new Array(); var array2 = []; 上面是创建数组的最常见的两种方法,其中第二种方法因为简单直观而被开发者推崇.其中,

字符串、数组操作函数 Copy Concat Delete Insert High MidStr Pos SetLength StrPCopy TrimLeft

对字符串及数组的操作,是每个程序员必须要掌握的.熟练的使用这些函数,在编程时能更加得心应手. 1.Copy 功能说明:该函数用于从字符串中复制指定范围中的字符.该函数有3个参数.第一个参数是数据源(即被复制的字符串),第二个参数是从字符串某一处开始复制,第三个参数是要复制字符串的长度(即个数).最后函数返回一个新的字符串(即是我们指定要复制的字符串内容). 参考实例: var S: String; MyStr: String; // 保存新的字符串 begin S := 'I Love Chin

【五】PHP数组操作函数(未完)

1.输出数组的结构:bool print_r(数组); $arr=array('jack','mike','tom'); print_r($arr);//Array ( [0] => jack [1] => mike [2] => tom ) 2.如何声明二位数组? $arr=array('name'=>array('jack','mike'),'sex'=>array('man','woman')); print_r($arr);//Array ( [name] =>

DELPHI字符串、数组操作函数(转)

对字符串及数组的操作,是每个程序员必须要掌握的.熟练的使用Delphi的这些函数,在编程时能更加得心应手.  1.Copy  功能说明:该函数用于从字符串中复制指定范围中的字符.该函数有3个参数.第一个参数是数据源(即被复制的字符串),第二个参数是从字符串某一处开始复制,第三个参数是要复制字符串的长度(  即个数).最后函数返回一个新的字符串(即是我们指定要复制的字符串内容).  参考实例:  var  S: String;  MyStr: String; // 保存新的字符串  begin 

C#二进制字节数组操作函数 截取字节数组SubByte

/// <summary> /// 截取字节数组 /// </summary> /// <param name="srcBytes">要截取的字节数组</param> /// <param name="startIndex">开始截取位置的索引</param> /// <param name="length">要截取的字节长度</param> ///

JavaScript 数组操作函数--转载+格式整理

JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,concat的总结.身为一个有点完美主义的强迫症患者来说,原文的格式,差点杀死我.so,这篇文章就出来了……原文:传送门. 一.push 和 pop 这两个函数都是对数组从尾部进行压入或弹出操作. push(arg1,arg2,...)可以每次压入一个或多个元素,并返回更新后的数组长度. 注意:如果参数也是