for(i=0;i<limit;i++) /*вопрос: еще использовал и такую последовательность for(i=Bars-1; i>=0; i--), есть ли разница с какой
"стороны" заполнять массив и рассматривать значения?*/
RSI=iRSI(0,0,8,PRICE_CLOSE,i);
// задаем пустое значение буфера
RSIBuffer3[i]=0.0/* вроде так, мысль такая, что буфер должен быть пустым в цикле for(int i=0;i<limit;i++), до момента достижения
RSI заданных значений. Вопрос: так ли? и где он должен находится? *///ставим условие при котором пока RSI >= 70
{
while RSI>=70
{
i++; //вопрос: где то видел эту часть кода в конце цикла, есть ли разница?// заполняем буфер значениями RSI
RSIBuffer3[i]=iRSI(0,0,8,PRICE_CLOSE,i);
}
// определяем позицию максимального значения в массиве int RSI_max = ArrayMaximum (RSIBuffer3[i], int count=WHOLE_ARRAY, int start=0); /* тут выдает ошибку на значениях count и start отсюда вопрос: нужно ли определять размер массива через ArraySize? и какое начальное значение должно быть, не i ли?*///ищем бар со значением RSI равным максимальному значению RSI в массиве if RSI=RSIBuffer3[RSI_max];
// рисуем стрелку на этом значении
ExtMapBuffer2[i]=High[i]+5*Point;
else
ExtMapBuffer2[i]=0.0;
}
//ставим условие при котором пока RSI <= 30
{
while RSI<=30
{
i++;
// заполняем буфер значениями RSI
RSIBuffer3[i]=iRSI(0,0,8,PRICE_CLOSE,i);
{
// определяем позицию минимального значения в массиве int RSI_min = ArrayMinimum (RSIBuffer3[i], int count=WHOLE_ARRAY, int start=0);
//ищем бар со значением RSI равным максимальному значению RSI в массиве if RSI=RSIBuffer3[RSI_min];
// рисуем стрелку на этом значении
ExtMapBuffer1[i]=Low[i]-5*Point;
else
ExtMapBuffer1[i]=0.0;
}
return(0);
}
我不是在谈论外部变量。我说的是这个。
让我们想象一个情况。必须根据最后一个空缺职位做出决定。
对于测试者。
我们创建变量,在这些变量中我们将存储最后打开的位置的必要数据。
一旦有新的位置被打开,我们将立即把所需的数据添加到这些变量中。
当有下一个开仓信号出现时(例如,在20个测试分钟后),我们需要检查一些标准,根据这些标准决定要开仓的数据。这些标准,按照惯例,取决于之前开设的职位。我们从变量中读取它们(我们在之前的开局中保存了它们),并将它们作为新位置的额外数据。
当我们打开一个头寸时,我们将新开的头寸的新数据存储在变量中。
真的。
让我们想象一下同样的情况,但是......。想象一下,在最后一个仓位被打开并将其数据存储在变量中之后,已经过去了10分钟(在下一个仓位被打开之前还必须再过10分钟(我们只是在 "测试器 "中假设了这一点))。而在这个时间间隔内,专家顾问由于某种原因被重新启动了。
在重新启动EA后,存储在变量中的最后一个开仓的数据会发生什么?他们将不存在。
那么,我们需要从哪里得到它们呢?右边--搜索。这就是为什么我们需要搜索必要数据的功能。因此,当我们需要的时候,最好一次就能找到所有的东西,而不是把它们储存在变量中,这样做确实更方便、更快捷。
:))
帮我处理一下逻辑问题,我不能以某种方式将简单的逻辑转化为程序(你能不能推荐一些文献)。
挑战:计算高于70(低于30)值的最大(最小)RSI,并在条形图上方画一个向下(向上)的箭头。
在这些值上。
实施(第一部分,第二部分类似)。
1.计算每个柱子的RSI值
2.当RSI大于70时,用它的值填充RSI缓冲区。
3.找到数组中最大值的位置
4.寻找RSI值等于阵列中最大RSI值的柱子
5.在这个栏上面画一个箭头。
好吧,有这样的东西,但在写代码时,我有很多问题、错误,而且很混乱((()
下面是代码中的实现。
先生们,请告知如何使用循环 对以下算法进行编码。
如果(iLow (Symbol (),0,1) > iLow (Symbol (),0,10))// 如果第一根 蜡烛的 最小值>第十根 蜡烛的 最小值
OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point, "jfh",123 ); // 打开订单。
我必须要
如果低 1 同时 低 2同时 低 3......。...同时 低位 9号蜡烛>低位10号蜡烛(即 低位蜡烛从1到9)。
/ /开放订单。
谢谢你。
先生们,请告知如何使用循环 对以下算法进行编码。
如果(iLow (Symbol (),0,1) > iLow (Symbol (),0,10))// 如果第一根 蜡烛的 最小值>第十根 蜡烛的 最小值
OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point, "jfh",123 ); // 打开订单。
我必须要
如果低 1 同时 低 2同时 低 3......。...同时 低位 9号蜡烛>低位10号蜡烛(即 低位蜡烛从1到9)。
/ /开放订单。
谢谢你。
我们创建一个成功条件标志,将其设置为tru,在循环中传递所需数量的蜡烛,如果在任何一个蜡烛上不满足条件,则将该标志设置为false标志并退出循环。
创建一个成功条件标志,将其设置在管道中,在循环中传递所需数量的蜡烛,如果在任何一个蜡烛上不满足条件,则将该标志设置为假标志并退出循环。
非常感谢。对不起,看在上帝的份上....,我在理解你所写的内容方面还是有点慢。
如果你能写出code.....,我将非常感激,然后我就会明白一切。
bool have = true;
for(int i=0;i<10;i++){
if(Low[i]<=Low[i+1]){have=false; break;}
}
if(have){
// действия если условие соблюдено
}else{
// действия если условие не соблюдено
}bool have = true;
for(int i=0;i<10;i++){
if(Low[i]<=Low[i+1]){have=false; break;}
}
if(have){
// действия если условие соблюдено
}else{
// действия если условие не соблюдено
}大家好,如果一个挂单 没有被触发,你如何在n,点的数量上关闭它?