#property indicator_separate_window#property indicator_buffers1#property indicator_label1 "longBars"#property indicator_color1 clrBlue#property indicator_width1 2//---углубление в историю на...externint barsToProcess = 100;
//---indicators Buffersdouble longBarsBuffer[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
SetIndexBuffer(0,longBarsBuffer);
SetIndexStyle(0,DRAW_HISTOGRAM);
IndicatorDigits(Digits);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int counted_bars=IndicatorCounted(),
limit;
if (counted_bars<0) return(-1);
if (counted_bars>0)
counted_bars--;
limit=Bars-counted_bars;
if(limit>barsToProcess)
limit=barsToProcess;
double longValue;
for(int i=0;i<limit;i++)
{
longValue = Close[i+1]-Open[i+3];
//--- само условиеif(longValue>0)
//---собственно что необходимо получить: если на i-том баре выполнилось условие(i>0), то находим High от этого бара и //---до конца этого дня,я имею ввиду максимум всего этого промежутка. Примерно: Если условие выполнилось
//---на i=12h,то High от 12 до 00:00,//--- если i=01:00, то High от 01:00 до 00:00, если i=22:00, то High от 22:00 до 00:00. Как то так. Возможно ли это реализовать? //---Может я не правильно сделал цикл? Как его правильно организовать?
longBarsBuffer[i]=High[от i - и до конца дня] - то что необходимо получить.
else
longBarsBuffer[i]=0.0;
算法很清楚,想出来了。做了这个例子,一切都很顺利。
非常感谢您!
而且,对于第一个问题(关于最大值),你能否更详细地解释如何实现它?如果可能的话,请给我一个小算法。你很擅长这个 :)
我很高兴有人能理解我,而不是我自己。
这正是我们需要的。当天的高点,不管离一天的结束还有多少时间。
如果我对这个问题的理解正确的话。
我很高兴除了我自己之外还有人理解我。
这只是正确的做法。无论一天中还剩下多少时间,都是高电流的一天。
如果我对这个问题的理解正确的话。
根据我的理解,略有不同。事情就是这样的。
嗯,这正是我之前被建议的。
但是iHighest(NULL, MODE_HIGH, bar+1, 1)返回在这个区间内比其他所有的高点的条形高点的索引,而你问的是当前日高点。
嗯,这正是我之前被建议的。
但是iHighest(NULL, MODE_HIGH, bar+1, 1)返回比这个区间内所有其他区间都高的条形指数 High,而你问的是当前日High。
我同意,"iHighest(NULL, MODE_HIGH, bar+1, 1)返回这个区间内比 其他所有的高点的条形 高点索引"。我是说高 剩余日期 的一天。
我将尝试更清楚地解释...
如果你不能骂我太多:) ......请解释一下如何做?
我同意,"iHighest(NULL, MODE_HIGH, bar+1, 1)返回这个区间内比 其他所有的高点的条形 高点索引"。我是说高 剩余部分 的一天。
我试着说得更具体些......
如果你可以的话,请不要骂我太多:) ......你能解释一下如何做吗?
起初我以为这是一个简单的错字,但现在毫无疑问,你想展望未来?那么只有《回到未来》中的博士可以帮助你。
恐怕医生帮不了我......他做错了生意:)
是的,这个问题,"高目前的其余部分。 这有点让人困惑。它刚刚来到我身边,你真的会认为这是在这一天试图展望未来。这有点不对劲。我想计算一下_高目前的其余部分。 从价格阵列的开始到倒数第二天(昨天),因为所有的数据都在那里。而最后一天(今天)的工作一旦完成,就应该重新计算。否则它就会像你说的那样--试图展望未来!"。 如果我从价格数组的开头开始,一直到结尾(昨天的日子),High会在随后的每一个条形检查中发生变化。 这就是为什么我问如何将High从当天的其余部分减去。我忘了告诉你,当前的日子没有被考虑在内,因为它还没有完成。对不起,我一下子没听懂 :) 。你能告诉我如何组织这样的计算吗?这有可能吗?
恐怕医生帮不了我......他做错了生意:)
是的,这个问题,"高目前的其余部分。 的。",这有点让人困惑。这只是我刚刚想到的,人们真的会认为这是在这一天对未来的一种尝试。这是个有点错误的说法。我想计算一下_高剩余部分的当前的一个 从价格阵列的开始到倒数第二天(昨天),因为所有的数据都在那里。而最后一天(今天)的工作一旦完成,就应该重新计算。否则它就会像你说的那样--试图展望未来!"。 如果我从价格数组的开头开始,一直到结尾(昨天的日子),High会在随后的每一个条形检查中发生变化。 这就是为什么我问如何将High从当天的其余部分减去。我忘了告诉你,当前的日子没有被考虑在内,因为它还没有完成。对不起,我一下子没听懂 :) 。你能告诉我如何组织这样的计算吗?这有可能吗?
让我试着理解你的问题。你需要在条形图中找到高点,1)前一天和今天的日期,还是2)只有今天的日期?也许iHighest()会有帮助?
亲爱的朋友们,我将尽力解释我想要实现的目标............否则我就会搞清楚......否则我就会把大家都搞糊涂!"。
看,有一个价格数组,比方说从_1.02.2015.到15.12.2015(今天的日子),取PERIOD_H1。
1_我采取一个简单的公式_val=Close[i]-Open[i]。
2_设置一个简单的条件,如果(val>0)--检查应该从_1.02.2015开始。
-如果条件得到满足,例如,在某个柱状体上,那么从这个柱状体到这一天结束,找到_高。比如说。Close[4]-Open[4]>0,即假设索引[i=4]的柱子属于_1.02。2015年10:00,所以从这 一天的10:00 --直到 00:00--这一天的结束,我们发现_高。相应地,如果这个条件在其他日子里起了作用,我们也会按照同样的原则行事。就这样,它经历了整个价格阵列。计算应该从_2015年2月1日到2015年12月14日(倒数第二天)开始,为什么要计算到倒数第二天,--因为最后一天还没有完成,全天的高点还不知道。最后一天一结束,我们也要检查它的状况。由于从_1.02.2015.到14.12.2015(倒数第二天) 的数据是已知的,它不会看起来像--试图看向未来 :)
- 如果条件没有得到满足--什么也不做,空值被写入数组中。
这实际上是整个 "想法"。如何做到这一点,如何通过一个循环来定义它--我想不出来!
恐怕医生帮不了我......他做错了生意:)
是的,这个问题,"高目前的其余部分。 的。",这有点让人困惑。这只是我刚刚想到的,人们真的会认为这是在这一天对未来的一种尝试。这是个有点错误的说法。我想计算一下_高? 其余的当前的一个? 从价格阵列的开始到倒数第二天(昨天),因为所有的数据都在那里。而最后一天(今天)的工作一旦完成,就应该重新计算。否则它就会像你说的那样--试图展望未来!"。 如果我从价格数组的开头开始,一直到结尾(昨天的日子),High会在随后的每一个条形检查中发生变化。 这就是为什么我问如何将High从当天的其余部分减去。我忘了告诉你,当前的日子没有被考虑在内,因为它还没有完成。对不起,我没有马上明白 :) 。你能建议如何组织这样的计算吗?这有可能吗?
如果是这样,我们就回到iHighest(),但是要计算多少条,从哪条开始,必须使用iBarShift()计算。
你能告诉我如何在一个循环中做到这一点吗?我搞不清楚如何正确地做这件事。