[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 615

 
ALex2008:
Получается везде в кодах вместо PERIOD_M1 и т.д., можно просто ставить целое число соответствующее периоду? А конкретно, вместо iOpen(NULL,PERIOD_M1,1, можно iOpen(NULL,1,1 ?

Да, Вы правильно поняли.
 
FAQ:
Почти получилось. Спасибо!
 
Fox_RM:
Почти получилось. Спасибо!


Что значит "почти" ? это нам ни к чему, требуем абсолютного получалова :)

 
Подскажите какой есть хороший советник?
 
kuk:
Подскажите какой есть хороший советник?

Который сам бабосы печатает и кофе в постель приносит...

И постоянно советует...

При Президенте Всея Руси... DDD


Самописный советник - самый хороший (если получится его таким сделать)

 

Парни, ну подскажите, как из индюка вытащить значения 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;


А зачем их вытаскивать, когда проще в советнике рассчитать.

Тем более что из индикатора можно взять только индикаторные буферы

 
Vinin:


А зачем их вытаскивать, когда проще в советнике рассчитать.

Тем более что из индикатора можно взять только индикаторные буферы


ну хотя бы индикаторные буфера покажите...:( Просто я ступил в моменте таком, если в сове прописывать поиск макс/мин предыдущего дня. Т.е. в индюке легко- так цикл, а вот сова у меня колом встает...+ проблема отсчета от текущего бара (ведь сову мы в любое время пускаем) до последнего бара предыдущего дня (чтобы рассчитать максимумы). Может подскажите тогда, как от текущего бара выйти на последний бар предыдущего дня? хотя бы формулу для 30 мин, т.е. мне главное увидеть алгоритм..
 
DOCTORS:

ну хотя бы индикаторные буфера покажите...:( Просто я ступил в моменте таком, если в сове прописывать поиск макс/мин предыдущего дня. Т.е. в индюке легко- так цикл, а вот сова у меня колом встает...+ проблема отсчета от текущего бара (ведь сову мы в любое время пускаем) до последнего бара предыдущего дня (чтобы рассчитать максимумы). Может подскажите тогда, как от текущего бара выйти на последний бар предыдущего дня? хотя бы формулу для 30 мин, т.е. мне главное увидеть алгоритм..


iHigh(NULL, PERIOD_D1,1) - вчерашний максимум

iLow(NULL, PERIOD_D1,1) - вчерашний минимум

iOpen(NULL, PERIOD_D1,1) - вчерашнее открытие

iClose(NULL, PERIOD_D1,1) - вчерашнее закрытие

 

Vinin:



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)];

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

}

....}

Причина обращения: