postscreen 86 Share Posted September 29, 2019 Сложилась ситуация, когда есть визуальная среда Microsoft Visual Studio 2019, Community. Само собой ее средства связи и являются исчерпывающим что мне доступно. Есть потребность в максимально простом, доступном способе получения тиков в реальном времени. Ну то есть расчетном времени, при регулярных сверках. Однако ничего простого я до сих пор не видел, сам же MT5 в изобилии снабжен совершенно другими средствами, но до того чем пользуюсь я дотягивает с трудом. Однако, не теряя пока надежды сделать все попроще ... Ну то есть казалось бы установил распространенный MT5, подключился и все ... Работает он стабильно, что скажешь, но вот со средствами связи как то нет ясности ... Что делать? Просьба писать в духе: Средства C#: Цитата using System.Web; using System.Net.Http; HttpClient AccountsOfIG = new HttpClient(); Средства MT5: Цитата Тут загадка ... Quote Link to post Share on other sites
Ugar68 372 Share Posted September 29, 2019 Можно использовать файлы. Но для котировок это не очень. Лучше именованные каналы. Есть пару статей на эту тему у метаквотов, может помогут. https://www.mql5.com/ru/articles/115 https://www.mql5.com/ru/articles/503 Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
postscreen 86 Author Share Posted September 29, 2019 (edited) 24 минуты назад, Ugar68 сказал: Можно использовать файлы. А можно поподробнее, мне очевидным кажется только писать для MT, после эти файлы читать ... Иного просто не вижу. p.s. Остальное почитаю, спасибо, название правда первый раз слышу такое. Прочитал цели ... стало страшновато ... Edited September 29, 2019 by postscreen Quote Link to post Share on other sites
Ugar68 372 Share Posted September 30, 2019 12 часов назад, postscreen сказал: А можно поподробнее, мне очевидным кажется только писать для MT, после эти файлы читать ... Иного просто не вижу. p.s. Остальное почитаю, спасибо, название правда первый раз слышу такое. Прочитал цели ... стало страшновато ... Как засунуть слона в холодильник. Очень просто, в 3 этапа. Открыть холодильник, засунуть слона, закрыть холодильник. С файлами то же самое. Открыть файл, засунуть в него нужные данные, закрыть файл. Что бы не использовать лишних DLL, писать файлы в песочницу, специально отведённую локальную или общую папки. Ну а программе на С без разницы от куда брать файл. Так же, открыть файл, достать данные, закрыть файл. Только при открытии надо обязательно убеждаться что открылся, что бы не подрались писалка с читалкой. Всё есть в справочнике по MQL5. Но мне кажется что мучить диск на каждом тике - тупо. Диск для хранения, а не для перезаписи на каждом тике. Именованные каналы, похожи на файлы, только в оперативке. Проблема в том что в справочнике про них ни слова. Но в библиотеке классов есть Include\Files\FilePipe.mqh. Думаю это то что нужно. Одна из статей, ссылки на которые я давал ранее, поможет разобраться. ps Сам не пробовал, только интересовался. Не было надобности. Обходился файлами, так как данные надо было не только передавать, но и сохранять, для использования после перезапуска терминала. Да и изменения были не такие частые как тики. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
postscreen 86 Author Share Posted October 1, 2019 21 час назад, Ugar68 сказал: Но мне кажется что мучить диск на каждом тике - тупо. Диск для хранения, а не для перезаписи на каждом тике. Именованные каналы, похожи на файлы, только в оперативке. Проблема в том что в справочнике про них ни слова. Но в библиотеке классов есть Include\Files\FilePipe.mqh. Думаю это то что нужно. Одна из статей, ссылки на которые я давал ранее, поможет разобраться. На каждом тике тупо слов нет, да на самом деле и смысла нет, я же не ищу Лучшую цену в конце концов, доволен просто хорошей. Но выглядит все тяжко, в том смысле что каналы эти не понимаю я пока ... Бррр, в общем спасибо, если там есть решение мне явно нужно с ним разбираться и оно чуть сложнее чем могло бы быть ... То есть как то не описано. Но вспомниная МТ и его документация про "думки трейдера", относительно выбор Type я вообще к этому отношусь очень спокойно Quote Link to post Share on other sites
DVargo 210 Share Posted October 1, 2019 А у меня такой вопрос, а из чего следует, что пайпы в памяти а не на диске? Тогда можно и буфер обмена использовать через Win api, ну или в открытый блокнот писать и из него же читать. Не ясно только цель данного мероприятия. Нафига все передавать в C# если MQL родной брат или сетра, есть необходимость использовать терминал отличный от MT? Если писать в файл раз в секунду или реже - то диск это переживет, для C#, С++.... программеров - это расходники, и писать можно не в один файл, а равномерно заполнять винт кучей файлов. Quote А не пойти ли бы вам Link to post Share on other sites
Player 2 1,351 Share Posted October 1, 2019 (edited) 1 hour ago, DVargo said: А у меня такой вопрос, а из чего следует, что пайпы в памяти а не на диске? Где-то в документации по ним это написано. Они обертка над memory-mapped-файлами с приделанными механизмами синхронизации, которые у чистых memory-mapped-файлов отсутствуют. Я использовал memory-mapped-файлы для обмена данными, всю синхронизацию делал сам (пайпы не использовал и даже не знал о них). Несмотря на то что они называются файлами, их можно использовать в режиме при котором они существуют только в памяти и на диске ничего не создается. По ссылке я код писал чтобы проверить как это работает. Edited October 1, 2019 by Player 2 Quote Link to post Share on other sites
postscreen 86 Author Share Posted October 1, 2019 (edited) 2 часа назад, DVargo сказал: Нафига все передавать в C# если MQL родной брат или сетра, есть необходимость использовать терминал отличный от MT? Боюсь местные правила "О Конкуренции" закрывают эту тему раз и навсегда, делая ее не более чем поисками технических решений вокруг одного разрешенного тут предмета. 51 минуту назад, Player 2 сказал: По ссылке я код писал чтобы проверить как это работает. Тут я стал догадывать, что в пределах чтения данных из МТ все вытаскивали весь и весьма виртуозными способами ... 2 часа назад, DVargo сказал: Если писать в файл раз в секунду или реже - то диск это переживет, для C#, С++.... программеров - это расходники, и писать можно не в один файл, а равномерно заполнять винт кучей файлов. Чисто технически это на самом деле тривиальная задача на 100%, просто потому что есть очень раскрученные СУБД, что в есть та самая работа с файлами. Только развитая по необходимости. У меня сейчас тики так хранятся, я вырезал 99% чтобы влезло как пример. Цитата <?xml version="1.0" encoding="UTF-8"?> <ListOfTick> <tick date="2019.07.17" time="12:59:58.256" bid="109.384" ask="109.400" /> <tick date="2019.07.17" time="12:59:55.832" bid="109.386" ask="109.402" /> <tick date="2019.07.17" time="12:59:55.325" bid="109.385" ask="109.400" broker="Alpari" order="7548965" link="my.lk.operation.http.link" /> <tick date="2019.07.17" time="12:59:55.237" bid="109.384" ask="109.398" /> <tick date="2019.07.17" time="12:59:55.138" bid="109.381" ask="109.396" /> <tick date="2019.07.17" time="12:59:52.222" bid="109.384" ask="109.399" /> <tick date="2019.07.17" time="12:59:51.319" bid="109.385" ask="109.401" /> <tick date="2019.07.17" time="12:59:51.221" bid="109.384" ask="" /> <tick date="2019.07.17" time="12:59:51.015" bid="109.383" ask="109.399" /> <tick date="2019.07.17" time="12:59:50.621" bid="109.381" ask="109.397" /> <tick date="2019.07.17" time="12:59:50.522" bid="109.380" ask="" /> </ListOfTick> XML взял верх в силу возможности разметки, как и хранения истории ... Ну например, я могу сюда добавить выделенное красным, на самом деле это пока не использую. То есть разметка взяла верх, за простоту, гибкость и удобство. Поэтому .txt вылетел в трубу, не выдержал конкуренции, как я не выдержу развития CSV до XML своими силами, когда XML уже есть. Edited October 1, 2019 by postscreen Quote Link to post Share on other sites
postscreen 86 Author Share Posted October 1, 2019 В таком контексте я XML вижу как способ упаковать вообще что только можно, хочется и нужно. Даже производные данные, если они особо ценные, новости, .... ну в целом вообще все что душе угодно в рамках разметки. Правда некоторые конечно надо отдельно хранить как файл, а в XML только ссылку хранить. Иначе файлик будет ой какой не малый .... Ну это конечно, если разойтись сильно. В простом случае все и так хорошо. Quote Link to post Share on other sites
LastHopeMan 132 Share Posted October 26, 2019 Сокеты на 127.0.0.1 на МТ5 и на С# ведь поддерживаются? Открыл и пуляй туда между приложениями через локальный айпю, я бы в эту сторону копал. Ля ля ля, тут ссылка на вроде как документацию Файлы оставьте для МТ4. Quote Ни один план не выдерживает столкновения с противником Link to post Share on other sites
Lazer_dust 0 Share Posted January 22, 2020 Здравствуйте. Я тоже искал способ связать c# c mt5 Нашел 2 способа 1 через именованные каналы https://stackoverflow.com/questions/18160777/interaction-between-mql5-or-c-and-c-sharp-via-named-pipes обсуждение https://bitbucket.org/artemiusgreat/examples/src/master/ исходной код, можно как основу взят 2 через dll http://mtapi4.net/how-to-use/ подключаешь dll к себе в проект а в MT5 запускаешь советник. И можешь из c# иметь полный доступ к MQL Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.