Jump to content

Build 610/600/574/79/82 - кто что думает?


Programmer

Recommended Posts

AntFX
спасибо, заработало на build 574, хотя до build 509 включительно работало без этой корректировки

 

работало бы и после, если использовать старый ex4 и не перекомпилировать. правда когда-нибудь потом все равно бы перестало работать :crazy:

Edited by AntFX

1

Link to post
Share on other sites
  • Replies 127
  • Created
  • Last Reply

Top Posters In This Topic

  • AntFX

    32

  • Ugar68

    15

  • kazakov.v

    15

  • Circle

    13

Top Posters In This Topic

Popular Posts

Судя по вашей логике тогда при сравнении long и int надо надо long преобразовывать в int, а не наоборот. ... Мой английский не имеет ни какого отношения к делу, могу прочитать сообщение компилятора

Игроманам ничто не помешает. Даже новый билд.

Posted Images

Circle

Всем привет!

Попробовал эту новую поделку от метаквот.

Довольно таки забавный получился "зверек".

Создал класс, который получает всю информацию о барах имеющихся в истории. Для загрузки использовал функцию CopyRates, которая может загрузить заданное число баров, заданного символа и таймфрейма в массив типа MqlRates.

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

то есть было так

Конструктор() и Конструктор(sting Smb,ENUM_TIMEFRAME TF, int count) где count как раз количество загружаемых баров.

Далее это класс используется в индикаторе.

Объявляется переменная и в функции OnInit() с помощью оператора new создается указатель на этот класс, где в конструкторе указана загрузка 10 баров, например.

Далее начались странности при использовании этого класса в функции OnCalculate() при обращении к массиву в котором хранятся загруженные данные выдается ошибка выход за границу массива. Начал разбираться, вывел состояние переменных с помощью функции Print() и выяснилось, что количество загруженных баров сначала было 10 (как и должно быть), затем стало 1. Возникла мысль, что вызываются два конструктора один который по умолчанию, второй который нет. Или я что то напутал в коде. Исходник не сохранился.

...

В общем надо разбираться с особенностями нововведения.

И еще что мне не понравилось, так это то что указатели надо самому уничтожать после использования. А если забыл это сделать, то будет утечка памяти. Недостатки присущие С и С++ и сюда перетащили.


Что такое форекс? Это там где деньги лежат. 

Link to post
Share on other sites
AntFX
Возникла мысль, что вызываются два конструктора один который по умолчанию, второй который нет. Или я что то напутал в коде. Исходник не сохранился.

Ты ведь знаешь, куда в таких случаях отправляют без кода


1

Link to post
Share on other sites
Circle
Ты ведь знаешь, куда в таких случаях отправляют без кода

 

Так я и не просил помощи разобраться в моем коде.


Что такое форекс? Это там где деньги лежат. 

Link to post
Share on other sites
DivergenT

Ребята профи и программеры,Поставил билд 579 новый.Так на нем не работает Trading Central plugin,кто пользуется как его оживить в новом билде,хелп надо)

Link to post
Share on other sites
Den2S

А как находясь в старом терминале загрузить обновление так чтобы все настройки старого автоматически перешли в новый?


Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©)

Link to post
Share on other sites
Ale111

Help, please!

В новом MT4 bild 604 советники должны находиться в новой директории:

 

C:\Users\HP\AppData\Roaming\MetaQuotes\Terminal\B1E85D37AB75C98A4A27B2C0014C6DCA..........

Она высвечивается, если нажать вкладку " файл -> открыть каталог данных".

В моем ноутбуке HP в директории C:\Пользователи\HP\ .-. обычные папки, а AppData\Roaming\MetaQuotes\Terminal......... не видима.

Подскажите как попасть в эту директорию, чтобы загрузить советник?

Link to post
Share on other sites
Ugar68
Help, please!

В новом MT4 bild 604 советники должны находиться в новой директории:

 

