Делаю копир для бразильской биржи. 1-ый терминал Мт5 пишет файл 10 раз в секунду, 2-ой его считывает к примеру 10 раз в секунуду.
К примеру есть позиция и стоит лимитный ордер . Цена доходит до лимитного и позиция закрывается. Но Ведомый терминал еще хранит новую информацию о позициях и ордерах. Поэтому пытается выставить ордера опять.
Думаю, что избежать этого поможет OnTradeTransaction.
Но как ей пользоваться ?
Или есть другие решения ?
А разве ведомый терминал не имеет информации о значениях ТР и SL, а так же цене лимитных ордеров? Тогда что ему мешает мониторить цену и определять факт срабатывания ордеров и позиций и вычеркивать их из своего списка, не дожидаясь прихода информации о закрытии (открытии)?
Делаю копир для бразильской биржи. 1-ый терминал Мт5 пишет файл 10 раз в секунду, 2-ой его считывает к примеру 10 раз в секунуду.
К примеру есть позиция и стоит лимитный ордер . Цена доходит до лимитного и позиция закрывается. Но Ведомый терминал еще хранит новую информацию о позициях и ордерах. Поэтому пытается выставить ордера опять.
Думаю, что избежать этого поможет OnTradeTransaction.
Но как ей пользоваться ?
Или есть другие решения ?
Я обошел эту проблему установкой магика на клиенте в виде тикета позиции сервера. И проверяю клиента именно по магикам.
struct SWorkPositions { uchar symbol[20]; int ticket[2], typePosition; double price, volume, sl, tp; };
Тикет веду массивом где первая позиция это первый тикет который и является магиком клиентских ордеров/позиций.
А второй тикет для того чтоб серверная часть при изменениях тикета позиций не путал позиции. Тут уже идет разбор коментария в котором указано от какой позиции пошло изменение. И вторая позиция массива бывает изменяется.
Не совсем понятно, почему ведомый терминал пытается выставить ордер опять. Мастер-терминал ведь ему не писал в файл указания "поставить ордер" ?
Как я понимаю, копир должен четко выполнять указания, выдаваемые мастер-терминалом. Если на ведомом терминале сделка не закрылась из-за того, что цена не дошла до ТП(или СЛ), а ведущий терминал решил открывать новую сделку - то данная ситуация явно не-копирная, чисто копир должен открывать вторую сделку, как того требует мастер-терминал. А если мы будем глядеть еще и на разность котировок в различных ДЦ, да изменять свое поведение, в зависимости от этого - тут, боюсь, уже простым копированием сделок не обойдется, необходимо двустороннее взаимодействие.
Делаю копир для бразильской биржи. 1-ый терминал Мт5 пишет файл 10 раз в секунду, 2-ой его считывает к примеру 10 раз в секунуду.
А разве через файлы осуществлять обмен - это не стрёмно? Через Win Api, мне кажется, будет более кошерно.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Делаю копир для бразильской биржи. 1-ый терминал Мт5 пишет файл 10 раз в секунду, 2-ой его считывает к примеру 10 раз в секунуду.
К примеру есть позиция и стоит лимитный ордер . Цена доходит до лимитного и позиция закрывается. Но Ведомый терминал еще хранит новую информацию о позициях и ордерах. Поэтому пытается выставить ордера опять.
Думаю, что избежать этого поможет OnTradeTransaction.
Но как ей пользоваться ?
Или есть другие решения ?