diff --git a/pkg/indicator/dema.go b/pkg/indicator/dema.go index bec5823292..993d2c4479 100644 --- a/pkg/indicator/dema.go +++ b/pkg/indicator/dema.go @@ -38,8 +38,8 @@ func (inc *DEMA) TestUpdate(value float64) *DEMA { func (inc *DEMA) Update(value float64) { if len(inc.Values) == 0 { inc.SeriesBase.Series = inc - inc.a1 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.a2 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} + inc.a1 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.a2 = &EWMA{IntervalWindow: inc.IntervalWindow} } inc.a1.Update(value) diff --git a/pkg/indicator/hull.go b/pkg/indicator/hull.go index 4352bbba0a..df3e8c5690 100644 --- a/pkg/indicator/hull.go +++ b/pkg/indicator/hull.go @@ -24,9 +24,9 @@ var _ types.SeriesExtend = &HULL{} func (inc *HULL) Update(value float64) { if inc.result == nil { inc.SeriesBase.Series = inc - inc.ma1 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window / 2}} - inc.ma2 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.result = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, int(math.Sqrt(float64(inc.Window)))}} + inc.ma1 = &EWMA{IntervalWindow: types.IntervalWindow{Interval: inc.Interval, Window: inc.Window / 2}} + inc.ma2 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.result = &EWMA{IntervalWindow: types.IntervalWindow{Interval: inc.Interval, Window: int(math.Sqrt(float64(inc.Window)))}} } inc.ma1.Update(value) inc.ma2.Update(value) diff --git a/pkg/indicator/tema.go b/pkg/indicator/tema.go index 37a9f78b00..60affd0e51 100644 --- a/pkg/indicator/tema.go +++ b/pkg/indicator/tema.go @@ -22,9 +22,9 @@ type TEMA struct { func (inc *TEMA) Update(value float64) { if len(inc.Values) == 0 { inc.SeriesBase.Series = inc - inc.A1 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.A2 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.A3 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} + inc.A1 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.A2 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.A3 = &EWMA{IntervalWindow: inc.IntervalWindow} } inc.A1.Update(value) a1 := inc.A1.Last() diff --git a/pkg/indicator/till.go b/pkg/indicator/till.go index 08d64130ac..6c1860b2e3 100644 --- a/pkg/indicator/till.go +++ b/pkg/indicator/till.go @@ -33,12 +33,12 @@ func (inc *TILL) Update(value float64) { inc.VolumeFactor = defaultVolumeFactor } inc.SeriesBase.Series = inc - inc.e1 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.e2 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.e3 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.e4 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.e5 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} - inc.e6 = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} + inc.e1 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.e2 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.e3 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.e4 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.e5 = &EWMA{IntervalWindow: inc.IntervalWindow} + inc.e6 = &EWMA{IntervalWindow: inc.IntervalWindow} square := inc.VolumeFactor * inc.VolumeFactor cube := inc.VolumeFactor * square inc.c1 = -cube diff --git a/pkg/indicator/tma.go b/pkg/indicator/tma.go index 31600f2c42..97c5997d57 100644 --- a/pkg/indicator/tma.go +++ b/pkg/indicator/tma.go @@ -19,8 +19,8 @@ func (inc *TMA) Update(value float64) { if inc.s1 == nil { inc.SeriesBase.Series = inc w := (inc.Window + 1) / 2 - inc.s1 = &SMA{IntervalWindow: types.IntervalWindow{inc.Interval, w}} - inc.s2 = &SMA{IntervalWindow: types.IntervalWindow{inc.Interval, w}} + inc.s1 = &SMA{IntervalWindow: types.IntervalWindow{Interval: inc.Interval, Window: w}} + inc.s2 = &SMA{IntervalWindow: types.IntervalWindow{Interval: inc.Interval, Window: w}} } inc.s1.Update(value) diff --git a/pkg/indicator/zlema.go b/pkg/indicator/zlema.go index cb7dfbde35..482ecd09d3 100644 --- a/pkg/indicator/zlema.go +++ b/pkg/indicator/zlema.go @@ -43,7 +43,7 @@ func (inc *ZLEMA) Length() int { func (inc *ZLEMA) Update(value float64) { if inc.lag == 0 || inc.zlema == nil { inc.SeriesBase.Series = inc - inc.zlema = &EWMA{IntervalWindow: types.IntervalWindow{inc.Interval, inc.Window}} + inc.zlema = &EWMA{IntervalWindow: inc.IntervalWindow} inc.lag = int((float64(inc.Window)-1.)/2. + 0.5) } inc.data.Push(value) diff --git a/pkg/strategy/bollmaker/strategy.go b/pkg/strategy/bollmaker/strategy.go index a59aae43b1..8d1f0d3251 100644 --- a/pkg/strategy/bollmaker/strategy.go +++ b/pkg/strategy/bollmaker/strategy.go @@ -434,8 +434,8 @@ func (s *Strategy) Run(ctx context.Context, orderExecutor bbgo.OrderExecutor, se // Setup dynamic spread if s.DynamicSpread.Enabled { - s.DynamicSpread.DynamicBidSpread = &indicator.SMA{IntervalWindow: types.IntervalWindow{s.Interval, s.DynamicSpread.Window}} - s.DynamicSpread.DynamicAskSpread = &indicator.SMA{IntervalWindow: types.IntervalWindow{s.Interval, s.DynamicSpread.Window}} + s.DynamicSpread.DynamicBidSpread = &indicator.SMA{IntervalWindow: types.IntervalWindow{Interval: s.Interval, Window: s.DynamicSpread.Window}} + s.DynamicSpread.DynamicAskSpread = &indicator.SMA{IntervalWindow: types.IntervalWindow{Interval: s.Interval, Window: s.DynamicSpread.Window}} } if s.DisableShort {