C:\Users\HP\AppData\Roaming\MetaQuotes\Terminal\B1E85D37AB75C98A4A27B2C0014C6DCA..........

Она высвечивается, если нажать вкладку " файл -> открыть каталог данных".

В моем ноутбуке HP в директории C:\Пользователи\HP\ .-. обычные папки, а AppData\Roaming\MetaQuotes\Terminal......... не видима.

Подскажите как попасть в эту директорию, чтобы загрузить советник?

А кто сказал что советники должны находиться там?

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

Program Files, Program Files x86, Windows...

Лучше терминалам создать отдельную папку, например c:\Terminals

В ней поставить все терминалы. Дальше всё просто

В старом билде советники лежали в "папка терминала\experts\", в новом "папка терминала\MQL4\experts\" .

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


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
Circle
Help, please!

В новом MT4 bild 604 советники должны находиться в новой директории:

 

C:\Users\HP\AppData\Roaming\MetaQuotes\Terminal\B1E85D37AB75C98A4A27B2C0014C6DCA..........

Она высвечивается, если нажать вкладку " файл -> открыть каталог данных".

В моем ноутбуке HP в директории C:\Пользователи\HP\ .-. обычные папки, а AppData\Roaming\MetaQuotes\Terminal......... не видима.

Подскажите как попасть в эту директорию, чтобы загрузить советник?

 

Вам необходимо включить отображение скрытых файлов и папок. Для этого надо открыть свойство папок в случае Win XP или параметры папок и поиска в случае win 7. И на закладке "Вид" поставить соответствующую галочку. Или пользуйтесь не проводником виндовс а каким нибудь сторонним, соответствующим образом настроеным, файловым менеджером, типа far или total comander.

post-94648-1404220803,3126_thumb.png

Edited by Circle

Что такое форекс? Это там где деньги лежат. 

Link to post
Share on other sites
Ale111
А кто сказал что советники должны находиться там?

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

Program Files, Program Files x86, Windows...

Лучше терминалам создать отдельную папку, например c:\Terminals

В ней поставить все терминалы. Дальше всё просто

В старом билде советники лежали в "папка терминала\experts\", в новом "папка терминала\MQL4\experts\" .

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

"А кто сказал что советники должны находиться там?"

 

Дело в том, что я копирую советник в новый билд "папка терминала\MQL4\experts\" ,а метаедитор его там не видет, т.е. он в другом месте.

И это подтверждается через вкладку "файл -открыть каталог данных", где высвечивается иная директория расположения MQL4\experts, чем та, где я установил терминал (новый -даже без данных).

В другом компе обновление прошло раньше пару дней- там все нормально, а в ноутбуке HP проблема возникла сразу же и ничего не меняется даже после удаления старых терминалов и загрузки нового(установил в c:\Terminals)

Неужели надо будет переустанавливать винду? или можно попасть в новую директорию, кто знает?

Link to post
Share on other sites
Ale111
Вам необходимо включить отображение скрытых файлов и папок. Для этого надо открыть свойство папок в случае Win XP или параметры папок и поиска в случае win 7. И на закладке "Вид" поставить соответствующую галочку. Или пользуйтесь не проводником виндовс а каким нибудь сторонним, соответствующим образом настроеным, файловым менеджером, типа far или total comander.

А "ларчик просто открывался"!

Премного благодарен!

Link to post
Share on other sites
Ugar68
А "ларчик просто открывался"!

Премного благодарен!

Короче, во всём виноват контроль учётных записей. Если эту дрянь в винде отключить советники можно класть как и положено в папку терминала\MQL4\experts\ и терминал их видит.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
kazakov.v
Короче, во всём виноват контроль учётных записей. Если эту дрянь в винде отключить советники можно класть как и положено в папку терминала\MQL4\experts\ и терминал их видит.

 

В win 8 - вигвам.

:tongue:


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
AntFX
В win 8 - вигвам.

:tongue:

 

А /portable помогает?


1

Link to post
Share on other sites
kazakov.v
А /portable помогает?

 

