+44 12 2858 8888 info@cplugin.com

.NET Враппер для MetaTrader4 Manager API

"Враппер" означает обертка. В данном случае - вокруг библиотеки "менеджерского" API (ManagerAPI) от MetaQuotes. Ведь для того чтобы использовать ManagerAPI вам, по крайней мере, понадобится знание C++. Наше решение позволит вам использовать множество других очень мощных и удобных в работе языков программирования, особенно C# (Си Шарп) и платформа разработки веб-сайтов ASP.NET а так же не имеющий аналогов скриптовый язык программирования и автоматизации PowerShell.

Этот решение позволяет:

  • автоматизировать рутинную работу со своими торговыми серверами;
  • разрабатывать веб приложения не прибегая к покупке сторонних WebAPI, а общаться напрямую с MT4;
  • снизить стоимость и затраты времени на разработку приложений, которые будут работать с торговыми серверами.

Иными словами, вы сможете быстрее, дешевле, удобнее работать с торговыми серверами. После того как вы научитесь работать с этим продуктом, вы сможете выполнять рутинную работу за считанные минуты.

Для работы с MetaTrader 4 server, вам будут доступны следующие языки программирования:

  • C# (Очень мощный и удобный язык программирования)
  • Visual Basic .NET (Все помнят Basic еще со школьных времен, требования к программисту минимальны)
  • JScript .NET
  • C++/CLI (Managed C++) (Мощь С++ и возможности .NET платформы в одном флаконе)
  • F# (Функциональный язык для сложных математических расчетов)
  • J#
  • PowerShell (Удобный язык "командной строки" современных ОС. Скрипты не требуют компиляции, их можно выполнять по расписанию и изменять код без необходимости компилировать весь проект)

Еще одно большое преимущество данного решения заключается в том, что оно избавит вас от покупки WebAPI. При разработке веб приложений, они смогут "общаться" с торговыми серверами напрямую, без посредников. Вы сможете разрабатывать внутренние системы анализа, управления, сайты для клиентов и пр.

 

Примеры работы

Пополнение счета MT4 с использование скрипта PowerShell

Все что вам потребуется это наш враппер и современную операционную систему Windows. Для вашего удобства написания скриптов Microsoft бесплатно поставляет в комплекте среду разработки и отладки скриптов PowerShell ISE.
После запуска PowerShell ISE вы можете скопировать текст ниже к себе в редактор и выполнить его.
Скрипт настроен на депонирование 100 USD на счет клиента '1000'. Впишите актуальные данные менеджера сервера, от лица которого будет работать скрипт.
Так же вам понадобится NLogкак минимум версии 4.0 чтобы враппер мог сохранять журнал работы.  Скачать NLog бесплатно можно в интернете с сайта разработчиков.
[Reflection.Assembly]::LoadFile($PSScriptRoot + "\NLog.dll")
[Reflection.Assembly]::LoadFile($PSScriptRoot + "\CPlugin.PlatformWrapper.MetaTrader4.dll")

$man = New-Object 'CPlugin.PlatformWrapper.MetaTrader4.Manager' -ArgumentList "127.0.0.1:1443", "1", "Manager" # здесь указываются данные для подключения к торговому серверу, аккаунт менеджера

try {
    $result = $man.Connect()
    if($result -ne 'Ok') {
        $result
        exit
    }
    
    $tti = New-Object CPlugin.PlatformWrapper.MetaTrader4.Classes.TradeTransInfo    
    $tti.TradeCommand = [CPlugin.PlatformWrapper.MetaTrader4.Classes.TradeCommand]::Balance # trade command
    $tti.TradeTransactionType = [CPlugin.PlatformWrapper.MetaTrader4.Classes.TradeTransactionType]::BrBalance # тип транзакции
    $tti.OrderBy = 1000 # логин клиента
    $tti.Price = 100 # сумма
    $tti.Comment = "Deposit" # комментарий к операции
    
    $man.TradeTransaction([ref] $tti);

} finally {
    $man.Disconnect()
}

Тот же пример, но на языке программирования C# 

CPlugin.PlatformWrapper.MetaTrader4.Manager man = null;

try
{
	man = new CPlugin.PlatformWrapper.MetaTrader4.Manager
	      {
		      Server = "127.0.0.1",
		      Login = "1",
		      Password = "Password"
	      };

	var tti = new TradeTransInfo
	          {
		          TradeCommand = TradeCommand.Balance,
		          TradeTransactionType = TradeTransactionType.BrBalance,
		          OrderBy = 1000,
		          Price = 100,
		          Comment = "Deposit"
	          };

	var result = man.TradeTransaction(ref tti);
}
finally
{
	if(man != null)
		man.Disconnect();
}