MetaTrader 4 Client Terminal build 610 - страница 31

 
Rosh:
Подключитесь к серверу demo.metaquotes.net:443. Читайте анонсы :

можно я эту картинку себе на сайт поставлю? а то спрашивают постоянно.
 
кто нбудь понял появление ошибки invalid license
 
Vladon:
кто нбудь понял появление ошибки invalid license

При каких условиях у вас появилась данная ошибка ?
 
alexloz:

При каких условиях у вас появилась данная ошибка ?


у меня нет, у другого "чувака"

редактировал ему индикатор, он у него никак не запускался. брокер Адмирал Демо

индюк прикрепил на всякий случай.

зашел к нему по тиамвиефер - действительно не работает, перекомпилировал - не работает

зашел на сервер метаквотс Демо - заработал и даже стал желтым а не серым.

Это все что я могу сказать.

Билд 610 - проверил, терминал качали прямиком с брокера.

Файлы:
1.mq4  5 kb
 

Уважаемые разработчики!

Не дождавшись от Вас ответа, повторяю свой вопрос:

Почему терминал сам определяет, как обозвать открываемый файл и создаЁт подпапку, о которой его не просили?

Скрипт запускается из поддиректории Skripts\\Stochastic. МТ установлен не на системный диск. UAC отключен. Вот блок кода скрипта:

file_name="Cross-Revers.Support."+hist_name+"."+valuta+"."+string(TF)+".csv";
myFile="Test\\"+file_name;//файл результатов тестирования

handle=FileOpen(myFile, FILE_CSV|FILE_READ|FILE_WRITE, ';');

По этому коду файл с именем file_name должен открыться в поддиректории File\\Test

На деле же в папке Test создается папка Cross-Revers.Support.Stochastic и в нее записывается файл с именем hist_name+"."+valuta+"."+string(TF)+".csv". Создание такой папки кодом не предусмотрено

Вы также проигнорировали еще один баг - при формировании зависимостей (включение ЕХ4 библиотек) не отслеживаются изменения в имени экспортируемой библиотеки.

Надеюсь на конструктивный ответ.

 
polycomp:

Почему терминал сам определяет, как обозвать открываемый файл и создаЁт подпапку, о которой его не просили?

Скрипт запускается из поддиректории Skripts\\Stochastic. МТ установлен не на системный диск. UAC отключен. Вот блок кода скрипта:

file_name="Cross-Revers.Support."+hist_name+"."+valuta+"."+string(TF)+".csv";
myFile="Test\\"+file_name;//файл результатов тестирования

handle=FileOpen(myFile, FILE_CSV|FILE_READ|FILE_WRITE, ';');

По этому коду файл с именем file_name должен открыться в поддиректории File\\Test

На деле же в папке Test создается папка Cross-Revers.Support.Stochastic и в нее записывается файл с именем hist_name+"."+valuta+"."+string(TF)+".csv". Создание такой папки кодом не предусмотрено


1. Для вставки кода используйте кнопочку SRC

2. Вы ничего не сказади про содержимое строки hist_name.

3. Распечатайте итоговую строчку myFile и покажите здесь

 
polycomp:
Почему терминал сам определяет, как обозвать открываемый файл и создаЁт подпапку, о которой его не просили?
У меня была такая же проблема в старой версии МТ4 и как-то я ее решил, к сожалению деталей уже не помню.
Вот вам пример который у меня работает во всех версиях МТ4:

string FileName = "XXX\YYY___"+ZZZ+".csv";
Видно что XXX - папка, а YYY___ префикс в имени файла. ZZZ - некая стринговая переменная.

Для проверки начните конкретно с этого примера, а потом шаг за шагом добавляйте/изменяйте пока не воспроизведете ошибку, тогда поймете что не так.
 
polycomp:

Уважаемые разработчики!

Не дождавшись от Вас ответа, повторяю свой вопрос:

Почему терминал сам определяет, как обозвать открываемый файл и создаЁт подпапку, о которой его не просили?

Скрипт запускается из поддиректории Skripts\\Stochastic. МТ установлен не на системный диск. UAC отключен. Вот блок кода скрипта:

file_name="Cross-Revers.Support."+hist_name+"."+valuta+"."+string(TF)+".csv";
myFile="Test\\"+file_name;//файл результатов тестирования

handle=FileOpen(myFile, FILE_CSV|FILE_READ|FILE_WRITE, ';');

По этому коду файл с именем file_name должен открыться в поддиректории File\\Test

На деле же в папке Test создается папка Cross-Revers.Support.Stochastic и в нее записывается файл с именем hist_name+"."+valuta+"."+string(TF)+".csv". Создание такой папки кодом не предусмотрено

Вы также проигнорировали еще один баг - при формировании зависимостей (включение ЕХ4 библиотек) не отслеживаются изменения в имени экспортируемой библиотеки.

Надеюсь на конструктивный ответ.


наверно в имени где-то стоит "\"
 
MetaDriver:
Для работы с произвольным чартом. В четвёрке теперь (так же как в пятёрке) можно из одной программы работать сразу с несколькими чартами (хоть со всеми сразу).


Для обработки всех графиков в цикле (включая текущий). Например следующая функция:

должна отключать таймер и затем удалять все ранее созданные объекты на всех графиках.

// Правда именно сейчас (билд 610) удаляет только на основном, на других почему-то не удаляет. Видимо ещё не доделали. Но на пятёрке всё именно так и работает.


Большое спасибо, теперь понятно.


По экспорту функций не объясните, вопрос задан две страницы назад

int Function() export
 
Vladon:

зашел к нему по тиамвиефер - действительно не работает, перекомпилировал - не работает

зашел на сервер метаквотс Демо - заработал и даже стал желтым а не серым.

Это все что я могу сказать.

Билд 610 - проверил, терминал качали прямиком с брокера.


Попробуйте для начала вставить две строчки в код

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,upma);
   SetIndexBuffer(1,dnma);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   
   SetIndexBuffer(2,SqLup);
   SetIndexBuffer(3,SqLdn);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexStyle(3,DRAW_LINE);
   
   SetIndexLabel(0,"SqMA1("+Ma1Period+")["+TimeFrame+"]");
   SetIndexLabel(1,"SqMA2("+Ma2Period+")["+TimeFrame+"]");
   SetIndexLabel(2,"SqMA Env("+MAsThreSHoldPips+")("+Ma1Period+","+Ma2Period+")["+TimeFrame+"]");
   SetIndexLabel(3,"SqMA Env("+MAsThreSHoldPips+")("+Ma1Period+","+Ma2Period+")["+TimeFrame+"]");

//----
   IndicatorShortName("SquizeMA ("+Ma1Period+","+Ma2Period+")["+TimeFrame+"]");
   if (TimeFrame < Period()) TimeFrame = Period();
   IndicatorFileName = WindowExpertName();
   Print(TerminalInfoInteger(TERMINAL_BUILD));
   Print((__MQLBUILD__));

   return(0);