Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 934

 
ну если это облегчит задачу то перепостю правильно.  писал функцию для обнаружения флета и запнулся во что-то мне совсем не понятное. не срабатывает оператор if. может я где-то что-то написал не так , хочу чтобы посмотрели свежим взглядом ибо я в упор не понимаю почему. даже видео с дебагера записал где показываю что значения равны , но оно не срабатывает. вставте мне пожалуйста мозг на место))))
{
      int size = ArrayRange(arrayMinLow,0);
     
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}




ссылка на видео     https://www.youtube.com/watch?v=k9Zo0SgrMCA



зы предыдущее сообщение удалить не могу, копировал все  в html  и удалил видимо тег который нужен для редактирования сообщения

 
Leo59:
Что не так? Почему остаются не закрашенные синие участки?




Откровенно говоря, не копаюсь в чужих кодах, если не приспичило! Всё найдёте в Доке, справке и базе! Там и примеров куча!
 

Подскажите пожалуйста, как организовать пересчет валюты депозита.

У меня робот рассчитывает лот, исходя из баланса и средств на счету. Но это, понятно, если депозит в долларах.

Если же я открою рублевый депозит, то придется лот делить на курс usdrur.

Можно ли сделать так, чтобы советник смотрел валюту депозита и при необходимости сам делил на usdrur?

 
neman:

Подскажите пожалуйста, как организовать пересчет валюты депозита.

У меня робот рассчитывает лот, исходя из баланса и средств на счету. Но это, понятно, если депозит в долларах.

Если же я открою рублевый депозит, то придется лот делить на курс usdrur.

Можно ли сделать так, чтобы советник смотрел валюту депозита и при необходимости сам делил на usdrur?

Ну так AccountCurrency() и исходя из этого формировать пару и определять Bid.
 

Это я понимаю, просто не знаю как правильно записать

К примеру:


double KursS=iClose("USDRUR",H1,0);

Если  AccountCurrency()  = USD, то       K=1;

Если  AccountCurrency()  = RUR, то       K=KursS;

Как правильно это записать?


 
neman:

Это я понимаю, просто не знаю как правильно записать

К примеру:


double KursS=iClose("USDRUR",H1,0);

Если  AccountCurrency()  = USD, то       K=1;

Если  AccountCurrency()  = RUR, то       K=KursS;

Как правильно это записать?


Это ты перескочил мимо. Сначала надо определить что нужна валюта "USDRUR". А если депозит в евриках, то надо назначить курс EURUSD

Тоесть определить string K_Symbol = "USDRUR"; при условии что депозит в рублях.

Как это сделать я думаю сумеешь сам. Хотя-бы простым условием if() else if() но если брокер открывает счета ещё в каких-то валютах, то это будет уже дополнительные проверки.

 
AlexeyVik:

Это ты перескочил мимо. Сначала надо определить что нужна валюта "USDRUR". А если депозит в евриках, то надо назначить курс EURUSD

Тоесть определить string K_Symbol = "USDRUR"; при условии что депозит в рублях.

Как это сделать я думаю сумеешь сам. Хотя-бы простым условием if() else if() но если брокер открывает счета ещё в каких-то валютах, то это будет уже дополнительные проверки.

На словах мне всё понятно. Вопрос был в том, как записать...

 
neman:

На словах мне всё понятно. Вопрос был в том, как записать...


Ну так в нашем диалоге есть ВСЁ

string K_Symbol;

if(AccountCurrency() == "USD") K = 1;
else
if(AccountCurrency() == "RUR")
 {
  K_Symbol = "USDRUR";
  K = iClose(K_Symbol, H1, 0);
 }
else
if(AccountCurrency() == "EUR")
 {
  K_Symbol = "EURUSD";
  K = iClose(K_Symbol, H1, 0);
 }


Второй вариант чуток покороче...

string K_Symbol;

if(AccountCurrency() == "USD") K = 1;
else
 {
  if(AccountCurrency() == "RUR") K_Symbol = "USDRUR";
   if(AccountCurrency() == "EUR") K_Symbol = "EURUSD";
  K = iClose(K_Symbol, H1, 0);
 }


А третий вариант, на все случаи жизни и все валюты депозита, посложней и его я сочинять не буду, а готового нету, небыло нужды писать.

 

Огромное спасибо!

 
pycha:

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




ссылка на видео     https://www.youtube.com/watch?v=k9Zo0SgrMCA



зы предыдущее сообщение удалить не могу, копировал все  в html  и удалил видимо тег который нужен для редактирования сообщения

О сравнении действительных чисел что-то слышали?

Решение проблемы было давно предложено и не один раз.

Предыдущий пост удалил.