Помогите плиз

 

Помогите пожалуйста разобраться... Что-то совсем клинит... Есть индикатор, мне нужно из советника понимать когда появилась цифра 3 и какая она (то есть на максимуме или минимуме) а так же с каким значением были предыдущие максимумы и минимумы. я пошел по вот такому пути:

double arrayDouble[2][4]={0,0,0,0,0,0,0,0};
i=0;
int k=0;
while (k!=4)
{
i++;
if (i==12 && arrayDouble[0][0]==0 && arrayDouble[1][0]==0)
return;
if (iCustom (NULL,0,"3_Level_ZZ_Semafor",5,13,14,"1,3","8,5","13,8",140,141,142,4,i)>0)
{
arrayDouble[0][k]=iCustom (NULL,0,"3_Level_ZZ_Semafor",5,13,14,"1,3","8,5","13,8",140,141,142,4,i) ;
k++;
}
if (iCustom (NULL,0,"3_Level_ZZ_Semafor",5,13,14,"1,3","8,5","13,8",140,141,142,5,i)>0)
{
arrayDouble[1][k]=iCustom (NULL,0,"3_Level_ZZ_Semafor",5,13,14,"1,3","8,5","13,8",140,141,142,5,i) ;
k++;
}
}

if (arrayDouble[1][0]!=0 && arrayDouble[0][1]!=0 && arrayDouble[1][2]!=0 && arrayDouble[0][3]!=0 && arrayDouble[0][1]>arrayDouble[1][0] && arrayDouble[1][0]>arrayDouble[0][3] && arrayDouble[0][3]>arrayDouble[1][2])
BuyOp=true;
if (arrayDouble[0][0]!=0 && arrayDouble[1][1]!=0 && arrayDouble[0][2]!=0 && arrayDouble[1][3]!=0 && arrayDouble[0][2]>arrayDouble[1][3] && arrayDouble[1][3]>arrayDouble[0][0] && arrayDouble[0][0]>arrayDouble[1][1])
SellOp=true;

Вариант для бая:



Вариант для шела:


То есть когда то что на картинках произошло то нужно BuyOp=true или SellOp=true

Но что-то не то получается...


Может я что-то не то делаю?
Файлы:
 
gull-hl:

Из какого буфера брать максимум и из какого минимум?

пляшите отсюда, какой Вам буфер нужен

   SetIndexBuffer(0,FP_BuferUp); 
   SetIndexBuffer(1,FP_BuferDn);

   SetIndexBuffer(2,NP_BuferUp); 
   SetIndexBuffer(3,NP_BuferDn); 
 
   SetIndexBuffer(4,HP_BuferUp); 
   SetIndexBuffer(5,HP_BuferDn); 
 
KONDOR:

Это то я понял... Может в остальном коде ошибка? Потому что далеко не то на выходе....
 
gull-hl:

Это то я понял... Может в остальном коде ошибка? Потому что далеко не то на выходе....

Грааль ждали?))
 
storm:

Грааль ждали?))

Грааль вещь заманчивая, но нет... Не ждал... Так как этот индикатор перерисовывается, то нужны фильтры дополнительные и такой торговли как возникает при взгляде на индикатор не получится. Идеи по этому поводу есть, но они к теме не относятся
 
И еще... Чтобы было понятно в чем проблема. На довольно продолжительной истории ни разу не срабатывают условия BuyOp=true или SellOp=true. Хотя на графике они появляются.
 
gull-hl:
не срабатывают условия BuyOp=true или SellOp=true. Хотя на графике они появляются.
попробуйте сравнивать переменные, а не значения массива


double x = arrayDouble[1][0];
if(x > 0 && ...) BuyOp=true;
 
gull-hl:
И еще... Чтобы было понятно в чем проблема. На довольно продолжительной истории ни разу не срабатывают условия BuyOp=true или SellOp=true. Хотя на графике они появляются.
В семафоре по личным наблюдениям сигналы иногда возникают не на первом баре, а задним числом. Как их вылавливать советником, и кому они такие нужны, не знаю.
 
granit77:
В семафоре по личным наблюдениям сигналы иногда возникают не на первом баре, а задним числом. Как их вылавливать советником, и кому они такие нужны, не знаю.

Мне нужны. Так как сделка будет открываться не при появлении сигнала, а после того как через несколько баров сигнал подтвердится другими фильтрами
 
gull-hl:
В принципе должно же то же самое быть?
если б было то же самое, я бы не писал
 
KONDOR:
попробуйте сравнивать переменные, а не значения массива


double x = arrayDouble[1][0];
if(x > 0 && ...) BuyOp=true;

А что, это как-то различается по смыслу?
Причина обращения: