brokeragecheap/meta-five

Metatrader 5 Web API Wrapper for Laravel

dev-main 2024-07-08 13:54 UTC

This package is not auto-updated.

Last update: 2024-09-17 13:01:43 UTC


README

这是用于 Metatrader 5 Web API 的 Laravel 8.x 包包装库

文档

Packagist

https://packagist.org.cn/packages/BrokerageCheap/meta-five.

安装

要安装此包,请在终端中

composer require BrokerageCheap/meta-five

配置

如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组

BrokerageCheap\MetaFive\MetaFiveProvider::class,

使用发布命令将包配置复制到您的本地配置

php artisan vendor:publish --tag=meta-five-config

然后您可以使用此 .env 值配置与 MT5 的连接信息

MT5_SERVER_IP=
MT5_SERVER_PORT=
MT5_SERVER_WEB_LOGIN=
MT5_SERVER_WEB_PASSWORD=

用法

创建存款

您可以通过给相同的 trade 方法提供负数来提款。

use BrokerageCheap\MetaFive\Entities\Trade;
use BrokerageCheap\MetaFive\Facades\Client;

$trade = new Trade();
$trade->setLogin(6000189);
$trade->setAmount(100);
$trade->setComment("Deposit");
$trade->setType(Trade::DEAL_BALANCE);
$result = Client::trade($trade);

结果变量将返回带有票据信息的 Trade 类,您可以通过调用 $result->getTicket() 来获取票据号

创建用户

use BrokerageCheap\MetaFive\Entities\User;
use BrokerageCheap\MetaFive\Facades\Client;

$user = new User();
$user->setName("John Doe");
$user->setEmail("johndoe@example.com");
$user->setGroup("demo\demoforex");
$user->setLeverage("50");
$user->setPhone("0123456789");
$user->setAddress("Lahore");
$user->setCity("Lahore");
$user->setState("Punjab");
$user->setCountry("Pakistan");
$user->setZipCode(1470);
$user->setMainPassword("secret");
$user->setInvestorPassword("secret");
$user->setPhonePassword("secret");

$result = Client::createUser($user);

获取交易账户信息

use BrokerageCheap\MetaFive\Facades\Client;

$user = Client::getTradingAccounts($login);

$balance = $user->Balance;
$equity = $user->Equity;
$freeMargin = $user->MarginFree;

通过登录号获取交易历史

use BrokerageCheap\MetaFive\Facades\Client;

// Get Closed Order Total and pagination
$total = Client::getOrderHistoryTotal($exampleLogin, $timestampfrom, $timestampto);
$trades = Client::getOrderHistoryPagination($exampleLogin, $timestampfrom, $timestampto, 0, $total);
foreach ($trades as $trade) {
    // see class MTOrder
    echo "LOGIN : ".$trade->Login.PHP_EOL;
    echo "TICKET : ".$trade->Order.PHP_EOL;
}

开仓订单

use BrokerageCheap\MetaFive\Facades\Client;
Client::dealerSend([
    'Login' => 8113,
    'Symbol' => 'XAUUSD',
    'Volume' => 100,
    'Type' => 0
});

结果变量将返回带有登录信息的 User 类,您可以通过调用 $result->getLogin() 来获取登录号

待办事项

  • 存款或提款
  • 创建账户
  • 开仓订单
  • 获取交易账户信息
  • 更改密码
  • 创建组
  • 删除组
  • 获取账户
  • 删除账户
  • 获取交易
  • 获取组

这是正在进行中的工作,我可能会改进这个包,或者使用 Laravel 9 和 PHP 8 的支持重写整个包。在这个版本中,我没有对核心做太多改动,在下一个版本中,我打算重写核心。

鸣谢

感谢 Tarikh Agustia 编写了以下两个包,我从这些包中重写了当前的包,并进行了改进,比如使用 Laravel 单例模式来提高速度和减少对 MT5 的 API 调用。

贡献

感谢您考虑为 MetaFive 做出贡献!您可以分叉此存储库并创建 pull request。

安全漏洞

如果您在 MetaFive 中发现安全漏洞,请通过 aleedhx@gmail.com 发送电子邮件给 Ali A. Dhillon。所有安全漏洞都将得到及时处理。

许可

MetaFive 包是开源软件,根据 MIT 许可证 许可。