Ну, если ставить в доступное место (не в Program Files), то да.


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
Ugar68
В win 8 - вигвам.

:tongue:

А чё в 8 не отключается контроль учётных записей?


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
kazakov.v
А чё в 8 не отключается контроль учётных записей?

 

Да, даже на самом низком UAC требует повышенные права.


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
Ugar68
Да, даже на самом низком UAC требует повышенные права.

В принципе, я и не ожидал от 8 ничего хорошего. Особенно меня впечатляет внешний вид по умолчанию, напоминает спектрум. У мелкомягких традиция делать кривущие оси для дома через одну. Следующая должна стать лучше, просто по счёту.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
Den2S
Короче, во всём виноват контроль учётных записей. Если эту дрянь в винде отключить советники можно класть как и положено в папку терминала\MQL4\experts\ и терминал их видит.

 

 

Так что - службу эту надо отключить?

 

Win 7 x64 у меня.


Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©)

Link to post
Share on other sites
Ugar68
Так что - службу эту надо отключить?

 

Win 7 x64 у меня.

У меня на стационарном то же. Я, по деревенски, в панели управления - учётные записи там по ссылке, ползунок на минимум поставил. Можно, наверное, и службу отключить.

Только, в любом случае, надо перегрузить банку.

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
Circle

Собственно вот такая конструкция.

 

 

input uint TakeProfit =30;

 

.....

int profit;

...

profit=GetProfit();

 

if (profit >= TakeProfit) Print(profit);

Из кода видно, что при отрицательном значении переменой profit функция Print() не должна срабатывать и вывода в журнал не будет.

Но она срабатывает и в журнале пишутся отрицательные числа.

Если переменную TakeProfit объявить на как uint, а как int то код работает так как и положено в журнал отрицательные числа не выводятся.

Вот такой косяк получается если сравнивать между собой переменные типа int и uint.


Что такое форекс? Это там где деньги лежат. 

Link to post
Share on other sites
kazakov.v
Собственно вот такая конструкция.

 

 

input uint TakeProfit =30;

 

.....

int profit;

...

profit=GetProfit();

 

if (profit >= (int)TakeProfit) Print(profit);

Из кода видно, что при отрицательном значении переменой profit функция Print() не должна срабатывать и вывода в журнал не будет.

Но она срабатывает и в журнале пишутся отрицательные числа.

Если переменную TakeProfit объявить на как uint, а как int то код работает так как и положено в журнал отрицательные числа не выводятся.

Вот такой косяк получается если сравнивать между собой переменные типа int и uint.

 

rtfm

попробуй так.


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
AntFX
Вот такой косяк получается если сравнивать между собой переменные типа int и uint.

Это не косяк и уж точно не ошибка компилятора. Косяк - это сравнение знакового и беззнакового числа без учета значения знакового бита.

Edited by AntFX

1

Link to post
Share on other sites
Circle
Это не косяк и уж точно не ошибка компилятора. Косяк - это сравнение знакового и беззнакового числа без учета значения знакового бита.

 

Это для компьютера где то глубоко в его потрохах :) это разные числа. И при сравнение должно происходить неявное преобразования типов (как в С# например). И по идее нет практически ни какой разницы в числах типа int, uint, long, ulong за исключением размера занимаемой ими памяти.

Отрицательное число оно и в африке отрицательное и не может быть больше положительного.

Как же тогда происходит сравнение целого числа(int) с дробным (double). Разве для этого необходимо было преобразовывать тип int в double что бы выполнить проверку на равенство.

Я считаю, что это недоделка со стороны компилятора метаквот.

 

P.S.

Забыл еще про типы данных short и ushort

Edited by Circle

Что такое форекс? Это там где деньги лежат. 

Link to post
Share on other sites
AntFX
Отрицательное число оно и в африке отрицательное и не может быть больше положительного.

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

Edited by AntFX

1

Link to post
Share on other sites
  • Capman locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...