tarikh / php-mt5
A Metatrader 5 Web API Wrapper for Laravel
This package's canonical repository appears to be gone and the package has been frozen as a result.
Installs: 1 619
Dependents: 1
Suggesters: 0
Security: 0
Stars: 20
Watchers: 6
Forks: 20
Open Issues: 1
README
This is PHP Package for MT5 Web API
Documentation
Installing
To install the package, in terminal:
composer require tarikh/php-mt5
Usage
Create Deposit
use Tarikh\PhpMeta\Entities\Trade; use Tarikh\PhpMeta\LaravelMt5; use Tarikh\PhpMeta\MetaTraderClient; use Tarikh\PhpMeta\Entities\User; use Tarikh\PhpMeta\src\Lib\MTEnDealAction; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $client = new MetaTraderClient($server, $port, $login, $password); $trade = new Trade(); $trade->setLogin(6000189); $trade->setAmount(100); $trade->setComment("Deposit"); $trade->setType(Trade::DEAL_BALANCE); $result = $client->trade($trade);
The result variable will return Trade class with ticket information, you can grab ticket number by calling $result->getTicket()
Create User
use Tarikh\PhpMeta\MetaTraderClient; use Tarikh\PhpMeta\Entities\User; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $client = new MetaTraderClient($server, $port, $login, $password); $user = new User(); $user->setName("John Due"); $user->setEmail("john@due.com"); $user->setGroup("demo\demoforex"); $user->setLeverage("50"); $user->setPhone("0856123456"); $user->setAddress("Sukabumi"); $user->setCity("Sukabumi"); $user->setState("Jawa Barat"); $user->setCountry("Indonesia"); $user->setZipCode(1470); $user->setMainPassword("Secure123"); $user->setInvestorPassword("NotSecure123"); $user->setPhonePassword("NotSecure123"); $result = $client->createUser($user);
The result variable will return User class with login information, you can grab login number by calling $result->getLogin()
Change Client Password
use Tarikh\PhpMeta\MetaTraderClient; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $client = new MetaTraderClient($server, $port, $login, $password); // $type = "MAIN"; // Change $type to INVESTOR if you want to change investor password $client->changePasswordUser($exampleLogin, 'SecurePassword', $type);
Get Order By Ticket ID
use Tarikh\PhpMeta\MetaTraderClient; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $client = new MetaTraderClient($server, $port, $login, $password); $order = $client->getOrder($ticket = 100);
Get User Information
use Tarikh\PhpMeta\MetaTraderClient; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $client = new MetaTraderClient($server, $port, $login, $password); $user = $client->getUser($exampleLogin); var_dump($user);
Get Last Tick (Price)
use Tarikh\PhpMeta\MetaTraderClient; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $client = new MetaTraderClient($server, $port, $login, $password); // symbol — comma separated symbols, the prices of which should be received. The value length must not exceed 4096 characters. You may use the mask "*" and the negation sign "!" to specify groups of symbols. Example. // symbol=EURUSD,USDJPY — get quotes for symbols EURUSD and USDJPY. // symbol=Forex\Major*, GOLD — get quotes of all symbols from the Major subgroup and quotes of GOLD. // symbol=Forex\Crosses*,!AUDUSD — get quotes of all symbols of the Crosses subgroup except AUDUSD. // symbol=Forex\Major\EUR* — get quotes of all symbols with the basic currency EUR from the Major subgroup. $ticks = $client->getLastTick("AUDCAD"); foreach ($ticks as $key => $tick) { echo "{$tick->Symbol} BID {$tick->Bid} {$tick->Ask}\n"; }
Get Chart Data (Price)
use Tarikh\PhpMeta\MetaTraderClient; $server = "SERVER_MT4_IP"; $port = 443; $login = "MANAGER LOGIN"; $password = "API PASSWORD"; $exampleLogin = 21001480007; $api = new MetaTraderClient($server, $port, $login, $password, false); $symbol = 'EURUSD'; $from = 1677710460; $to = 1678576993; $chartBar = $api->chartGet($symbol, $from, $to); var_dump($chartBar);
Todo
- Deposit or Withdrawal
- Create Account
- Change Password
- Get Order By Ticket ID
- Get User Information
- Get Last Tick (Price)
- Get chart data
- Get Accounts
- Remove Account
- Get Trades
- Get Group
Contributing
Thank you for considering contributing to the Laravel MT5! you can fork this repository and make pull request.
Security Vulnerabilities
If you discover a security vulnerability within Laravel MT5, please send an e-mail to Tarikh Agustia via agustia.tarikh150@gmail.com. All security vulnerabilities will be promptly addressed.
License
The Laravel framework is open-source software licensed under the MIT license.