if (t==60){b=24; //значение b определяет количество баров для дня на таймфрейме. l=24*Period()*60; //l используется для доп. значений, тут не актуально }
if (t==30){b=48; l=48*Period()*60; }
....
....
if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]> Open[iHighest(NULL,0,MODE_OPEN,b,i)]) {
ExtMapBuffer1[i] = Close[iHighest(NULL,0,MODE_CLOSE,b,i)]; day_max=Close[iHighest(NULL,0,MODE_CLOSE,b,i)];//сделал для того, что значение ExtMapBuffer1[i] при выводе на экран почему-то 0, тогда как day_max показыает правильно... ..... //тут графика
}
else if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]<= Open[iHighest(NULL,0,MODE_OPEN,b,i)]) {ExtMapBuffer1[i] = Open[iHighest(NULL,0,MODE_OPEN,b,i)]; day_max= Open[iHighest(NULL,0,MODE_OPEN,b,i)];
那么,代替PERIOD_M1等,你可以直接放一个与周期相对应的整数?具体来说,iOpen(NULL,PERIOD_M1,1)能否代替iOpen(NULL,1,1 ?
是的,你说对了。
快到了。谢谢你!
你说 "几乎 "是什么意思? 我们不需要,我们要的是绝对的成功 :)
什么是好议员?
自己印制面团,把咖啡带到床上的人
并一直建议...
在全俄罗斯总统的领导下...DDD
自编的EA是最好的(如果你能这样做)。
伙计们,请告诉我如何从一个指标中提取day_max、day_min 值。很明显,iCustom,但如何?也就是说,猫头鹰中插入了这样一个指标。
这里是头条...
#property copyright "DOC"
#property link "none"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;
伙计们,请告诉我如何从一个指标中提取day_max、day_min 值。很明显,iCustom,但如何?也就是说,猫头鹰中插入了这样一个指标。
这里是头条...
#property copyright "DOC"
#property link "none"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;
为什么要把它们拉出来,因为在EA中计算起来会容易得多。
更重要的是,你只能从指标缓冲区 中获取指标。
为什么要把它们拿出来,因为在EA中计算它们更容易。
特别是由于你只能从指标缓冲区中获取指标
好吧,至少显示一下指标缓冲区... :( 我只是在这一刻感到困惑,如果在董事会中搜索前一天的最大/最小值。即在我的指标中很容易--如此循环,但我的猫头鹰被卡住了......+从当前条形(因为我可以在任何时候使用猫头鹰)到前一天的最后条形(计算最大值)计数的问题。也许你能告诉我如何从当前的条形图到前一天的最后一个条形图? 至少30分钟的公式,也就是说,我想看到的算法...
好吧,至少显示一下指标缓冲区......:(我只是在这一点上犯了难,如果建议规定搜索前一天的最大/最小值。例如,在我的指标中很容易--这样的循环,但我的猫头鹰被卡住了......+从当前条(因为猫头鹰可以在任何时候被触发)到前一天的最后一条(计算最大值)的计数问题。也许你能告诉我如何从当前的条形图到前一天的最后一个条形图? 至少30分钟的公式,也就是说,最重要的是要看到算法...
iHigh(NULL,PERIOD_D1,1) - 昨天的高点
iLow(NULL, PERIOD_D1,1) - 昨天的最低值
iOpen(NULL, PERIOD_D1,1) - 昨天的开盘价
iClose(NULL, PERIOD_D1,1) - 昨天的收盘价
维宁。
iHigh(NULL, PERIOD_D1,1) - 昨天的高点
iLow(NULL, PERIOD_D1,1) - 昨天的低点
iOpen(NULL, PERIOD_D1,1) - 昨天的开盘价
iClose(NULL, PERIOD_D1,1) - 昨天的收盘价
我为我的要求缺乏正确性而道歉......。底线是不同时间段的高点计算是不同的,这是可以理解的,因此我做了以下工作(对不同时间段的交易策略是必要的)。
double ExtMapBuffer1[];
double day_max;
......
int start()
{
int counted_bars = IndicatorCounted();
int limit;
//---- последний посчитанный бар будет пересчитан
if((counted_bars > 0))
counted_bars--;
limit = Bars - counted_bars;
//---- основной цикл
for(int i = 1; i < limit; i++)
{int k,z,t,b,l,n;
k=TimeHour(Time[i]);
z=TimeMinute(Time[i]);
t=Period();
if (t==60){b=24; //значение b определяет количество баров для дня на таймфрейме.
l=24*Period()*60; //l используется для доп. значений, тут не актуально
}
if (t==30){b=48;
l=48*Period()*60;
}
....
....
if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]> Open[iHighest(NULL,0,MODE_OPEN,b,i)])
{
ExtMapBuffer1[i] = Close[iHighest(NULL,0,MODE_CLOSE,b,i)];
day_max=Close[iHighest(NULL,0,MODE_CLOSE,b,i)];//сделал для того, что значение ExtMapBuffer1[i] при выводе на экран почему-то 0, тогда как day_max показыает правильно...
..... //тут графика
}
else if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]<= Open[iHighest(NULL,0,MODE_OPEN,b,i)])
{ExtMapBuffer1[i] = Open[iHighest(NULL,0,MODE_OPEN,b,i)];
day_max= Open[iHighest(NULL,0,MODE_OPEN,b,i)];
//опять графика
}
....}