Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересует активность в Сигналах? Заходи и отслеживай!
Евгений
42
Евгений 2011.09.16 11:31  

Еще вопрос, не совсем в тему.

ДЛЛ жрет много процессорного времени.

Хочу запускать ее хотя бы 1 раз в 5 сек

Как определить время тика?

Или последнего бара

Или придется считать тики

Debugger
2501
Debugger 2011.09.16 12:27  
Arxan:

Еще вопрос, не совсем в тему.

ДЛЛ жрет много процессорного времени.

Хочу запускать ее хотя бы 1 раз в 5 сек

Как определить время тика?

Или последнего бара

Или придется считать тики



Вот это неправда.

Все тяделые вычисления делаю только в dll иначе терминал просто раскорячивает и все. Причем наглухо.

Так что dll единственный выход.

Serge
456
Serge 2011.09.16 12:49  
TheXpert:

Я же написал в первом же посте...

В MQL:

В длл (С++)

Ну народ пошел, ваще вникать не хочет...

Надо разжевать и в рот положить.

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

А как в MQL5 передавать/получать структуры в длл (С++)? Если можно пример.
Комбинатор
15661
Комбинатор 2011.09.16 12:59  
Graff:
А как в MQL5 передавать/получать структуры в длл (С++)? Если можно пример.
Опять же массивом, с учетом запаковки. У Жунко спросите.
Евгений
42
Евгений 2011.09.16 14:08  
Debugger:


Вот это неправда.

Все тяделые вычисления делаю только в dll иначе терминал просто раскорячивает и все. Причем наглухо.

Так что dll единственный выход.


У меня случай (уже был) :

int start(){

WriteFxPew = ProcMT4_Sd(OperBar, OperRead, OperWrite); // лазит в ДЛЛ за командами от моей проги

...

}

Если все остальное молчит, то судя по всему это соответствует конструкции

while (true) {

WriteFxPew = ProcMT4_Sd(OperBar, OperRead, OperWrite); // лазит в ДЛЛ за командами от моей проги

...

}

и эта штука на пустом месте раскочегаривала проц до 60% ЦП

Вылечил просто =

Sleep(100);

Можно даже

Sleep(10);

Alexey Navoykov
3961
Alexey Navoykov 2011.09.16 16:41  
Arxan:

while (true) {

WriteFxPew = ProcMT4_Sd(OperBar, OperRead, OperWrite); // лазит в ДЛЛ за командами от моей проги

...

}

и эта штука на пустом месте раскочегаривала проц до 60% ЦП

Бесконечный цикл без остановки - это разве "пустое место"? Плюс ещё в DLL какие-то операции выполняются. Попробуйте реализовать то же самое на чистом MQL4, думаю нагрузка будет не меньше.
Евгений
42
Евгений 2011.09.16 17:16  
Meat:
Бесконечный цикл без остановки - это разве "пустое место"? Плюс ещё в DLL какие-то операции выполняются. Попробуйте реализовать то же самое на чистом MQL4, думаю нагрузка будет не меньше.

это разве "пустое место"? = для меня не нужное.

Я пошел на горшек, спать, или просто погулять - комп должен просто писать не причесанные реальные котировки в базу а не делать вид что грузит кирпичи.

Тем более что перегрузка процессора на бесполезном месте просто мешает в нужном = интернет, фильм и т.д.

Не один МТ4 на свете

Слип эту проблему решил

Если ДЛЛ выполняет полезную для меня работу - это другое дело

Сергей Мурзинов
159
Сергей Мурзинов 2011.09.16 19:13  
Arxan:

МТ4:

#import "PdllMT4.dll"
int ProcMT4_Sd(int Oper, int& Oper1, int& Oper2);
#import



А если попробовать так:

#import "PdllMT4.dll"
int ProcMT4_Sd(int Oper, int& Oper1[1], int& Oper2[1]); 
#import
/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий