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

 

не нашел в библиотеке нужную функций 

 Размер тейкпрофита последней закрытой позиции.

 

Может у кого-то есть?  

 

допускаются ли такие цепочки ?

 

if ( (A==1 && B==2) && (C==2 || D==3) && E==4) 

т.е. и AND и OR в одной строке?  

 
 lottamer:

допускаются ли такие цепочки ?

 

if ( (A==1 && B==2) && (C==2 || D==3) && E==4) 

т.е. и AND и OR в одной строке?  


Ответ положительный. А что, в каких-то языках не допускаются? Что, в них приходится приводить всё к конъюнктивно- и дизъюнктивно-норамльным формам?
 
lottamer:

не нашел в библиотеке нужную функций 

 Размер тейкпрофита последней закрытой позиции.

 

Может у кого-то есть?  


Напишите сами - там 1 единственный цикл. Просто попробуйте это сделать. А если не получится, то код своего цикла покажете - поможем.
 
xant:

rigonich

можно было бы попунктно ответить вам на каждое ваше слово, да не вижу больше смысла. Если кто упирается, тому ничего уже не объяснить. Вопрос сначала стоял в том, как организовать. Потом, когда вы дали подсказку, что глобальные переменные лучше, чем запись в файл, встал вопрос о том, как правильно их сделать. Потом нервный ваш согестник дал кусок кода, не упустив возможность съязвить. Все просто - часть кода идет в блок инициализации, часть блока идет в основной блок советника.

Вот что уходит в блок инициализации:

 

Вот что уходит в основной блок 

 

Как видите, переменные я переименовал. 

Так вот, вторую часть кода я последовательно вставлял, начиная сразу после расчета переменных и все дальше к концу блока  start, заканчивая попыткой вставить перед последней фигурной скобкой. 

Судя по вашему высокопрофессиональному объяснению, именно это я и должен был сделать, потому что это  понятно любому начинающему. По вашему мнению, все должно работать. Но не работает. Вот лучшее, чего мне удалось добиться:

 

 


Читайте внимательнее. Эти два блока называются описаниями функций, и их нельзя располагать внутри описаний других функций. В инит надо расположить

 {
fGet_MineGV();
}

а в старт аналогичный вызов второй функции. сами функции надо расположить в вашем советнике отдельно, ни в инит, ни в старти нив какой пользовательской функции.  

И нервный ваш согестник  дал вам не часть кода, а две готовые функции, которые он дя вас написал. 

 
lottamer:

допускаются ли такие цепочки ?

 

if ( (A==1 && B==2) && (C==2 || D==3) && E==4) 

т.е. и AND и OR в одной строке?  


Да допускаются,компилятор рассматривает все, что во вложенных круглых скобках, как отдельное сравнение.
 
drknn:

Напишите сами - там 1 единственный цикл. Просто попробуйте это сделать. А если не получится, то код своего цикла покажете - поможем.


с циклами у меня проблема.

начало видел много раз...

дальше туман....

for (i=0; i<k; i++) {

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) 

  

максимум что я могу понять, это то что каждому i присваивается ..что-то...

 

а вот как дальше с этим месивом i делать...я не представляю...

 

rigonich

ну вот, наконец начинает что-то проясняться. Итак, короткие строки в фигурных скобках - это вызов функций, а сами функции нужно расположить где-то.

Теперь по порядку.

В инит я добавляю вызов первой функции, делаю это сразу после запуска функции инит, то есть прямо вот так будет корректно, так?

int init()
{
    fGet_MineGV();
}
//... и далее мой код, который был ранее

аналогично я добавляю в блок старт вызов второй функции. Если я сделаю это сразу после расчета переменных, это будет корректно? Например так:

     if ((A1>0)&&(A2>0)&&(A3>0)&&(A4>0)&&(A5>4.5)&&(VVV>V_NN)&&(SUA==0))
{
SUA=100;
SUA1+=1;
}
if((A1>0)&&(A2>0)&&(A3>0)&&(A4>0)&&(A5>4.5)&&(VVV<2)&&(VVV>0)) 
SUA=0;
if ((BUA==100)&&(A5<-4.5))
{
SUA=0;
SUA1=0;
}

     if ((A1<0)&&(A2<0)&&(A3<0)&&(A4<0)&&(A5<-4.5)&&(VVV>V_NN)&&(BUA==0))
{
BUA=100;
BUA1+=1;
}
if ((A1<0)&&(A2<0)&&(A3<0)&&(A4<0)&&(A5<-4.5)&&(VVV<2)&&(VVV>0)) 
BUA=0;
if ((SUA==100)&&(A5>4.5))
{
BUA=0;
BUA1=0;
}
//...сюда вставляю...
{
    fSave_MineGV();
}
//...и далее опять мой код...

 Вот эти первые 2 шага правильные?

 

И нервный ваш согестник  дал вам не часть кода, а две готовые функции, которые он дя вас написал. 
Ну и вообще-то я ему сказал за это спасибо сразу же. 
 

подскажите плиз ...как выйти из серии if если условие if=true ?

 if

   if

       if (TRUE) - но нужно начать все заного, и не переходить далее по леснтице

          if

              if

                  ....... 

 
lottamer:

не нашел в библиотеке нужную функций 

 Размер тейкпрофита последней закрытой позиции.

 

Может у кого-то есть?  


 Размер тейкпрофита в валюте депозита возвращает функция OrderProfit(), в пунктах -- цена закрытия минус цена открытия, а как найти последнюю закрытую позициюили где взять готовую функцию для этого объясняли несколько раз, по моему, именно вам. 
Причина обращения: