Все закрывающий советник GlobalVariableSet("Стоп-Стоп-Стоп!!!",1); Остальные прежде чем ставить ордера, проверяют и ждут.
Все закрывающий советник GlobalVariableSet("Стоп-Стоп-Стоп!!!",0); Остальные увидели и понеслись
Все закрывающий советник GlobalVariableSet("Стоп-Стоп-Стоп!!!",1); Остальные прежде чем ставить ордера, проверяют и ждут.
Все закрывающий советник GlobalVariableSet("Стоп-Стоп-Стоп!!!",0); Остальные увидели и понеслись
Хм. А если нет доступа к кодам всех советников? Тогда проверку глобальной переменной не встроить.
Вот вариант, если нет доступа к кодам:
1. Обнаруживаем, что нужно приостановить все советники.
2. Меняем на всех графиках шаблоны с советниками на пустые. Все. Советников просто нигде нет!
3. Закрываем ордера.
4. Условие возникло - восстанавливаем шаблоны с советниками и они продолжают работу.
Всё это костыль. Я так прикинул на досуге. По скольку это обслуживающий бот, то у него свой подход. Соответственно, вопрос решается запоминанием тикетов, которые требуется закрыть. Если не получилось теоритически закрыть за 1 тик, далее дозакрываем.. и тд. Таким образом, не будет возникать бомбёжки друг в друга ботов. Ведь, когда выполнились какие-то условия, мы запоминаем тикеты всех ордеров и позиций и все. Ну а дальше.. закрываем все уже по тикетам, а не по позициям. иначе возникает касяк. Я вчера часа полтора думал, что за хрень. Потом просимулировал всю цепочку и догнал.
МТ4 оперирует только ордерами.
В МТ5 иначе. Есть ордера - приказы серверу. Если ордер принят - происходит сделка. Сделки формируют позиции. Сначала, в первых билдах МТ5 была одна усредненная позиция в результате всех сделок - неттинговый режим. Это и правильно - ведь встречные ордера, локирование, замки - это чепуха. Но многие трейдеры используют встречные ордера и поднялся кипиш - дайте нам локи. Ввели еще один режим - хеджинковый, где каждая сделка порождает позицию. При этом потерялся весь смысл в сделках и позициях. Выбор режима производится при открытии нового счета.
Если Вы под позициями подразумеваете выбор ордеров в цикле - то по скорости это одинаково. Ведь быстродействие компьютера многократно превышает пинг сервера.
Хм. А если нет доступа к кодам всех советников? Тогда проверку глобальной переменной не встроить.
Вот вариант, если нет доступа к кодам:
1. Обнаруживаем, что нужно приостановить все советники.
2. Меняем на всех графиках шаблоны с советниками на пустые. Все. Советников просто нигде нет!
3. Закрываем ордера.
4. Условие возникло - восстанавливаем шаблоны с советниками и они продолжают работу.
МТ4 оперирует только ордерами.
В МТ5 иначе. Есть ордера - приказы серверу. Если ордер принят - происходит сделка. Сделки формируют позиции. Сначала, в первых билдах МТ5 была одна усредненная позиция в результате всех сделок - неттинговый режим. Это и правильно - ведь встречные ордера, локирование, замки - это чепуха. Но многие трейдеры используют встречные ордера и поднялся кипиш - дайте нам локи. Ввели еще один режим - хеджинковый, где каждая сделка порождает позицию. При этом потерялся весь смысл в сделках и позициях. Выбор режима производится при открытии нового счета.
Если Вы под позициями подразумеваете выбор ордеров в цикле - то по скорости это одинаково. Ведь быстродействие компьютера многократно превышает пинг сервера.
Нет, конечно. Я подразумеваю так как оно и есть, на самом деле. Я же даже писал в своём сообщение и выделил жёлтым цветом позиции и ордера. Соответственно. я прекрасно понимаю, а чём различие этих понятий. В конце концов, я с нуля написал уже базовый функционал под 5-ки, да и под 4-ку тоже есть. Естесственно, я понимаю о чём пишу. Но есть совы, которе лупят ордера мгновенно. Один получается закрывает, а другие на различных графиках понимают, что нет уже позиций в рынке и они мгновенно открывают позиции. У меня вот есть такие боты у знакомого. Поэтому пришлось думать как обойти. Я решил вопрос запоминание, как я и писал, тикетов всех ордеров и позиций.
А поводу, локирования..не всё однозначно. Есть системы, которые достаточно гибко разруливают косяки. я сейчас над одной подобной работаю. Поглядим..
В любом случае, запрещать открыть встречный ордер не правильно. Ведь существует много трейдеров, который не способны установить стоп-лосс, хотя и торгуют в плюс на дистанции. Я таких знаю. 7-8 лет торговать в +, это не случайность. Поэтому как-бы на вкус и цвет товарища нет. Это дело привычки и вкуса что-ли..
А как програмно изменить шаблон на графике? И, вообще, есть ли вариант шаблон для совы изменить на любой имеющийся в папке шаблонов?
bool ChartApplyTemplate( long chart_id, // идентификатор графика const string filename // имя файла с шаблоном );
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть необходимость, когда в одном роботе появляется определённый сигнал закрывать все позиции всех сов, в том числе иручных. Написал я для этого сов, который это всё отслеживает и кроет. Но бывает такое, что происходит зацикливание и хз как это понимать. Я пришёл к выводу, что нужно, что бы когда какой-то сов начинает крыть все позиции он приостанавливал работу всех роботов не всех графиках. Такое возможно вообще?
Код у меня простой:
Всегда в лог пишет, что мол всё закрыто и result == true. Здесь повторяющийся код можно было вынести в один блок. Но я специально пока не объединял т.к. тестирую.
Я думаю, что суть в том, что если на разных графиках есть совы, которые открывают позиции или выставляют ордера молниеносно, в тот момент, когда у кажжой из них нет открытых позиции, например, мой закрывающий ВСЁ бот закрывает, а они молниеносно открывают. И такая ситуация может продолжться достаточно долго. Это если открытых ордеров много. Это мысли вслух.