ea编程中i是什么函数
-
在EA编程中,i是一个常用的函数之一,用于获取当前的迭代次数或索引。i函数可以在循环结构中使用,例如在for循环或while循环中。
当使用for循环时,通常会将i函数与另外两个函数一起使用:Bars和Total。Bars函数用于获取当前回测数据的总条数,而Total函数用于获取当前回测数据的总周期数。通过这三个函数的组合,可以实现对回测数据进行迭代处理。
例如,以下是一个使用i函数的简单示例:
for (int i = 0; i < Bars; i++) { // 在这里编写具体的策略代码 // 可以通过i函数获取当前的迭代次数 // 例如,获取当前周期的收盘价 double closePrice = Close[i]; // 在这里对收盘价进行操作 }在上面的示例中,循环会从0开始,并在达到回测数据的总条数之前一直执行。通过i函数,我们可以在内部访问当前周期的数据,并对其进行操作。
需要注意的是,i函数只能在循环结构中使用。在其他地方使用i函数会导致编译错误。在EA编程中,还有许多其他有用的函数和变量,用于获取和操作各种数据,如开盘价、最高价、最低价等。通过灵活运用这些函数和变量,可以实现复杂的交易策略和指标计算。
总而言之,i函数是EA编程中用于获取当前迭代次数或索引的函数,常用于循环结构中。
1年前 -
在EA编程中,"i"不是一个函数,而是一个特殊的变量。它被用来表示当前的价格条目(tick)。每一个价格的改变都会导致i的值增加。下面是关于i变量的几点重要信息:
-
i的类型:在MQL语言中,i是一个整型变量,它只能取整数值。它可以被用作数组下标来引用历史数据。
-
i的初始值:EA在开始运行时,i的初始值为0。当EA运行时,每次价格发生变动,i的值就会增加1。
-
i的作用:i变量可以在EA中用来追踪价格的变化。通过使用i变量,可以引用当前价格条目的前一个价格条目,进而进行各种计算和判断。例如,可以通过i-1引用前一个价格条目的价格。
-
i的限制:虽然i变量非常有用,但需要注意的是,在历史数据不足的情况下,使用i可能会导致错误。在EA的初始化过程中,有些历史数据可能还未加载,此时使用i可能会导致数组越界错误。因此,在使用i变量时,需要先检查历史数据的可用性。
-
i的重置:在EA运行过程中,可以通过调用ResetLastError()函数来重置i变量的值为0。这在需要重新开始计算或引用历史数据时非常有用。
总结来说,“i”是一个用于表示当前价格条目的特殊变量,在EA编程中经常用于追踪价格的变动并进行相关计算和判断。
1年前 -
-
在EA编程中,i是一种特殊的函数,用于获取当前的价差和其他一些相关信息。i函数是MetaTrader 4平台中的内置函数之一,可以在Expert Advisors(EA)或自定义指标中使用。
i函数返回整数值,用于表示特定的信息。它有多个参数,包括指定的价差的类型、所需的数据序列的名称、以及要查找的数据的索引值。下面是i函数的一些常用参数及其作用:
- 指定的价差的类型(MODE_参数):i函数通过该参数指明要获取的数据的类型。
- MODE_OPEN:获取开盘价格。
- MODE_CLOSE:获取收盘价格。
- MODE_LOW:获取最低价。
- MODE_HIGH:获取最高价。
- MODE_VOLUME:获取成交量。
-
所需的数据序列的名称(symbol_name参数):i函数可以用于多个不同的数据序列,比如主图表中的价格、指标中的值等。设置symbol_name参数可以确保获取正确的数据序列。
-
要查找的数据的索引值(shift参数):i函数从数据序列的末尾向前检索数据。设置shift参数来确定要获取的数据是最新的还是之前的。
下面是一个示例代码,演示如何使用i函数来获取当前的最高价和最低价:
double high_price = iHigh(symbol_name, PERIOD_CURRENT, 0); double low_price = iLow(symbol_name, PERIOD_CURRENT, 0);在这个示例中,iHigh和iLow函数用于获取当前的最高价和最低价。symbol_name参数用于指定数据序列的名称,PERIOD_CURRENT参数表示当前图表的周期,而0表示要获取的是最新的数据。
需要注意的是,i函数只能在EA或自定义指标中使用,不能直接在图表上使用。它提供了一种方便的方法来获取当前的价差和其他相关信息,以便于进行进一步的计算和决策。
1年前