Скачать MetaTrader 5

Решаема ли задача в принципе на MQL4 ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши статьи с помощью нашего редактора. Это удобно!
Zak
86
Zak 2013.11.15 21:50 

Задача такая: В одном терминале открыто 9 разных пар и работают 8 советников каждый на своей паре и каждому разрешено торговать, на 9 паре работает мой "управляющий" советник, который следит за тем по скольким парам и соответственно копиям торгующих советников ОДНОВРЕМЕННО возможно отрывать ордера. Подчиняются все советники одной ГЛобальной переменной. Написал простой цикл который считает "магические номера" уже открытых ордеров и не дает открыться новым ордерам других советников, устанавливая значение управляющей глобальной переменной которое запрещает торговать.

Это так "по сценарию" должно быть. Реально все работает не так . Проблема в том что пока мой "управляющий" советник успеет установить значение глобальной переменной, запрещающей торговать, работающие советники успевают открыться по 6 парам вместо разрешенных 2. Алгоритм работает верно: если сначала запустить управляющий советник, а потом по очереди разрешать торгующим советникам торговать, то более 2 советников ( по 2 парам) не открывается (запрещает значение глобальной переменной установленное управляющим советником).

Возможно ли силами MQL4 задать систему приоритетов чтобы сначала выполнялся код управляющего советника, а потом всех остальных ?

Пробовал зациклить start(), может что не так делал, но кроме подвешивания терминала ничего не добился.

Помогите начинающему профессионалу.

Алексей Тарабанов
7200
Алексей Тарабанов 2013.11.15 22:33  
Zakyza:

Возможно ли силами MQL4 задать систему приоритетов чтобы сначала выполнялся код управляющего советника, а потом всех остальных ?

Пробовал зациклить start(), может что не так делал, но кроме подвешивания терминала ничего не добился.

Помогите начинающему профессионалу.

Возможно. Например, добавив еще одну переменную терминала, управлять которой сможет только он, а для остальных она станет разрешением работать.

Понимаю, что предложил то, что Вы уже реализовали. Видимо, сделано это некорректно.

Если управляющий советник не успел изменить терминальную переменную, то ведомые не должны иметь разрешения торговать.

Vadim Zhunko
5227
Vadim Zhunko 2013.11.15 22:38  
Посмотрите на эту функцию. Это единственная функция в MQL4, которая разруливает на уровне ядра (обеспечивает атомарный доступ). Должна помочь.
Zak
86
Zak 2013.11.15 22:43  
tara:
Возможно. Например, добавив еще одну переменную терминала, управлять которой сможет только он, а для остальных она станет разрешением работать.


Не успевает управляющий советник задать нужное значение глобальной переменной
Алексей Тарабанов
7200
Алексей Тарабанов 2013.11.15 22:49  
Zakyza:

Не успевает управляющий советник задать нужное значение глобальной переменной

Ну, дык не надо давать ведомым права дышать, пока он не проснется.
Zak
86
Zak 2013.11.15 22:53  
Zhunko:
Посмотрите на эту функцию. Это единственная функция в MQL4, которая разруливает на уровне ядра (обеспечивает атомарный доступ). Должна помочь.

Спасибо, надеюсь поможет, как то я ее проглядел. "может быть использована для организации семафора при взаимодействии нескольких одновременно работающих экспертов в пределах одного клиентского терминала." -- это вселяет надежду. Хотя если GlobalVariableSetOnCondition будет вызвана из start() моего управляющего советника в последнюю очередь, уже после того как торгующие эксперты вошли в сделки не понимаю что это изменит.
Zak
86
Zak 2013.11.15 22:56  
tara:

Ну, дык не надо давать ведомым права дышать, пока он не проснется.

Каким образом это организовать ? Разрешать вручную торговлю ведомым - не вариант.
Алексей Тарабанов
7200
Алексей Тарабанов 2013.11.15 22:59  
Если ведомые советники - ворованные, то Вы не по адресу обратились.
Zak
86
Zak 2013.11.15 23:04  
Почему ворованные ? Автор сам советника выложил в свободное пользование, я просто запустил несколько копий и хочу их организовать посредством глобальных переменных. Зачем такое говорите ?
Алексей Тарабанов
7200
Алексей Тарабанов 2013.11.15 23:05  
Я ведь сказал: если.
Zak
86
Zak 2013.11.15 23:07  
tara:
Я ведь сказал: если.

Ок. Нет не ворованные.
1234567
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий