Запрет торговли советнику на двух одинаковых счетах(терминалах)

 
Подскажите как сделать так чтобы советник торговал только на одном счете-терминале. Скажем при запуске второго терминала на другом компе с тем же номером счета и тем же советником чтобы на том втором советник не смог бы работать. Можно ли организовать проверку советником того не открыт ли он на таком же счете на другой машине. Чето поискал в инете тишина, походу я какуюто фантазию придумал и такого не может быть. Не кидать камни за ламерство если че)) 
 
fantomas56:
Подскажите как сделать так чтобы советник торговал только на одном счете-терминале. Скажем при запуске второго терминала на другом компе с тем же номером счета и тем же советником чтобы на том втором советник не смог бы работать. Можно ли организовать проверку советником того не открыт ли он на таком же счете на другой машине. Чето поискал в инете тишина, походу я какуюто фантазию придумал и такого не может быть. Не кидать камни за ламерство если че)) 

1. Организовывать хандшейк через сторонний сервер через WebRequest. Если для себя (не Маркет), по простому, через wininet.dll обычный ftp c записью.чтением файлов-меток

2. Пусть активный советник раз в N-time, например, ра в 15 сек,  выставляет и через N-time удаляет отложенник, который никогда не сработает. Второй мониторит счет и определяет, один он или нет в этой грустной жизни.

3. Использовать телепатические пилюли доктора Блюмберга

 
Alexey Volchanskiy:

1. Организовывать хандшейк через сторонний сервер через WebRequest. Если для себя (не Маркет), по простому, через wininet.dll обычный ftp c записью.чтением файлов-меток

2. Пусть активный советник раз в N-time, например, ра в 15 сек,  выставляет и через N-time удаляет отложенник, который никогда не сработает. Второй мониторит счет и определяет, один он или нет в этой грустной жизни.

3. Использовать телепатические пилюли доктора Блюмберга


Вот я по третьему пункту вопросов не имею, тут всё чётко и понятно написано))

Интересует идея с отложенником, что значит"второй мониторит", кто ето второй и что он мониторит?

Заранее спасибо)

 
fantomas56:

Вот я по третьему пункту вопросов не имею, тут всё чётко и понятно написано))

Интересует идея с отложенником, что значит"второй мониторит", кто ето второй и что он мониторит?

Заранее спасибо)


Ну что тут сложного. У нас есть два терминала с одним счетом, так? Один в Питере, другой в Африке. Задача: если первый запустился, второй не должен совершать операции.

Пусть питерский раз в 10 сек выставляет ордер Buy Stop на уровне, который явно не сработает, например Ask + 100000 п. Африканец мониторит список ордеров,  обнаружив такой странный ордер, его удаляет. При этом он понимает, что канал занят, надо сидеть и слушать. Как только питерский отвалился, ордер более не выставляется, африканец берет на себя инициативу.

Как-то так на первый взгляд. Достоинство - предельная простота реализации.

 

Да, идея интересная и простая и гениальная! Но код у советника дожен быть одинаков! Вот в чем штука то...

Попробую теперь я порассуждать. Итак первый в Питере запускаем, он ставит ордер, африканец запускает свой терминал, сова смотрит-стоит её ордер, значит отмена - return(); 

Если африканец удаляет вручную ордер, что тогда...Тогда оба советника наперегонки кидают отложку, но что если повезёт нашему теплолюбивому другу а не культурной столице...Тогда мы в пролете. Нет, тогда мы конечно тоже можем закрыть ордер сами и опять лотерея.. Надо как то этот момент разрешить. Чтобы если советник не сам отложку кинул и если юзер закрыл ручками то банан! Тьфу ты, то бан! Хотя африканцу и банан сойдёт  :DD

 
Alexey Volchanskiy:

Пусть питерский раз в 10 сек выставляет ордер Buy Stop на уровне, который явно не сработает, например Ask + 100000 п. Африканец мониторит список ордеров,  обнаружив такой странный ордер, его удаляет. При этом он понимает, что канал занят, надо сидеть и слушать. Как только питерский отвалился, ордер более не выставляется, африканец берет на себя инициативу.

В результате счет блокируется за спам, а трейдер идет жаловаться на форумы, до последнего скрывая, что у него 30 000 фейковых мусорных сделок в истории.

 
Renat Fatkhullin:

В результате счет блокируется за спам, а трейдер идет жаловаться на форумы, до последнего скрывая, что у него 30 000 фейковых мусорных сделок в истории.


Ренат, все зависит от ДЦ. Ок, пусть раз в минуту или в 5 мин. Я кинул идею без привязки к таймауту.

Не, я, конечно, сейчас быстренько набросаю проект со связью через webrequest || wcf, но ведь человеку надо "просто"

 
fantomas56:

Да, идея интересная и простая и гениальная! Но код у советника дожен быть одинаков! Вот в чем штука то...

Попробую теперь я порассуждать. Итак первый в Питере запускаем, он ставит ордер, африканец запускает свой терминал, сова смотрит-стоит её ордер, значит отмена - return(); 

Если африканец удаляет вручную ордер, что тогда...Тогда оба советника наперегонки кидают отложку, но что если повезёт нашему теплолюбивому другу а не культурной столице...Тогда мы в пролете. Нет, тогда мы конечно тоже можем закрыть ордер сами и опять лотерея.. Надо как то этот момент разрешить. Чтобы если советник не сам отложку кинул и если юзер закрыл ручками то банан! Тьфу ты, то бан! Хотя африканцу и банан сойдёт  :DD


Надо продумать протокол, я написал на скорую руку.

 

А зачем это вообще нужно?

 
Mesaoria:

А зачем это вообще нужно?


Да хотя бы для страховки от всяческих форс-мажоров, если требуется круглосуточная поддержка счета советником. Ведь одна станция может отключиться по техническим причинам. Решение - добавить еще одну станцию, желательно с другой геолокацией.

Вот и возникает проблема разделения ответственности: как дублирующей станции по-простому определить, что основная станция не работает? Сложных решений хватает. Даже статьи есть на эту тему здесь.

Развивая идею Алексея, можно воспользоваться отложенными ордерами с истечением. Ведущий советник должен установить такой ордер и отслеживать его существование. Как только ордер исчез, установить следующий. А дублирующий советник после исчезновения отложенного ордера должен выждать некоторое время (например, минуту), чтобы убедиться, что ведущий советник не работает, и только тогда дублер становится ведущим советником.

Исходя из технических особенностей истечения ордеров, получаем, что минимальный таймаут между проверками работоспособности ведущего советника составляет 11 минут (10 минут - на истечение ордера, 1 минута - подтверждение неработоспособности). Для скальперов не подойдет, но подойдет для большинства других стратегий.

 

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

Но, способ, предложенный Алексеем - вполне себе годный.

При начале работы - выставляем отложку, которая заведомо никогда не сработает. Если такая отложка уже есть - значит, счет уже "занят", работать нельзя.

При завершении работы - отложка снимается.

Вероятность коллизии - одновременная установка двух одинаковых отложек в одно и то же время - на мой взгляд, очень невелика.

Причина обращения: