mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
* docs: Create new CODING_GUIDELINES doc Rids excess contribution instructions from other packages Adds AGENTS.md file for the AI overlords Rids unused templates Updates ADD_NEW_EXCHANGE.md with minor fixes * docs: Fix linter issues and minor adjustments based on Copilot feedback * docs: Update coding guidelines for API parameters and testing practices * docs: Remove redundant GoDoc references Adds copilot-instructions.md * docs: Update CODING_GUIDELINES with export recommendations and test commentary * docs: Fix formatting inconsistencies in ADD_NEW_EXCHANGE.md links * docs: Update struct naming conventions for request and response types * docs: Improve clarity and consistency in ADD_NEW_EXCHANGE.md and CODING_GUIDELINES.md * refactor: Simplify error handling in QueryOrder method
21 lines
1.5 KiB
Cheetah
21 lines
1.5 KiB
Cheetah
{{define "backtester eventhandlers exchange" -}}
|
|
{{template "backtester-header" .}}
|
|
## {{.CapitalName}} package overview
|
|
|
|
The exchange eventhandler is responsible for calling the `engine` package's `ordermanager` to place either a fake, or real order on the exchange via API.
|
|
|
|
The following steps are taken for the `ExecuteOrder` function:
|
|
|
|
- Calculate slippage. If the order is a sell order, it will reduce the price by a random percentage between the two values. If it is a buy order, it will raise the price by a random percentage between the two values
|
|
- If `RealOrders` is set to `false`:
|
|
- It will estimate the slippage based on what is in the config file under `min-slippage-percent` and `max-slippage-percent`.
|
|
- It will be sized within the constraints of the current candles OHLCV values
|
|
- It will generate the exchange fee based on what is stored in the config for the exchange asset currency pair
|
|
- If `RealOrders` is set to `true`, it will use the latest orderbook data to calculate slippage by simulating the order
|
|
- Place the order with the engine order manager
|
|
- If `RealOrders` is set to `false` it will submit the order with no calls to the exchange's API, use no API credentials and it will always pass
|
|
- If `RealOrders` is set to `true` it will submit the order via the exchange's API and if successful, will be stored in the order manager
|
|
- If an order is successfully placed, a snapshot of all existing orders in the run will be captured and store for statistical purposes
|
|
|
|
{{template "donations" .}}
|
|
{{end}} |