[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 615

 
ALex2008:
那么,代替PERIOD_M1等,你可以直接放一个与周期相对应的整数?具体来说,iOpen(NULL,PERIOD_M1,1)能否代替iOpen(NULL,1,1 ?

是的,你说对了。
 
FAQ:
快到了。谢谢你!
 
Fox_RM:
快到了。谢谢你!


你说 "几乎 "是什么意思? 我们不需要,我们要的是绝对的成功 :)

 
你能推荐一个好的顾问吗?
 
kuk:
什么是好议员?

自己印制面团,把咖啡带到床上的人

并一直建议...

在全俄罗斯总统的领导下...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;

 
DOCTORS:

伙计们,请告诉我如何从一个指标中提取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中计算起来会容易得多。

更重要的是,你只能从指标缓冲区 中获取指标

 
Vinin:


为什么要把它们拿出来,因为在EA中计算它们更容易。

特别是由于你只能从指标缓冲区中获取指标


好吧,至少显示一下指标缓冲区... :( 我只是在这一刻感到困惑,如果在董事会中搜索前一天的最大/最小值。即在我的指标中很容易--如此循环,但我的猫头鹰被卡住了......+从当前条形(因为我可以在任何时候使用猫头鹰)到前一天的最后条形(计算最大值)计数的问题。也许你能告诉我如何从当前的条形图到前一天的最后一个条形图? 至少30分钟的公式,也就是说,我想看到的算法...
 
DOCTORS:

好吧,至少显示一下指标缓冲区......:(我只是在这一点上犯了难,如果建议规定搜索前一天的最大/最小值。例如,在我的指标中很容易--这样的循环,但我的猫头鹰被卡住了......+从当前条(因为猫头鹰可以在任何时候被触发)到前一天的最后一条(计算最大值)的计数问题。也许你能告诉我如何从当前的条形图到前一天的最后一个条形图? 至少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)];

//опять графика

}

....}