|
@@ -12,7 +12,6 @@ func CreateOrder(
|
|
action sentio.Action,
|
|
action sentio.Action,
|
|
quotes map[string]sentio.Quote,
|
|
quotes map[string]sentio.Quote,
|
|
rm sentio.RiskManager,
|
|
rm sentio.RiskManager,
|
|
- budget float64,
|
|
|
|
) error {
|
|
) error {
|
|
var (
|
|
var (
|
|
symbol string
|
|
symbol string
|
|
@@ -53,21 +52,21 @@ func CreateOrder(
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
- if account.GetCash() < bid {
|
|
|
|
- return sentio.ErrTooSmallOrder
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
var (
|
|
var (
|
|
|
|
+ cash = account.GetCash()
|
|
ratio float64
|
|
ratio float64
|
|
)
|
|
)
|
|
|
|
|
|
- if ratio = rm.GetOrderSize(symbol, bid); ratio <= 0 {
|
|
|
|
- return sentio.ErrRiskManagementPrevent
|
|
|
|
|
|
+ if budget := m.MaxBudget(); budget > 0 && cash > budget {
|
|
|
|
+ cash = budget
|
|
}
|
|
}
|
|
|
|
|
|
- cash := account.GetCash()
|
|
|
|
- if budget > 0 && cash > budget {
|
|
|
|
- cash = budget
|
|
|
|
|
|
+ if cash < bid {
|
|
|
|
+ return sentio.ErrTooSmallOrder
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ratio = rm.GetOrderSize(symbol, bid); ratio <= 0 {
|
|
|
|
+ return sentio.ErrRiskManagementPrevent
|
|
}
|
|
}
|
|
|
|
|
|
// create a new order
|
|
// create a new order
|