mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-10 09:11:55 +00:00
Compare commits
6 Commits
f2a443a499
...
3cc96ff6ad
Author | SHA1 | Date | |
---|---|---|---|
|
3cc96ff6ad | ||
|
6ea996bec4 | ||
|
ef935f8ca0 | ||
|
a282654c02 | ||
|
336dd7a108 | ||
|
9d581adc04 |
|
@ -17,7 +17,7 @@ TELEGRAM_BOT_TOKEN=347374838:ABFTjfiweajfiawoejfiaojfeijoaef
|
|||
```
|
||||
|
||||
For the telegram chat authentication (your bot needs to verify it's you), if you only need a fixed authentication token,
|
||||
you can set `TELEGRAM_AUTH_TOKEN` in the `.env.local` file, e.g.,
|
||||
you can set `TELEGRAM_BOT_AUTH_TOKEN` in the `.env.local` file, e.g.,
|
||||
|
||||
```sh
|
||||
TELEGRAM_BOT_AUTH_TOKEN=itsme55667788
|
||||
|
|
|
@ -16,8 +16,18 @@ import (
|
|||
)
|
||||
|
||||
// Strategy method calls:
|
||||
// -> Initialize() (optional method)
|
||||
// -> Defaults() (optional method)
|
||||
//
|
||||
// setup default static values from constants
|
||||
//
|
||||
// -> Initialize() (optional method)
|
||||
//
|
||||
// initialize dynamic runtime objects
|
||||
//
|
||||
// -> Subscribe()
|
||||
//
|
||||
// register the subscriptions
|
||||
//
|
||||
// -> Validate() (optional method)
|
||||
// -> Run() (optional method)
|
||||
// -> Shutdown(shutdownCtx context.Context, wg *sync.WaitGroup)
|
||||
|
@ -171,12 +181,6 @@ func (trader *Trader) SetRiskControls(riskControls *RiskControls) {
|
|||
func (trader *Trader) RunSingleExchangeStrategy(
|
||||
ctx context.Context, strategy SingleExchangeStrategy, session *ExchangeSession, orderExecutor OrderExecutor,
|
||||
) error {
|
||||
if v, ok := strategy.(StrategyValidator); ok {
|
||||
if err := v.Validate(); err != nil {
|
||||
return fmt.Errorf("failed to validate the config: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
if shutdown, ok := strategy.(StrategyShutdown); ok {
|
||||
trader.gracefulShutdown.OnShutdown(shutdown.Shutdown)
|
||||
}
|
||||
|
@ -238,12 +242,6 @@ func (trader *Trader) injectFieldsAndSubscribe(ctx context.Context) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if defaulter, ok := strategy.(StrategyDefaulter); ok {
|
||||
if err := defaulter.Defaults(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
if subscriber, ok := strategy.(ExchangeSessionSubscriber); ok {
|
||||
subscriber.Subscribe(session)
|
||||
} else {
|
||||
|
@ -304,12 +302,6 @@ func (trader *Trader) injectFieldsAndSubscribe(ctx context.Context) error {
|
|||
}
|
||||
}
|
||||
|
||||
if initializer, ok := strategy.(StrategyInitializer); ok {
|
||||
if err := initializer.Initialize(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if subscriber, ok := strategy.(CrossExchangeSessionSubscriber); ok {
|
||||
subscriber.CrossSubscribe(trader.environment.sessions)
|
||||
} else {
|
||||
|
@ -356,8 +348,23 @@ func (trader *Trader) Run(ctx context.Context) error {
|
|||
return trader.environment.Connect(ctx)
|
||||
}
|
||||
|
||||
// Initialize initializes the strategies, this method is called before the Run method.
|
||||
// It sets the default values and validates the strategy configurations.
|
||||
// And calls the Initialize method if the strategy implements the Initialize method.
|
||||
func (trader *Trader) Initialize(ctx context.Context) error {
|
||||
return trader.IterateStrategies(func(strategy StrategyID) error {
|
||||
if defaulter, ok := strategy.(StrategyDefaulter); ok {
|
||||
if err := defaulter.Defaults(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v, ok := strategy.(StrategyValidator); ok {
|
||||
if err := v.Validate(); err != nil {
|
||||
return fmt.Errorf("found invalid strategy config: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
if initializer, ok := strategy.(StrategyInitializer); ok {
|
||||
return initializer.Initialize()
|
||||
}
|
||||
|
|
|
@ -440,9 +440,9 @@ for t in 1 .. n:
|
|||
return argmax(alpha[t,si] over si)
|
||||
*/
|
||||
func hmm(y_t []float64, x_t []float64, l int) float64 {
|
||||
al := make([]float64, l)
|
||||
an := make([]float64, l)
|
||||
as := make([]float64, l)
|
||||
al := make([]float64, 0, l)
|
||||
an := make([]float64, 0, l)
|
||||
as := make([]float64, 0, l)
|
||||
long := 0.
|
||||
neut := 0.
|
||||
short := 0.
|
||||
|
@ -453,9 +453,9 @@ func hmm(y_t []float64, x_t []float64, l int) float64 {
|
|||
sin := make([]float64, 3)
|
||||
sis := make([]float64, 3)
|
||||
for i := -1; i <= 1; i++ {
|
||||
sil = append(sil, x_t[n-1-1]*transitProbability(i, j))
|
||||
sin = append(sin, x_t[n-1-1]*transitProbability(i, j))
|
||||
sis = append(sis, x_t[n-1-1]*transitProbability(i, j))
|
||||
sil = append(sil, 0, x_t[n-1-1]*transitProbability(i, j))
|
||||
sin = append(sin, 0, x_t[n-1-1]*transitProbability(i, j))
|
||||
sis = append(sis, 0, x_t[n-1-1]*transitProbability(i, j))
|
||||
}
|
||||
if j > 0 {
|
||||
_, longArr := floats.MinMax(sil, 3)
|
||||
|
|
Loading…
Reference in New Issue
Block a user