Примеры: Пример создания эксперта

 

Опубликована статья Пример создания эксперта:

Принципы построения пользовательских программ на языке MQL 4 рассматриваются на примере создания простейшей экспертной системы на основе стандартного индикатора MACD.

Author: MetaQuotes Software Corp.

 

Что означают эти параметры?:

extern double MACDOpenLevel=3;
extern double MACDCloseLevel=2;
extern double MATrendPeriod=26;

 
Все-таки хорошо, когда так подробно и на родном языке все объясняется!
 
Здравствуйте. Сам в программировании не силен, могу поменять переменные, не более того.Что нужно добавить, чтобы сделки на покупку совершались и при пересечении сигнальной линии гистограммой выше 0?Соответственно добавим сделок и на продажу. И добавим стоп-лосс. Заранее благодарен.
 
замечательная статья спасибо очень помогла, как гора с плеч
 

Где автор увидел

 
Проверка торгового терминала – пустой ли? 
Если да, то: В нашем эксперте мы используем только позиции, открытые по маркету и не трогаем отложенные ордеры. 
Но для безопасности лучше внесем проверку торгового терминала на наличие выставленных ордеров: 
*****  КОД ПРОВЕРКИ 
проверки: если ли деньги на счету и тд... 
Перед анализом рыночной ситуации желательно проверить состояние своего счета – есть ли свободные деньги для открытия позиции? 
// нет ни одного открытого ордера
// на всякий случай проверим, если у нас свободные деньги на счету?
// значение 1000 взято для примера, обычно можно открыть 1 лот 
if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); }

******************************************

ВО ПЕРВЫХ ЭТО ОШИБКА.

В первую очередь НАДО ПРОВЕРИТь НАЛИЧИЕ СРЕДСТВ НА СЧЕТУ!

 MarginRequired = MarketInfo(Symbol(),MODE_MARGINREQUIRED);
 // Если "Размер  средств, необходимых длЯ открытиЯ 1 лота на покупку" Больше чем "Сумма денежных средств на счете" - То Выход. 
// Если Количество баров менее 100 или торговля "Запрещена" - То Выход. 
if (MarginRequired >= AccountBalance() || Bars<100 || IsTradeAllowed()==false) { Print("Счет #",AccountNumber(), 
" плечо ", AccountLeverage()); Print("Сумма залоговых средств = ", AccountMargin());
И только потом всё остальное!
 
natlam:

Что означают эти параметры?:

extern double MACDOpenLevel=3;
extern double MACDCloseLevel=2;
extern double MATrendPeriod=26;

 

после нажатия компилировать вылезают 4 варнинга типа надо ордер селект,ордер клоуз,ордер модифи и ордер клоуз шуд би чекд!!!

 
в общем сначала я пытался печатать по инструкции, потом редактировал как описано в примере. в итоге у меня 60 ошибок и 2 варнинга. 
 
альмир мир:
в общем сначала я пытался печатать по инструкции, потом редактировал как описано в примере. в итоге у меня 60 ошибок и 2 варнинга. 
Почитайте статью Типичные ошибки в программах на MQL4 и методы их устранения, думаю, она поможет.