| / | Форум |
|
HIDDEN
09.04.2007 11:50
Много раз всплывала тема о защищенности кода советника, о том
как это сделать предложений было масса, но вот реализации толковой
никто не выдал.
Ставим задачу. 1. Есть советник, прибыльный или нет не суть важна. 2. Есть куча народу которые хотят его попробывать. 3. Реальный советник пишет сигналы на сервер 4. Советник у "народа" эти сигналы забирает и торгует. Теперь подробней по пунктам: 2) Передовать советник в скомпиленном коде с разными там ограничениями на его работу в наше время стало не безопасно, поэтому делаем работу советника через удаленный сервер. При этом в коде советника который стоит у пользователей оставляем только торговые функции, функцию расчета рабочего лота, сопровождение открытых позиций, траллинг стоп и т.д. Но полностью убираем из кода алгоритмы по которым эксперт расчитывает входить или выходить из рынка. 3) Запись сигналов или как в моём случае передача внутренних настроек через сервер посредству файла. Можно конечно закрутить это еще более хитроумными спосабами, но некчему это. 4) Выполняя торговые функции, модифицируя открытые ордера, эксперт является независимым, т.е. даже если по какой-то причине нету связи с сервером, эксперт доведет каждую открытую сделку. Данная практика подобной торговли реализована тут, на данный момент это еще бета-тестирование, но тем неменее уже рабочий вариант. Чем удобно именно подобное тестирование, тем что можно не опасаться за воравство исходного кода. Передовать пользователю эксперта можно в открытом коде, т.к. в эксперте есть только торговые функции и т.д. А эту информацию можно найти в справочнике MQL4. Если кому-то интересно сама реализация, тонкости в настройки пишите в этой ветке. Обсудим. Возможно даже новые мыли какие-то напишем и запустим. |
|
Как упростить обнаружение и устранение ошибок в коде эксперта В разработке торговых экспертов не последнее место занимают вопросы диагностики и исправления ошибок в их коде. Специфика такова, что порой не обнаруженная вовремя ошибка может погубить стоящую идею торговой системы еще на этапе ее первых испытаний. Поэтому любой здравомыслящий разработчик МТС будет изначально заботиться о таких проблемах. Данная статья рассматривает некоторые подходы, помогающие в этом нелегком деле. |
|
KimIV
09.04.2007 12:09
Как вариант, есть такое решение, которое я уже неоднократно проверял
в реалтайме.
1. Заводим отдельный торговый счёт. 2. На него у себя ставим своего советника. 3. Пользователям сигналов этого советника даём номер счёта и инвест-пароль и даём им программу SyncroTrade (она платная). 4. Пользователи ставят у себя программу SyncroTrade и получают возможность копировать сигналы торгового советника на свой торговый счёт. |
|
xeon
09.04.2007 12:10
Вопрос - как происходит обработка времени задержки сигнала на
установку ордера? тоесть предположим индикатор (сервер) выдал
сигнал на покупку (допустим Period M15), но советник получил сигнал
с задержкой в 10 минут , тоесть в рынок входить уже позно .... как
советник "у клиента" обрабатывает эту задержку?
|
|
HIDDEN
09.04.2007 12:17
Передовать конкретно покупку или продажу от какого-то уровня
нет смысла. Передовать нужно именно условие для входа. |
|
xeon
09.04.2007 12:28
HIDDEN писал (а): Передовать конкретно покупку или продажу от какого-то уровня
нет смысла. Передовать нужно именно условие для входа. Честно сказать не понял как это? Вы собираетесь передавать условие входа в рынок? |
|
HIDDEN
09.04.2007 12:31
Именно условия, так же можно передавать любые настройки и параметры,
ограничений нет никаких.
|
|
xeon
09.04.2007 12:46
HIDDEN писал (а): Включая удаленное управление компьютером клиента :-)) (это так
к слову) ограничений нет никаких. А по сути - передавать условие входа в рынок например: - условие1 - if(signal == 1) {..........} значение переменной Signal передается с сервера? если да то мой первый вопрос в силе, если же индикатор (или несколько) находится у клиента и передается условие анализируещее этот индикатор, то вопрос - сколько должно быть типов условий что бы их вообще имело смысл передавать? (ведь судя по замыслу условия для входа должны быть каждый раз разные иначе очень легко сохранить передаваемые сервером условия, а потом просто вставить их в советник клиента....... и зачем тогда сервер? ) |
|
HIDDEN
09.04.2007 13:06
Параметр Signal формируется и посылается на сервер после проведенного
анализа полноценного эксперта, который работает у меня. Вставлять
в код жестко 1, -1, 0 и. т.д. смысла нет, эти параметры меняются достаточно
часто. А вот запрос от клиента на сервер, частоту запросов можно
регулировать, скажем 1 раз в час, в сутки, в неделю. Получив этот
параметр эксперт уже может торговать. именно по этому параметру.
|
|
Reshetov
09.04.2007 16:07
HIDDEN писал (а): Было бы лучше, чтобы разработчики добавили в MQL функции для обмена
информацией по TCP/IP, хотя бы в виде текстовых сообщений. А для
пущей безопасности можно было бы разрешение давать только в
том случае, если пользователь прописал ip адрес и порт самостоятельно,
так же, как и для отправки почты или файлов по FTP.Параметр Signal формируется и посылается на сервер после проведенного анализа полноценного эксперта, который работает у меня. Вставлять в код жестко 1, -1, 0 и. т.д. смысла нет, эти параметры меняются достаточно часто. А вот запрос от клиента на сервер, частоту запросов можно регулировать, скажем 1 раз в час, в сутки, в неделю. Получив этот параметр эксперт уже может торговать. именно по этому параметру. Для этого нужно, чтобы терминал мог выступать в качестве сервера, т.е. принимать информацию по какому нибудь сокету и выдавать ее всем установленным на нем советникам. Например: "333 EURUSD Buy 1.0" т.е. советнику, который стоит на чарте евробакса с магическим номером 333 надо встать в длинную позу на 1 лот на EURUSD. Ну, а в советниках предусмотреть функцию отправки на определенный адрес:порт сервера. Например, строчку "333 EURUSD Buy 1.0 OK", т.е. советник прикупил 1 лот успешно (если приказ не прошел, то чтобы сообщал серверу номер ошибки"). |
|
bstone
09.04.2007 22:30
Похожая технология уже обсуждалось и кто-то выкладывал рабочее решение. Если память не изменяет, обмен сигналами там шел через FTP. Поищите по форуму. |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий