Jump to content
Sign in to follow this  
postscreen

C# for the MT5?

Recommended Posts

postscreen

Сложилась ситуация, когда есть визуальная среда Microsoft Visual Studio 2019, Community. Само собой ее средства связи и являются исчерпывающим что мне доступно. Есть потребность в максимально простом, доступном способе получения тиков в реальном времени. Ну то есть расчетном времени, при регулярных сверках.

 

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

 

Что делать? Просьба писать в духе:


Средства C#:

Цитата

 

using System.Web;
using System.Net.Http;

HttpClient AccountsOfIG = new HttpClient();

 

 

Средства MT5:

Цитата

Тут загадка ...

 


Сегодня мой настрой обычный, как ловко описали тут.

Я не такой совсем циничный, но не вернешь ты пять .... Минут.

Share this post


Link to post
Share on other sites
Ugar68

Можно использовать файлы. Но для котировок это не очень. Лучше именованные каналы.

Есть пару статей на эту тему у метаквотов, может помогут.

https://www.mql5.com/ru/articles/115

https://www.mql5.com/ru/articles/503


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
postscreen
24 минуты назад, Ugar68 сказал:

Можно использовать файлы.

А можно поподробнее, мне очевидным кажется только писать для MT, после эти файлы читать ... Иного просто не вижу.

p.s. Остальное почитаю, спасибо, название правда первый раз слышу такое. Прочитал цели ... стало страшновато ...

Edited by postscreen

Сегодня мой настрой обычный, как ловко описали тут.

Я не такой совсем циничный, но не вернешь ты пять .... Минут.

Share this post


Link to post
Share on other sites
Ugar68
12 часов назад, postscreen сказал:

А можно поподробнее, мне очевидным кажется только писать для MT, после эти файлы читать ... Иного просто не вижу.

p.s. Остальное почитаю, спасибо, название правда первый раз слышу такое. Прочитал цели ... стало страшновато ...

Как засунуть слона в холодильник. Очень просто, в 3 этапа. Открыть холодильник, засунуть слона, закрыть холодильник.

С файлами то же самое. Открыть файл, засунуть в него нужные данные, закрыть файл. Что бы не использовать лишних DLL, писать файлы в песочницу, специально отведённую локальную или общую папки.

Ну а программе на С без разницы от куда брать файл. Так же, открыть файл, достать данные, закрыть файл.

Только при открытии надо обязательно убеждаться что открылся, что бы не подрались писалка с читалкой.

Всё есть в справочнике по MQL5.

Но мне кажется что мучить диск на каждом тике - тупо. Диск для хранения, а не для перезаписи на каждом тике. Именованные каналы, похожи на файлы, только в оперативке. Проблема в том что в справочнике про них ни слова. Но в библиотеке классов есть Include\Files\FilePipe.mqh. Думаю это то что нужно. Одна из статей, ссылки на которые я давал ранее, поможет разобраться.

ps Сам не пробовал, только интересовался. Не было надобности. Обходился файлами, так как данные надо было не только передавать, но и сохранять, для использования после перезапуска терминала. Да и изменения были не такие частые как тики.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
postscreen
21 час назад, Ugar68 сказал:

Но мне кажется что мучить диск на каждом тике - тупо. Диск для хранения, а не для перезаписи на каждом тике. Именованные каналы, похожи на файлы, только в оперативке. Проблема в том что в справочнике про них ни слова. Но в библиотеке классов есть Include\Files\FilePipe.mqh. Думаю это то что нужно. Одна из статей, ссылки на которые я давал ранее, поможет разобраться.

На каждом тике тупо слов нет, да на самом деле и смысла нет, я же не ищу Лучшую цену в конце концов, доволен просто хорошей. :) Но выглядит все тяжко, в том смысле что каналы эти не понимаю я пока ... Бррр, в общем спасибо, если там есть решение мне явно нужно с ним разбираться и оно чуть сложнее чем могло бы быть ... То есть как то не описано. Но вспомниная МТ и его документация про "думки трейдера", относительно выбор Type я вообще к этому отношусь очень спокойно 😂


Сегодня мой настрой обычный, как ловко описали тут.

Я не такой совсем циничный, но не вернешь ты пять .... Минут.

Share this post


Link to post
Share on other sites
DVargo

А у меня такой вопрос, а из чего следует, что пайпы в памяти а не на диске?

 

Тогда можно и буфер обмена использовать через Win api, ну или в открытый блокнот писать и из него же читать.

Не ясно только цель данного мероприятия.

Нафига все передавать в C#  если MQL родной брат или сетра,

есть необходимость использовать терминал отличный от MT?

 

Если писать в файл раз в секунду или реже - то диск это переживет, для C#, С++.... программеров - это расходники,

и писать можно не в один файл, а равномерно заполнять винт кучей файлов.

Share this post


Link to post
Share on other sites
Player 2
Posted (edited)
1 hour ago, DVargo said:

А у меня такой вопрос, а из чего следует, что пайпы в памяти а не на диске?

Где-то в документации по ним это написано. Они обертка над memory-mapped-файлами с приделанными механизмами синхронизации, которые у чистых memory-mapped-файлов отсутствуют.

Я использовал memory-mapped-файлы для обмена данными, всю синхронизацию делал сам (пайпы не использовал и даже не знал о них). Несмотря на то что они называются файлами, их можно использовать в режиме при котором они существуют только в памяти и на диске ничего не создается.

 

По ссылке я код писал чтобы проверить как это работает.

 

 

Edited by Player 2

Share this post


Link to post
Share on other sites
postscreen
Posted (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 by postscreen

Сегодня мой настрой обычный, как ловко описали тут.

Я не такой совсем циничный, но не вернешь ты пять .... Минут.

Share this post


Link to post
Share on other sites
postscreen

В таком контексте я XML вижу как способ упаковать вообще что только можно, хочется и нужно. Даже производные данные, если они особо ценные, новости, .... ну в целом вообще все что душе угодно в рамках разметки. Правда некоторые конечно надо отдельно хранить как файл, а в XML только ссылку хранить. Иначе файлик будет ой какой не малый .... Ну это конечно, если разойтись сильно. В простом случае все и так хорошо.


Сегодня мой настрой обычный, как ловко описали тут.

Я не такой совсем циничный, но не вернешь ты пять .... Минут.

Share this post


Link to post
Share on other sites
LastHopeMan

Сокеты на 127.0.0.1 на МТ5 и на С# ведь поддерживаются? Открыл и пуляй туда между приложениями через локальный айпю, я бы в эту сторону копал. 

Ля ля ля, тут ссылка на вроде как документацию

Файлы оставьте для МТ4. 


Ни один план не выдерживает столкновения с противником

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×