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

 
rigonich:


У вас  flag -- локальная переменная?

 P.S. Когда не совсем понятно, что происходит, лучше лишний раз распечатать значения переменных, до и после проверяемых функции или оператора, чтобы видеть, как именно они их меняют. Иногда значения на входе оказываются не такими, которых мы там ожидаем, и найти  в коде, гдеи почему они становятся такими , какие есть, гораздо проще, чем угадать, почему программа работает неправильно.


вот черт...точно..если int  flag,flagg;  вынести за функцию Start...то все сразу работает :))  еще одна глупая ошибка новичка :)  СПАСИБО!

 
lottamer:

вот черт...точно..если int  flag,flagg;  вынести за функцию Start...то все сразу работает :))  еще одна глупая ошибка новичка :)  СПАСИБО!


Подобные ошибки могут быть не только у новичков, например, по невнимательности можно объявить локальную переменную с именем, которое уже есть у глобальной переменной. Компилятор в таком случае ошибок не выдает, но программа работает "неправильно". Главное -- уметь подобные ошибки находить.
 

Использую такую функцию для того, что бы ограничить количество одновременно торгуемых ордеров, однако по факту выходит что ордеров на 1 больше, чем задано в переменной MaxOrders. В чем может быть причина?

   for(i=0; i<=OrdersTotal(); i++)
    {
     if(OrderSelect(i,SELECT_BY_POS)==true)
      {
       if(OrderMagicNumber()==ExpertID)
        {
         if(i>=MaxOrders)
          return;
        }
      }
    }
 
silhouette:

Использую такую функцию для того, что бы ограничить количество одновременно торгуемых ордеров, однако по факту выходит что ордеров на 1 больше, чем задано в переменной MaxOrders. В чем может быть причина?

 


Учёт ордеров идёт с нуля. Поэтому так:

 for(i=0; i<=OrdersTotal()-1; i++)
    {
     if(OrderSelect(i,SELECT_BY_POS)==true)
      {
       if(OrderMagicNumber()==ExpertID)
        {
         if(i>=MaxOrders)
          return;
        }
      }
    }
 
Roman.:

Учёт ордеров идёт с нуля. Поэтому так:



спасибо
 
Roman.:

Вот глянь, как в учебнике стохастик считают.





Спасибо!!
 

как так может быть? есть советник. он работает. Покупает, продает ...все четко стопы тейки. но убытка много, и я решаю прописать еще один трендовый фильтр. две средние - быстрая и медленная - на очень большом ТФ. на Н4.

 

советник образно такой

if (....)

   {....

 ...} 

еще раз - все работает!

и вот я вписываю фильтр (перед этим определяя МА1=iMA...) причем почти  в самом верху дерева if (вторым условием - а первое - время if ( Hour()>=7 && Hour()<20)

 

if (....)

   if MA1>MA2

   

 

{....

 ...}  }

 

ошибок нет.

Но отсекаются 95% сделок! сделок фактически нет!  А на Н4 картина говорит об обратном - сделок должно быть МНОГО ибо  MA1>MA2 выполняется неделями! 

 

кто-нибудь сможет объяснить ЧТО СЛОМАЛОСЬ?  

 

Когда много линий на графике (горизонтальных), то лейблы (цена линии) на шкале цены от этих линий "забивают" всю шкалу.

Что это за параметр этого "хвостика" с ценой линии? И возможно его как-то отключать? (я не нашел даже ручного способа, но мне нужен программный способ)

А цену я просто в название линии вынесу - этого будет достаточно.

 
Помогите узнать что значит такая ошибка " EURUSD,M30: uninit reason 5" когда советник работает часто  когда он должен открыть новую позицию пишит эту ошибку и вся система нарушается ((   если есть какой нибуть код помагающий устранить как нибудь эту ошибку напишите плиз. хоть пример
 
Frostr:
Помогите узнать что значит такая ошибка " EURUSD,M30: uninit reason 5" когда советник работает часто  когда он должен открыть новую позицию пишит эту ошибку и вся система нарушается ((   если есть какой нибуть код помагающий устранить как нибудь эту ошибку напишите плиз. хоть пример


Коды причины деинициализации, возвращаемые функцией UninitializeReason(). Mогут иметь любые из следующих значений:

КонстантаЗначениеОписание
 0Скрипт самостоятельно завершил свою работу
REASON_REMOVE1Программа удалена с графика
REASON_RECOMPILE2Программа перекомпилирована
REASON_CHARTCHANGE3Символ или период графика был изменен
REASON_CHARTCLOSE4График закрыт
REASON_PARAMETERS5Входные параметры были изменены пользователем
REASON_ACCOUNT6Активирован другой счет
Причина обращения: