Советники: Копирование сделок с одного счёта на другой (Советники ExpertSource и ExpertReceiver)
1. в Source у вас много Print. Желательно заменить их на Comment. - засыпит ненужными сообщениями в журнал
2. В Receiver ваше решение с диапазоном магиков - не очень хорошее - вы не должны ограничивать работу других экспертов своим.
3. Ошибки модификации/открытия ордеров в Receiver - не должны быть в принципе. разве интересует кого то на приёме, что "Превышена минимальная граница выставления отложенного ордера на продажу по цене открытия"); Это вы должны учитывать сами и не загружать пользователя этими сообщениями.
4. У вас не решен вопрос с частичным закрытие ордера в Receiver
5. Ну и код слишком усложнён. Весь приёмник на самом деле помещается в 4 короткие функции - приём - удаление - модификация - открытие. У вас слишком сложный стиль кодинга.
Сразу скажу, что советники писались не для продажи, а для себя лично. Решил опубликовать, потому что сам пользуюсь уже 3 месяца, без внесения в код корректировок.
1. Согласен. Можно вообще все принты закомментировать.
2. Ничего лучшего придумать не смог :) При переносе открытой позиции или отложенного ордера со счёта-источника на счёте-получателе появляется новая позиция (ордер) с магическим числом, равным порядковому номеру сделки (Ticket) на счёте источника. Советник ExpertReciver закрывает позицию по теущей цене, либо удаляет отложенный ордер в случае, если среди существующих позиций на счёте-источнике отсутствует позиция с таким номером (Ticket), как Magic Number у позиции на счёте получателе.
3. Ошибок, как таковых, нет. Это просто комментарии. На сервер неправильные приказы не отправляются. Поэтому ничего уж такого катастрофического не происходит.
4. На 100% согласен с Вами. Кроме того не решён вопрос с OrderCloseBy. Просто мне это не нужно было. Кому нужно - флаг в руки!
5. Да фиг его знает... Процессор справляется нормально. Место на диске тоже хватает.
И на последок: Спасибо за столь великое внимание к моим экспертам. Очень хорошая критика!
2. Ничего лучшего придумать не смог :)
воспользуйтесь глобальными переменными.
2. Ничего лучшего придумать не смог :)
воспользуйтесь глобальными переменными.
В данном случае глобальные переменные - крайне ненадежное решение. Терминал слетел, комп выключился и т.д. и вся связка потерялась. Связи для надежности должны храниться только на стороне торгового сервера. А это либо мэджики, либо комменты, либо "далекие" отложки с использованием всех доступных для модификации полей, либо "далекие" уровни SL и TP для позиций-ордеров, не использующих их.
Повторюсь, хранить локально - это ненадежное решение. Такое решение пока предлагается и на MT5.
Решение с мэджиками видится самым логичным. Диапазон значений с возможными исключениями (для работы остальных советников) можно задавать несложной функцией.
Не критика, а просто мысли вслух:
система копирования сделок для работы вовсе не должна анализировать историю закрытых сделок. Анализироваться должно только изменение текущих нетто-позиций: цена открытия, объем (включая направление). А также текущие отложки (включая SL и TP). Т.е. для копирования сделок история вообще не нужна. Анализ проводится только текущей ситуации и только нетто-позиций (учет структуры нетто-позиций не нужен).
При такой реализации взаимосвязи вообще не нужны. Автоматически появится учет частичного закрытия и CloseBy. И также это никак не скажется на работе других советников и на источнике сделок и на счете-"двойнике".
P.S. MT4-бриджи (STP (еще проше) и ECN) именно так и реализованы. А бриджи - это и есть "копирование" сделок с одного счета на другой.
P.P.S. Забыл главное сказать: Автор - молодец!
Не критика, а просто мысли вслух:
система копирования сделок для работы вовсе не должна анализировать историю закрытых сделок. Анализироваться должно только изменение текущих нетто-позиций:
+1 поддерживаю.
в более простом варианте (если упростить работу приёмника) - то входы/выходы будут полностью рыночными - без стопов.
и контроля (как в этом копировщике) Sensitivity. То есть всё осуществляется по итогу работы источника.
система копирования сделок для работы вовсе не должна анализировать историю закрытых сделок.
История сделок анализируется для случая, когда я вручную закрою позицию, открытую советником, чтобы он её второй раз не открыл.
в более простом варианте (если упростить работу приёмника) - то входы/выходы будут полностью рыночными - без стопов.
Таким образом Вы искючите возможность подстраховки при разрыве связи и грубо нарушите некоторые ньюансы торговой системы, по которой работает источник сигналов
Таким образом Вы исключите возможность подстраховки при разрыве связи и грубо нарушите некоторые ньюансы торговой системы, по которой работает источник сигналов
вариантов может быть очень много. Общепринятых парадигм копировщиков (случай как с этим) никто не отменял. Просто неттинг - это как вариант. В любом случае именно он будет в МТ5.
--------------
Есть же не только копировщик сделок (когда на приёмник отсылается параметры ордера). - есть же ещё и приемник сигналов от других экспертов. Когда на приёмник отсылается не ордер, а состояние индикаторов или результат какого то вычисления на сервере. А приёмник сам решает что делать с ними. Но это тоже совсем другая тема, которая выходит за рамки текущей модели простого копировщика сделок.
EvgeTrofi писал(а):
История сделок анализируется для случая, когда я вручную закрою позицию, открытую советником, чтобы он её второй раз не открыл.
Честно говоря, я не писал никогда копировщик и всех нюансов поэтому не знаю. Высказал только свои мысли, как бы сам изначально подошел к решению данной задачи.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Копирование сделок с одного счёта на другой (Советники ExpertSource и ExpertReceiver):
Author: Evgeniy Trofimov