Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так ты высказывай как бы хотелось, чтобы ты сам получал удовольствие от процесса. Только пойми: у сервера нельзя запросить конкретную свечу, можно только диапазон свечей за выбранные даты. Так что думай в этом направлении.
Тогда пусть лучше будет запись данных в файл. Не пойму как добавить папку
а можно вмешаться ?
класс/интерфейс со стороны MT никто не хочет сделать заранее ??
то есть дать конкретное ТЗ которое обсуждается и которое подлежит исполнению.
ну давайте начнём:
class Hibou {
Hidou(string url=HIBOU_WS_URL); // думаю почти бесспорно
~Hibou();
void DoEvent(); // веб-сокеты асинхронны, а может в тредах реализуем, будем дёргать при первой возможности
int State(); // некое текущее состояние
/// хенды по событиям протокола, вызываемые из DoEvevnt
virtual void OnConnect(); // соеденились - зашибись
virtual void OnMessage(string json); // получили внятный Event
/// и так далее - заказчик представляет как он намерен использовать интерфейс.
/// если он этого не знает, мы за него ничего придумать не можем, клиника в руках пациентов
}
Не можно! А НУЖНО! Чем больше заинтересованных подключится, тем лучше получится!
Обычно On[Event|Connect|Message] и так далее используются для оповещения того, что событие произошло, но мы же не имеем возможности оповещать МТ, такой событийной модели к сожалению нет, мы не можем передавать сообщения в МТ(((
Поэтому у нас остается только метод периодического опроса шарпа со стороны mql, например по мизерному таймеру. (((
И чтобы все происходило корректно... Каждый кто читал справку по mql не раз замечал такое выражение что событие становится в очередь, да и разработчики, в том числе и Ренат, буквально на каждом шагу нам говорят что все события терминала - синхронные, и обрабатываются в порядке очереди, и все системные события и события терминала помещаются в эту самую очередь и последовательно обрабатываются. Именно по этой причине я в первой же редакции и предложил использовать тот же самый механизм обмена: очередь.
Подключаем к нашему проекту библиотеку WebSocket4Net из пакетов Nuget.
Описываем класс сокета. Добавим ему свойство IsOpen , которое будет отвечать за то, что сокет открыт.
Буквально слегка оформляет класс сокета, нужные using прописываем через контекстные подсказки.
Далее дорабатываем глобальный менеджер. В его статическом конструкторе сразу будем создавать экземпляр сокета, чтобы не забывать о нем.
Я прислушался к Максиму и добавил в глобальный менеджер метод соединения с конкретным брокером. Это будет удобно если будет развитие под других брокеров
Дорабатываем web-socket, создаем обработчики событий самого сокета.
Я прислушался к Максиму и добавил в глобальный менеджер метод соединения с конкретным брокером. Это будет удобно если будет развитие под других брокеров
вы видимо слушали третьим глазом :-)
вы видимо слушали третьим глазом :-)
Макс, ты предложил создать класс, но у нас для общих методов есть класс GlobalManager, а создавать отдельный специфический класс я пока не вижу смысла.
Что касается интерфейса для связи с МТ, то в дальнейшем у нас будет класс ConnectorMQL, когда мы протестируем все наши методы в консольном режиме.
Если я чтото не верно понял то поправь меня, попробуй донести свою мысль немного иначе, не делай поспешных выводов.
P.S. Хотя конечно можно не только универсальную точку входа типа ConnectorMQL сделать, а реально отдельный класс HuobiMQL, который будет отправлять в глобальный менеждер специализированные команды.Что-то у меняsslProtocols не видит
Что-то у меняsslProtocols не видит
Да вроде все нормально, он же не подчеркнут. А вот точку с запятой в конце строки поставить нужно.
Добавил папку Points, а в ней сделал класс HuobiMQL
В события открытия и закрытия сокета добавил установку свойства состояния сокета
Макс, ты предложил создать класс, но у нас для общих методов есть класс GlobalManager, а создавать отдельный специфический класс я пока не вижу смысла.
Что касается интерфейса для связи с МТ, то в дальнейшем у нас будет класс ConnectorMQL, когда мы протестируем все наши методы в консольном режиме.
Если я чтото не верно понял то поправь меня, попробуй донести свою мысль немного иначе, не делай поспешных выводов.
к стороне проектирования: всё гораздо проще - @Fedor Arkhipov (автор топика и инициатор) обяъвляет "я хочу чтобы было именно так, а конкретно сейчас нужен Hibou" . И мелкие/согласуемые коррективы от нас убогих :-) Потому что именно он знает зачем вся затея.
мне например неясно нахзначение многих классов, но это мои тараканы...
блин, вам надо, вот и получите в максимально компактном виде вещь - обратились,получили внятный ответ и даже поток, и разобрались с ошибками. а Классов и Методов можно напердолить сотню иерархий :-)