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

 
artmedia70:
Перебираете в цикле все ячейки массива и на каждой итерации выводите в журнал их содержимое.


Как то сложновато... Даже долговато, можно ли как нибудь сделать следующим образом. Прописать к примеру в коде print(ExtMapBuffer[0]); и посмотреть содержимое? Вот только если и можно так сделать, то как посмотреть увидеть эти значения... Через что?
 
Zolotai:

Как то сложновато... Даже долговато, можно ли как нибудь сделать следующим образом. Прописать к примеру в коде print(ExtMapBuffer[0]); и посмотреть содержимое? Вот только если и можно так сделать, то как посмотреть увидеть эти значения... Через что?


Ну Вам же не руками на бумажке делать, или процессор жалко?)). Напишите For(int i=0; i<ArraySize(ExtMapBuffer);i++) Print("ExtMapBuffer[",i,"]=",DoubleToStr(ExtMapBuffer[i],8)); Одна строчка всего.

Хотя, судя по названию массива, это из какого-то индикатора. Он и так на экране скорей всего виден.

 
Sepulca:


Ну Вам же не руками на бумажке делать, или процессор жалко?)). Напишите For(int i=0; i<ArraySize(ExtMapBuffer);i++) Print("ExtMapBuffer[",i,"]=",DoubleToStr(ExtMapBuffer[i],8));

Хотя, судя по названию массива, это из какого-то индикатора. Он и так на экране скорей всего виден.


Да верно это индикатор, так я так и делаю. Через metaeditor, прописываю скажем "Print("Я рботаю на реальном счете");". Вопрос в том, как мне заставить программу выдать это сообщение. То есть как сделать так, чтоб я увидел это сообщение. Перезапускаю терминал, добавляю индикатор на график. Но данного сообщения я не вижу, а индикатор работает. То есть как мне находить ошибки если они есть в годе. Ведь для этого не будишь перебирать весь код, на php просто. Выдает ошибку и строчку на которой она присутствует. А тут я даже не знаю как мне увидеть сообщения об ошибках и тп.
 
artmedia70:
Если вам не нужно анализировать отладочные сообщения, то удаляйте их. Не все сообщения выводятся во вкладку "журнал" тестера. Все они находятся именно в логах. Кому-то они нужны. Так что сами заботьтесь об очистке места. Или поищите поиском по сайту прогу для очистки каталога логов.


Я имел в виду чтобы при каждом новом тестировании удалялись старые логи, которые становятся балластом. Таким образом в логах всегда содержалась бы только самая актуальная информация последнего тестирования. Программы для автоматической чистки логов пока не нашел.
 
Zolotai:
Sepulca:


Ну Вам же не руками на бумажке делать, или процессор жалко?)). Напишите For(int i=0; i<ArraySize(ExtMapBuffer);i++) Print("ExtMapBuffer[",i,"]=",DoubleToStr(ExtMapBuffer[i],8));

Хотя, судя по названию массива, это из какого-то индикатора. Он и так на экране скорей всего виден.


Да верно это индикатор, так я так и делаю. Через metaeditor, прописываю скажем "Print("Я рботаю на реальном счете");". Вопрос в том, как мне заставить программу выдать это сообщение. То есть как сделать так, чтоб я увидел это сообщение. Перезапускаю терминал, добавляю индикатор на график. Но данного сообщения я не вижу, а индикатор работает. То есть как мне находить ошибки если они есть в годе. Ведь для этого не будишь перебирать весь код, на php просто. Выдает ошибку и строчку на которой она присутствует. А тут я даже не знаю как мне увидеть сообщения об ошибках и тп.
Ну если Вы не забыли откомпилировать индикатор после изменений в метаэдиторе, то ваша программа просто не выходит на принт из-за своей логики, либо Вы смотрите не в окне ТЕРМИНАЛ вкладки ЖУРНАЛ,ЭКСПЕРТЫ . Для реала/демо замените Print на Alert, тогда точно на экран выскочит.
 

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


//---------------------открытие покупки-----------------------
   if (Ticket_Fibo==0)                                // Если ордер не открыт
      {
      if (SignF_up==true)                             // Если имеется сигнал на покупку
         {
         sl=Bid-0.002;                                // Выставляем значение уровня стопа на 20 пунктов ниже цены покупки
         Ticket_Fibo=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, sl, tp1);         // Открытие ордера на покупку        
         }
//--------------------открытие продажи-----------------------------    
      if (SignF_dn==true)                             // Если имеется сигнал на продажу
         {
         sl=Ask+0.002;                                // Выставляем значение уровня стопа на 20 пунктов выше цены продажи
         Ticket_Fibo=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, sl, tp1);        // Открытие ордера на продажу
         }
      }
 
Sepulca:
Ну если Вы не забыли откомпилировать индикатор после изменений в метаэдиторе, то ваша программа просто не выходит на принт из-за своей логики, либо Вы смотрите не в окне ТЕРМИНАЛ вкладки ЖУРНАЛ,ЭКСПЕРТЫ . Для реала/демо замените Print на Alert, тогда точно на экран выскочит.


Спасибо за Alert.
 
Ulia:
У меня ОС Виндоус 7 максимальная сп1, русскоязычная
После установки терминала мт4 билд 509 если выбрать в пункте вид-языки-русский, то после перезапуска все написано непонятными символами, если поставить англ язык - все видно нормально на англ языке, только в навигаторе имя таже отображается непонятными символами так как счет был зарегистрирован изначально на русском языке. Терминал от компании Инстафорекс, но и от других ДЦ та же проблема. Видимо проблема в шрифтах моей ОС.

Подскажите какие требования к шрифтам, может можно их добавить /включить /заменить и как это сделать - переставлять другую ОС не хотелось бы.
При этом другие программы - антивирус аваст, Опера и все программы Виндоус 7 (блокнот, калькулятор и т.д.) работают нормально на русском языке.

фото терминала с англ и русским языком прилагаются


А попробуйте в терминале выбрать какой-нибудь ещё язык, скажем Dutch, и посмотрите что получится.
 
waroder:

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


Объявите Ticket_fibo на глобальном уровне, либо сделайте её static int. И лучше, если нет открытого ордера Ticket_fibo=-1; соответственно проверка if (Ticket_Fibo<0) . После закрытия ордера не забудьте вернуть Static_fibo значение -1.
 
hoz:

Есть функция для определения минимальной разрядности лота:

Мне вот интересно, зачем тут логарифм, и, причём натуральный. Зачем деление одно на другое? Что вообще автор хотел этой функций реализовать?

Это десятичный логарифм шага изменения лота.
Причина обращения: