|
@@ -0,0 +1,45 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "git.beejay.kim/Gshopper/sentio"
|
|
|
+ "github.com/samber/lo"
|
|
|
+)
|
|
|
+
|
|
|
+type portfolio_stub []position_stub
|
|
|
+
|
|
|
+func newStubPortfolio(elem ...position_stub) sentio.Portfolio {
|
|
|
+ var p portfolio_stub
|
|
|
+ p = append(p, elem...)
|
|
|
+
|
|
|
+ return p
|
|
|
+}
|
|
|
+
|
|
|
+func (p portfolio_stub) Get(symbol string) (sentio.Position, bool) {
|
|
|
+ return lo.Find(p, func(item position_stub) bool {
|
|
|
+ return item.symbol == symbol
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+func (p portfolio_stub) Positions() []sentio.Position {
|
|
|
+ return lo.Map(p, func(item position_stub, _ int) sentio.Position {
|
|
|
+ return item
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+type position_stub struct {
|
|
|
+ symbol string
|
|
|
+ size float64
|
|
|
+ price float64
|
|
|
+}
|
|
|
+
|
|
|
+func (p position_stub) GetSize() float64 {
|
|
|
+ return p.size
|
|
|
+}
|
|
|
+
|
|
|
+func (p position_stub) GetAvgPrice() float64 {
|
|
|
+ return p.price
|
|
|
+}
|
|
|
+
|
|
|
+func (p position_stub) GetSymbol() string {
|
|
|
+ return p.symbol
|
|
|
+}
|