Бета версия онлайновой книги по программированию на MQL4 - автор Сергей Ковалев (SK.) - страница 8

 
Climber:
Что тут не так? Чего про ошибки кричит?

Компилятор выдал одну ошибку: Start function not found and cannot be run, что означает: функция start() не найдена и не может быть исполнена.

Это вполне естественно. Если в программе нет ни одной специальной функции, то она не может быть запущена в клиентском терминале МТ.

 
Вот с одной ошибкой Function "GetExtremumZZBar" is not referenced and will be removed from exp-file (ну это понятно, функция нигде не используется). Я в коде написал комментарий что я добавил, после чего ошибки исчезли.

//+------------------------------------------------------------------+
//|                                                         1111.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
}    // Добавил вот эту скобку, точнее переместил с конца, в результате 1 ошибка
int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) {
  if (sym=="") sym=Symbol();
  double zz;
  int    i, k=iBars(sym, tf), ke=0;
 
  for (i=1; i<k; i++) {
    zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(i);
    }
  }
  Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}   
//----
   
//+------------------------------------------------------------------+
По ходу написания этого сообщения я вроде понял свою проблемму. Функция не должна быть в теле функции старт. В теле старта должен быть только вызов этой функции. Правильно?
 
Climber:
 
По ходу написания этого сообщения я вроде понял свою проблемму. Функция не должна быть в теле функции старт. В теле старта должен быть только вызов этой функции. Правильно?

Да
 
Climber:
По ходу написания этого сообщения я вроде понял свою проблемму. Функция не должна быть в теле функции старт. В теле старта должен быть только вызов этой функции. Правильно?

Правильно. Ни одна функция не может быть описана в теле другой функции.
 
Climber:
По ходу написания этого сообщения я вроде понял свою проблемму. Функция не должна быть в теле функции старт. В теле старта должен быть только вызов этой функции. Правильно?
Да. Вот здесь посмотрите: Учебник по MQL4 Программа на MQL4 Структура программы .
 
Появился новый вопрос))
Обязательно ли для мультивалютного советника открытие графиков всех используемых инструментов?
Чтоб при приходе тика по инструменту к графику которого прикреплён советник, проверялись одни и те же торговые критерии по другим инструментам. В данном случае мультивалютность хочется использовать для того чтоб увеличить количество открываемых за день ордеров. Много ордеров не будет, работа ведётся на часовых графиках. Вручную получалось не больше двух ордеров по одному инструменту в сутки.

И следующее устрашающее меня задание -- это написание блока учёта ордеров для мультивалютника. Радует хоть то, что отложенные ордера в советнике не используются (хоть это сократит блок учёта:)). Не подскажете что можно на эту тему почитать, именно связанное с мультивалютными учётами.
 
Climber:
Появился новый вопрос))
Обязательно ли для мультивалютного советника открытие графиков всех используемых инструментов?

Нет. Но все используемые символы д.б. в окне "Обзор рынка".

 

Подскажите пожалуйста: как можно остановить советника? Я хочу чтобы он прекращал работать когда срабатывает стоп-лосс. Если кто может подсказать, пишите - mininp@list.ru. Заранее благодарен!

 
Mister_X:

Подскажите пожалуйста: как можно остановить советника? Я хочу чтобы он прекращал работать когда срабатывает стоп-лосс. Если кто может подсказать, пишите - mininp@list.ru. Заранее благодарен!


Может проще не остановить, а просто проверить наличие ордера со стопом и если есть ничего не делать
 
Таки нашёл классную статью по сложному учёту ордеров автора SK 'Учёт ордеров в большой программе'
Сейчас пока работаю на демо счёте вручную. И по финансовым показателям меня результат немного пугает своей прибыльностью. Вручную работаю по последней системе около месяца.

Начал с депозита 1000 и кредитного плеча 1:100. Размер лота всегда минимальный 100$. Работаю по 3-4 валютным парам. Так вот за первые две недели удалось увеличить депозит в 2 раза, т.е. депозит стал = 2000$. Сейчас уже около 3000.

Максимальный профит составлял за это время 118 пунктов по одному инструменту (с одного ордера естественно). ну и в среднем закрываю ордера с прибылью 40-50 пунктов. На однин такой ордер получается пару ордеров закрытых по стопам с общим убытком около 10 пунктов. Вобщем при самом плохом раскладе свои 100 пунктов в день в сумме по нескольким инструментам есть. А это не много не мало увеличение депозита за месяц в 2 раза. И если посчитать с учётом реинвестирования, то после 10 месяцев работы депозит должен составлять 1 миллион 24 тысячи президентов США.

Всё бы хорошо, надо радоваться, но тут возникает резонный вопрос: какой дц даст так нагло раскрутиться за 10 месяцев с 1000 долларов???? Начинают терзать смутные сомнения, не может же быть всё настолько просто!!!!!!

Конечно один месяц на да ещё и на демо это маленький срок, может сейчас просто фарт пошёл, но фарт при работе на 5 индикаторах. Поэтому пытаюсь написать советника, чтоб торговал сам дальше, а то порядком не высыпаюсь.

Чесно сказать задумался насчёт всего этого мероприятия, не замануха ли это???
Причина обращения: