mirror of
https://github.com/valentineus/go-metatrader4.git
synced 2025-07-07 17:30:28 +03:00
First version
This commit is contained in:
47
README.md
47
README.md
@ -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).
|
Reference in New Issue
Block a user