При положительном значении изображение линии смещается вправо, при отрицательном - влево. Значение, рассчитанное на текущем баре, рисуется с указанным смещением относительно текущего бара.
Среди программ для автоматического трейдинга можно выделить две большие категории: торговые роботы и индикаторы. Первые предназначены для совершения торговых операций на рынках, а вторые — для анализа котировок и выявления закономерностей в их изменении. При этом индикаторы могут использоваться непосредственно в роботах, образуя полноценную...
为什么这个循环没有结束,当...(当我意识到循环是无限的时候,我添加了i<2000的第二个条件)MQL4
cv * tvp * (double)stop < ml
为什么这个循环没有结束,当...(当我意识到这个循环是无限的时候,我添加了第二个条件,即i < 2000)
循环将不会结束,直到
cv * tvp * (double)stop < ml
为了使循环在满足这个条件时结束,我们可以在循环的主体中写下以下内容
或
在MQL4中只有这种方式。
结果。
再次感谢您的帮助。如果您能同时告诉我如何进行以下工作,我将非常感激...
可以用什么函数或语言结构来计算一个数组元素 的索引值,该元素在排序前具有该索引。
这里,我有排序前的数组A[](上面一行)和排序后的相同数组。一个在排序前数值为5的元素在索引9
,而一个排序后数值为5的元素在索引3。
我在排序的数组中找到一个值为5的单元格,该函数将该单元格在排序的数组中的索引号 保存为W,等于索引3。
ArraySort(А,10,0,MODE_ASCEND)。
W = ArrayBsearch( A,5,WHOLE_ARRAY,0,MODE_ASCEND) 。
问题:在ArrayBsearch()之后,如何将数值为5的单元格的索引值存储在一个具有未排序 数组的变量中。
即保存9的值。
谢谢你的帮助。
阿列克谢-维克多罗夫
Mihail Matkovskij
谢谢你!
大家好。谁知道如何在自定义指标 中设置一个负值,并使其发挥作用?即 "将指标相对于价格图表进行移动"。
例如:如果你在移动平均线指标中放入一个-4的数值,它就会相对于图表向左移动--并且发挥作用。
但如果你把这个值放在指标的代码中--那么指标就会停止工作,并显示所有TF值为红色。
再次感谢您的帮助。如果您能同时告诉我如何进行以下工作,我将非常感激...
可以用什么函数或语言结构来计算一个数组元素的 索引值,这个元素在排序前的索引值。
这里,我有排序前的数组A[](上面一行)和排序后的相同数组。一个在排序前数值为5的元素在索引9
,而一个排序后数值为5的元素在索引3。
我在排序的数组中找到一个值为5的单元格,该函数将该单元格在排序的数组中的索引号 保存为W,等于索引3。
ArraySort(А,10,0,MODE_ASCEND)。
W = ArrayBsearch( A,5,WHOLE_ARRAY,0,MODE_ASCEND) 。
问题:在ArrayBsearch()之后,如何将数值为5的单元格的索引值存储在一个具有未排序 数组的变量中。
即保存9的值。
谢谢你的帮助。
但不要随意对数据进行分类,也不要不顾全局。
从目前的项目来看:取一个(短)数组,输出将是按正确顺序排列的元素索引。
{
for(int i=0;i<5;i++)
index[i]=i;
for(int i=0;i<4;i++) {
for(int j=1;j<5;j++) {
if (data[index[i]]>data[index[j]]) {
int tmp=index[i];
index[i]=index[j];
index[j]=tmp;
}
}
}
}
对于较大的数组,我们需要改变排序算法(冒泡法对较大的数组不起作用)--改变它。
主要的信息是:不要碰源数据。可以用引用操作,也可以用数组索引操作,效果更好。否则就会丢失信息,而这些信息在以后是非常需要的。
再次感谢您的帮助。如果您能同时告诉我如何进行以下工作,我将非常感激...
可以用什么函数或语言结构来计算一个数组元素的 索引值,这个元素在排序前的索引值。
这里,我有排序前的数组A[](上面一行)和排序后的相同数组。一个在排序前数值为5的元素在索引9
,而一个排序后数值为5的元素在索引3。
我在排序的数组中找到一个值为5的单元格,该函数将该单元格在排序的数组中的索引号 保存为W,等于索引3。
ArraySort(А,10,0,MODE_ASCEND)。
W = ArrayBsearch( A,5,WHOLE_ARRAY,0,MODE_ASCEND) 。
问题:在ArrayBsearch()之后,如何将数值为5的单元格的索引值存储在一个具有未排序 数组的变量中。
这是为了保存9的值。
谢谢你的帮助。
为此,你需要回答两个问题。如果是这样,你会怎么做。
1.在数组的不同单元中会有多个5的值。
2.数组中不会有值5。
因为ArrayBsearch 函数(用于排序数据),在第一种情况下,将给出找到的第一个单元格值为5的索引,在第二种情况下,它将给出一个接近5值的元素。我不清楚你要如何处理一个没有排序的数组。
大家好。谁知道如何在自定义指标 中设置一个负值,并使其发挥作用?即 "将指标相对于价格图表进行移动"。
例子:如果你在移动平均线指标中放一个-4的值,它就会相对于图表向左移动--并且发挥作用。
但如果你把这个值放在指标的代码中,指标就会停止工作。并显示所有TF的红色数值。
设置IndexShift。
移位 也在iMA中指定。
iMA
返回移动平均技术指标 的值。
doubleiMA(
stringsymbol,// 符号名称
inttimeframe,// 时间框架
intma_period,//周期
intma_shift,//转移平均数
intma_method,// averaging method
intapplied_price,//价格类型
intshift// shift
)。
参数
标志
[in] 符号名称,该符号的数据将用于计算指标。NULL 表示当前符号。
时限
[in] 期间。可以是枚举ENUM_TIMEFRAMES 中的一个值。0表示当前图表的周期。
阶段
[in] 计算指标的平均周期。
硕士班
[in] 指标相对于价格图表的移动。
硕士方法
[in] 平均法。可以是ENUM_MA_METHOD 枚举中的任何一个值。
应用价格
[in] 价格适用。可以是ENUM_APPLIED_PRICE 枚举的任何值。
移位
[in] 从指标缓冲区获得的数值的索引(相对于当前条形图,向后移动指定的周期数)。
返回的值
移动平均线技术指标的价值。
例子。
AlligatorJawsBuffer[i]=iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i)。
https://docs.mql4.com/ru/indicators/ima
这里有一个现成的例子,但在MQL5中:https://www.mql5.com/ru/docs/indicators/ima 。
这可以很容易地翻译成MQL4。
在指标设置 上没有任何转变。我进入代码,在代码中输入shift-4,指标就停止工作了--它显示所有TF都是红色的。我坐在这里想知道为什么。
要做到这一点,你需要回答两个问题。你会怎么做,如果
1.在数组的不同单元中会有几个5的值。
2.值5不会出现在数组中。
因为ArrayBsearch 函数(用于排序数据),在第一种情况下,将给出找到的第一个单元格值为5的索引,在第二种情况下,它将给出一个接近5值的元素。我不清楚你要如何处理一个未排序的数组。
非常感谢您的快速回复。在我的案例中,数组元素的 每个值都是唯一的,并且存在于一个实例中。也就是说,数值5和其他数值一样,并不重复。
在我的例子中,值5可能不存在于一个未排序的数组中。这意味着,未排序数组中的一些单元格可能是空的。
,但如果值5不在未排序数组中,那么我就不能指定值5作为ArrayBsearch() 函数的第二个参数。只有未排序数组中必然存在的值才能进入该函数。
谢谢你的帮助