diff options
author | Valentin Popov <valentin@popov.link> | 2025-06-04 11:08:19 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-04 11:08:19 +0300 |
commit | 7240595478fedec02e9e47c704976cf56a66d3e8 (patch) | |
tree | 300165d4ecf00fed03d33b36863370384cbdc7ce /README.md | |
parent | 76dc648f33a9f96e68d5c9000032c2b986bd5a3d (diff) | |
download | go-metatrader4-7240595478fedec02e9e47c704976cf56a66d3e8.tar.xz go-metatrader4-7240595478fedec02e9e47c704976cf56a66d3e8.zip |
First version
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -0,0 +1,47 @@ +# MT4 Client Library + +A lightweight Go client library for interacting with a MetaTrader 4 (MT4) trading server over TCP. + +## Example Usage + +```go +import "go.popov.link/metatrader4/mt4" + +client := mt4.NewClient("127.0.0.1", 443, + mt4.WithDialTimeout(3*time.Second), + mt4.WithAutoClose(true), +) +ctx := context.Background() +params := map[string]string{ + "login": "55555", + "password": "_some_password_", +} +res, err := client.Execute(ctx, "WWAPUSER", params) +``` + +The `Execute` method sends a raw MT4 command. Parameters are encoded using base64 and Windows-1251. +Use `WithAutoClose(false)` if you want to reuse the connection manually via `client.Close()`. + +## Options + +- `WithDialTimeout(d time.Duration)`: Sets the timeout for establishing a TCP connection. Default: 5s. +- `WithReadTimeout(d time.Duration)`: Sets the maximum time to wait for a server response. Default: 5s. +- `WithWriteTimeout(d time.Duration)`: Sets the maximum time to complete sending a request. Default: 5s. +- `WithAutoClose(enabled bool)`: If `true`, closes the connection after each `Execute` (default). Use `false` to reuse the session manually via `client.Close()`. + +## Requirements + +- Go 1.24 or later +- MetaTrader 4 server with TCP access + +## Maintainer & Project Info + +- Vanity import path: `go.popov.link/metatrader4` +- Source mirror (read-only): [code.popov.link](https://code.popov.link/valentineus/go-metatrader4) +- Issues and contributions: [GitHub](https://github.com/valentineus/go-metatrader4/issues) + +Maintained by [Valentin Popov](mailto:valentin@popov.link). + +## License + +This project is licensed under the [MIT License](LICENSE.txt).
\ No newline at end of file |