Бета-тестирование MetaTrader 5 началось! - страница 105
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да нет, в процедурном виде я давно уже написал свой советник. Ну а сейчас я взял пример, поставляемый вместе с терминалом МАСД, который написан с использованием классов и метотодов, также поставляемых разработчиками в файлах: indicator.mqh, indicators.mqh....Теперь перевожу свой советник, используя поставляемые классы. Воообщем-то почти всё заработало, но вот только индикатор АО получился не как таймсерия. Вроде по примеру Macd Samle.mq5 нигде нет явного использования ArraySetAsSeries, но мне пришлось влезть в стандртные классы разработчиков. Я и подумал: может чего-то где-то не уразумел: цепочка классов-то длинная?
Классы я развожу по смыслу и по отдельным файлам, то есть логер отдельный включаемый файл, класс торговли в другой, математику в третий, запрос данных с индюков в четвертый, список интересующих исключений и списки в свои включаемые файлы. Математику если серьезно крутите цифрами в массивах вообще целесообразно в dll на том же delphi засунуть теоретически должно быстрее считаться, но последнее пока не проверял.
Несмотря на кажущееся нагромождение в перспективе проще концы искать. :-)
А что до MACD то у меня он не запускается выдает 11 ошибок и 2 варнинга. :-(
'ENUM_TRADING_OPERATION' - static or extern declaration without type AccountInfo.mqh 41 58
'trade_operation' - comma expected AccountInfo.mqh 41 81
'ENUM_TRADING_OPERATION' - static or extern declaration without type AccountInfo.mqh 322 58
'trade_operation' - comma expected AccountInfo.mqh 322 81
'expert' - struct member is undefined Trade.mqh 166 14
conversion possible loss of data Trade.mqh 166 26
'expert' - struct member is undefined Trade.mqh 262 14
conversion possible loss of data Trade.mqh 262 26
'expert' - struct member is undefined Trade.mqh 311 14
'expert' - struct member is undefined Trade.mqh 332 39
'trade_operation' - undeclared identifier AccountInfo.mqh 324 41
'AccountFreeMarginCheck' - function is not defined AccountInfo.mqh 324 11
'OP_BUY' - undeclared identifier MACD Sample.mq5 403 37
11 error(s), 2 warning(s) 1 1
Если есть у кого рабочий буду благодарен.
А что до MACD то у меня он не запускается выдает 11 ошибок и 2 варнинга. :-(
'ENUM_TRADING_OPERATION' - static or extern declaration without type AccountInfo.mqh 41 58
'trade_operation' - comma expected AccountInfo.mqh 41 81
'ENUM_TRADING_OPERATION' - static or extern declaration without type AccountInfo.mqh 322 58
'trade_operation' - comma expected AccountInfo.mqh 322 81
'expert' - struct member is undefined Trade.mqh 166 14
conversion possible loss of data Trade.mqh 166 26
'expert' - struct member is undefined Trade.mqh 262 14
conversion possible loss of data Trade.mqh 262 26
'expert' - struct member is undefined Trade.mqh 311 14
'expert' - struct member is undefined Trade.mqh 332 39
'trade_operation' - undeclared identifier AccountInfo.mqh 324 41
'AccountFreeMarginCheck' - function is not defined AccountInfo.mqh 324 11
'OP_BUY' - undeclared identifier MACD Sample.mq5 403 37
11 error(s), 2 warning(s) 1 1
Если есть у кого рабочий буду благодарен
Да там не сложно, если поковыряться.
double CAccountInfo::FreeMarginCheck(const string symbol,ENUM_TRADE_REQUEST_ACTIONS trade_operation,double volume)
{
//return(AccountFreeMarginCheck(symbol,trade_operation,volume));
return(0.0);
}
//
Закомментировать пока(не знаю чем заменить) файл Accountifo.mqh
далее везде expert заменить на magic - файл Trade.mqh
а OP_Buy на POSITION_TYPE_BUY в Macd Sample.mq5
то есть 3 ошибки всего!!!
А что до MACD то у меня он не запускается выдает 11 ошибок и 2 варнинга. :-(
'ENUM_TRADING_OPERATION' - static or extern declaration without type AccountInfo.mqh 41 58
'trade_operation' - comma expected AccountInfo.mqh 41 81
'ENUM_TRADING_OPERATION' - static or extern declaration without type AccountInfo.mqh 322 58
'trade_operation' - comma expected AccountInfo.mqh 322 81
'expert' - struct member is undefined Trade.mqh 166 14
conversion possible loss of data Trade.mqh 166 26
'expert' - struct member is undefined Trade.mqh 262 14
conversion possible loss of data Trade.mqh 262 26
'expert' - struct member is undefined Trade.mqh 311 14
'expert' - struct member is undefined Trade.mqh 332 39
'trade_operation' - undeclared identifier AccountInfo.mqh 324 41
'AccountFreeMarginCheck' - function is not defined AccountInfo.mqh 324 11
'OP_BUY' - undeclared identifier MACD Sample.mq5 403 37
11 error(s), 2 warning(s) 1 1
Да там не сложно, если поковыряться.
double CAccountInfo::FreeMarginCheck(const string symbol,ENUM_TRADE_REQUEST_ACTIONS trade_operation,double volume)
{
//return(AccountFreeMarginCheck(symbol,trade_operation,volume));
return(0.0);
}
//
Закомментировать пока(не знаю чем заменить) файл Accountifo.mqh
далее везде expert заменить на magic - файл Trade.mqh
а OP_Buy на POSITION_TYPE_BUY в Macd Sample.mq5
то есть 3 ошибки всего!!!
И правда заработало.
Спасибо!
Правильно ли я все понял?
В индикаторах нет возможности обрабатывать события.
То есть если мне нужен интерактивный график, то мне нужно:
создать кнопки и производить опрос свойств кнопок внутри цикла.
Но при этом сильно возрастает использование процессора.
Функция слип в индикаторах не работает, поэтому, нужно либо смириться с зависанием компа, либо…
Можно использовать ДЛЛ с функцией слип, которая позволит ее использовать внутри индикаторов, и обрабатывать события от кнопок не перегружая компьютер.
Если все так, как я описал, то зачем нужно запрещать функцию слип и функцию обработки собитий в индикаторах?
Может в языке мкл5 есть какие то другие способы реализации интерактивности графиков?
Не ребята, так дело не пойдет. После последнего обновления терминал вылетает и пишет следующее:
Time : 2009.11.10 10:13
Program : Client Terminal
Version : 500.219 (09 Nov 2009)
Revision : 14555
OS : Windows XP Professional Service Pack 3, v.3311 (Build 2600)
Processors : 1 x X86 (level 15)
Memory : 1833456/955896 kb
Virtual : 2097024/1992732 kb
Случайно набрел
Думаю не единичный случай. :-)