Бета-тестирование MetaTrader 5 началось! - страница 105

 
Erm955 >>:

Да нет, в процедурном виде я давно уже написал свой советник. Ну а сейчас я взял пример, поставляемый вместе с терминалом МАСД, который написан с использованием классов и метотодов, также поставляемых разработчиками в файлах: 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

Если есть у кого рабочий буду благодарен.

 
Ну вот решил попробовать да и поучиться как-то, раньше-то процедурно программировал. Советник с 4-ки перевёл уже, и теперь Тестер нужен.
 

А что до 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 ошибки всего!!!

 
Erm955 >>:

А что до 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 ошибки всего!!!

И правда заработало.

Спасибо!

Файлы:
 
правда проверка на FreeMargin фиктивной получилась...
 
Да ладно, деньги-то вы можете и с помощью других функций проверить! Я и вникать не стал--пока не интересно. Я полагаю, сейчас главное убедиться и прочувствовать, что основные функции работают правильно и понятно самому. Ну а далее Тестер, Тееестер, Тее.....еестер!!!
 

Правильно ли я все понял?

В индикаторах нет возможности обрабатывать события.

То есть если мне нужен интерактивный график, то мне нужно:

создать кнопки и производить опрос свойств кнопок внутри цикла.

Но при этом сильно возрастает использование процессора.

Функция слип в индикаторах не работает, поэтому, нужно либо смириться с зависанием компа, либо…

Можно использовать ДЛЛ с функцией слип, которая позволит ее использовать внутри индикаторов, и обрабатывать события от кнопок не перегружая компьютер.

Если все так, как я описал, то зачем нужно запрещать функцию слип и функцию обработки собитий в индикаторах?

Может в языке мкл5 есть какие то другие способы реализации интерактивности графиков?

 
Всем здраствуйте .Подскажите почему ни одной котировки в терминал не загрузилось,терминал открываешь а там 4 пустых окна
 

Не ребята, так дело не пойдет. После последнего обновления терминал вылетает и пишет следующее:

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

 

Случайно набрел



Думаю не единичный случай. :-)