Ошибки, баги, вопросы - страница 2120

 
fxsaber:

Не выглядит, как узконаправленный. Похоже, еще не в паблике.

Это может вполне быть внутренний продукт анализа собственной рекламы, форума и чего-то еще
 
Комбинатор:
Это может вполне быть внутренний продукт анализа собственной рекламы, форума и чего-то еще

Описание как-то слабо соответствует лишь внутреннему употреблению.

 

?

void OnStart()
{
        int a = 0, b = 0; //Результат:
        Print(( ++a) + ( ++a)); //3
        Print((b+=1) + (b+=1)); //4
}

Результат: 3 4

А в чем разница?

 
A100:

?

Результат: 3 4

А в чем разница?

Разница, конечно, есть. В первом случае сначала идет ++a, затем +, затем ++a.

Второй - b+=1, затем b+=1, затем b+b.

 
Подскажите новичку, раньше в MQL4 при написании условия в советнике было просто с обозначением цены закрытия Close[0] , например свеча закрывается выше мувинга тогда открывается ордер, пишем условие МА<Close[0] и все ордер открывается. А в MQL5 (для фортса) это не прокатывает, разные индикаторы через хендлы можно сравнить, а на простой анализ свечи не реагирует. Возможно данные свечи (high,low,open,close) нужно где-то объявить?  Просто для МТ4 я сразу в условии прописывал Close[0] и система понимала, что это цена закрытия текущего бара.   
 
VadimR:
Подскажите новичку, раньше в MQL4 при написании условия в советнике было просто с обозначением цены закрытия Close[0] , например свеча закрывается выше мувинга тогда открывается ордер, пишем условие МА<Close[0] и все ордер открывается. А в MQL5 (для фортса) это не прокатывает, разные индикаторы через хендлы можно сравнить, а на простой анализ свечи не реагирует. Возможно данные свечи (high,low,open,close) нужно где-то объявить?  Просто для МТ4 я сразу в условии прописывал Close[0] и система понимала, что это цена закрытия текущего бара.   

Используйте функции CopyXXXX

 
fxsaber:

Разница, конечно, есть.

Второй - b+=1, затем b+=1, затем b+b.

Если руководствоваться этой логикой тогда

void OnStart()
{
        int c = 0;    //Результат:
        Print( c     + (c+=1)); //1
}

Сначала с+=1, затем с+с и результат 1+1= 2. А результат = 1

 
A100:

Если руководствоваться этой логикой тогда

Сначала с+=1, затем с+с и результат 1+1= 2. А результат = 1

Это неправильно работает только в скрипте, а в советнике нормально.

Я имею ввиду предыдущий пример.

 
A100:

Если руководствоваться этой логикой тогда

Сначала с+=1, затем с+с и результат 1+1= 2. А результат = 1

Вы логику не уловили

Print((c+=0) + (c+=1)); //2
Print((c+=1) + c); //2
 
fxsaber:

Вы логику не уловили

Если я логику не уловил - то почему тогда в С99\С++ результат https://www.mql5.com/ru/forum/1111/page2140#comment_6484866 одинаковый в обоих случаях?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.02.05
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
Причина обращения: