pryakha пишет:
...какие такие распоряжения отправляет баскетбуль на сервер ДЦ, что они блокируют?
А что в журнале пишется?
Смотрел?
pryakha пишет:
...может дело обстоит в том, что я открываю много позиций (более 100)?
или тейки передвигаю, отлуючив, включил..
Предположения о возможной реакции ДЦ на постоянное движение большой корзины я уже высказывал
здесь и
здесь.
В твоем случае, когда открывается сразу 4 корзины в
различных терминалах,
на каждом тике все 4 терминала, одновременно посылают распоряжения в ДЦ. Это не есть гуд.
Для начала стоит увеличить настройки шага трала и отложек, чтобы не модифицировать их на каждом тике. Дай цене пройти побольше! Не жадничай.
Как вариант, можно продумать систему обмена информацией о времени последнего отправленного ордера в ДЦ.
Можно через глобальные переменные.
Учитывать эту инфо во время формирования нового ордера, при необходимости добавлять задержку, например на 1000 мс.
В коде советника это можно сделать вставкой типа
if((ServerTime() - Время_последней_команды_в_ДЦ) < Пауза_между_ордерами)
Sleep(Пауза_между_ордерами); //перевести значения в милисекунды
перед каждым ордером.
А после ордера, например,
Время_последней_команды_в_ДЦ=ServerTime();
//Пауза_между_ордерами - определять как глобальную
Решение не лучшее, но скорее всего рабочее.
Прежде всего, следует изучить логи, и понять, какие ошибки ты гонишь на сервер, а потом уже что то править.
А может стоит опять вернуться к алгоритму, заложенному в торговую систему, и
начинать оптимизацию с него?