mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-10 09:11:55 +00:00
grid: add order amount field
This commit is contained in:
parent
e99b59100b
commit
995f9a9ea0
|
@ -14,8 +14,6 @@ import (
|
||||||
|
|
||||||
var log = logrus.WithField("strategy", "grid")
|
var log = logrus.WithField("strategy", "grid")
|
||||||
|
|
||||||
var position int64 = 0
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// Register the pointer of the strategy struct,
|
// Register the pointer of the strategy struct,
|
||||||
// so that bbgo knows what struct to be used to unmarshal the configs (YAML or JSON)
|
// so that bbgo knows what struct to be used to unmarshal the configs (YAML or JSON)
|
||||||
|
@ -56,6 +54,10 @@ type Strategy struct {
|
||||||
// Quantity is the quantity you want to submit for each order.
|
// Quantity is the quantity you want to submit for each order.
|
||||||
Quantity float64 `json:"quantity"`
|
Quantity float64 `json:"quantity"`
|
||||||
|
|
||||||
|
// OrderAmount is used for fixed amount (dynamic quantity) if you don't want to use fixed quantity.
|
||||||
|
OrderAmount fixedpoint.Value `json:"orderAmount"`
|
||||||
|
|
||||||
|
// Long means you want to hold more base asset than the quote asset.
|
||||||
Long bool `json:"long"`
|
Long bool `json:"long"`
|
||||||
|
|
||||||
// activeOrders is the locally maintained active order book of the maker orders.
|
// activeOrders is the locally maintained active order book of the maker orders.
|
||||||
|
@ -155,8 +157,6 @@ func (s *Strategy) submitReverseOrder(order types.Order) {
|
||||||
var price = order.Price
|
var price = order.Price
|
||||||
var quantity = order.Quantity
|
var quantity = order.Quantity
|
||||||
|
|
||||||
// the original amount
|
|
||||||
var amount = order.Price * order.Quantity
|
|
||||||
|
|
||||||
switch side {
|
switch side {
|
||||||
case types.SideTypeSell:
|
case types.SideTypeSell:
|
||||||
|
@ -165,8 +165,12 @@ func (s *Strategy) submitReverseOrder(order types.Order) {
|
||||||
price -= s.ProfitSpread.Float64()
|
price -= s.ProfitSpread.Float64()
|
||||||
}
|
}
|
||||||
|
|
||||||
// use the same amount to buy more quantity back
|
if s.OrderAmount > 0 {
|
||||||
if s.Long {
|
quantity = s.OrderAmount.Float64() / price
|
||||||
|
} else if s.Long {
|
||||||
|
// long = use the same amount to buy more quantity back
|
||||||
|
// the original amount
|
||||||
|
var amount = order.Price * order.Quantity
|
||||||
quantity = amount / price
|
quantity = amount / price
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user