spoiledwit/meta-five

Metatrader 5 Web API 的 Laravel 封装库

资助包维护!
aleedhillon

dev-master 2024-03-11 15:34 UTC

This package is auto-updated.

Last update: 2024-09-11 16:38:29 UTC


README

这是 Laravel 8.x 的 Metatrader 5 Web API 封装库

文档

Packagist

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

安装

要安装此包,请在终端中

composer require aleedhillon/meta-five

配置

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

AleeDhillon\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 AleeDhillon\MetaFive\Entities\Trade;
use AleeDhillon\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 AleeDhillon\MetaFive\Entities\User;
use AleeDhillon\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 AleeDhillon\MetaFive\Facades\Client;

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

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

按登录号获取交易历史

use AleeDhillon\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 AleeDhillon\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 许可证 的许可。