Skip to content

Commit 3b8b178

Browse files
committed
rn func, same line err gk4202000
1 parent 4246525 commit 3b8b178

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+213
-243
lines changed

backtester/data/data.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
// NewHandlerHolder returns a new HandlerHolder
1616
func NewHandlerHolder() *HandlerHolder {
1717
return &HandlerHolder{
18-
data: make(map[key.ExchangePairAsset]Handler),
18+
data: make(map[key.ExchangeAssetPair]Handler),
1919
}
2020
}
2121

@@ -27,10 +27,10 @@ func (h *HandlerHolder) SetDataForCurrency(e string, a asset.Item, p currency.Pa
2727
h.m.Lock()
2828
defer h.m.Unlock()
2929
if h.data == nil {
30-
h.data = make(map[key.ExchangePairAsset]Handler)
30+
h.data = make(map[key.ExchangeAssetPair]Handler)
3131
}
3232
e = strings.ToLower(e)
33-
h.data[key.NewExchangePairAssetKey(e, a, p)] = k
33+
h.data[key.NewExchangeAssetPair(e, a, p)] = k
3434
return nil
3535
}
3636

@@ -61,7 +61,7 @@ func (h *HandlerHolder) GetDataForCurrency(ev common.Event) (Handler, error) {
6161
exch := ev.GetExchange()
6262
a := ev.GetAssetType()
6363
p := ev.Pair()
64-
handler, ok := h.data[key.NewExchangePairAssetKey(exch, a, p)]
64+
handler, ok := h.data[key.NewExchangeAssetPair(exch, a, p)]
6565
if !ok {
6666
return nil, fmt.Errorf("%s %s %s %w", exch, a, p, ErrHandlerNotFound)
6767
}
@@ -75,7 +75,7 @@ func (h *HandlerHolder) Reset() error {
7575
}
7676
h.m.Lock()
7777
defer h.m.Unlock()
78-
h.data = make(map[key.ExchangePairAsset]Handler)
78+
h.data = make(map[key.ExchangeAssetPair]Handler)
7979
return nil
8080
}
8181

backtester/data/data_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func TestSetDataForCurrency(t *testing.T) {
4040
if d.data == nil {
4141
t.Error("expected not nil")
4242
}
43-
if d.data[key.NewExchangePairAssetKey(exch, a, p)] != nil {
43+
if d.data[key.NewExchangeAssetPair(exch, a, p)] != nil {
4444
t.Error("expected nil")
4545
}
4646
}

backtester/data/data_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var (
2929
// HandlerHolder stores an event handler per exchange asset pair
3030
type HandlerHolder struct {
3131
m sync.Mutex
32-
data map[key.ExchangePairAsset]Handler
32+
data map[key.ExchangeAssetPair]Handler
3333
}
3434

3535
// Holder interface dictates what a Data holder is expected to do

backtester/engine/backtest_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ func TestFullCycle(t *testing.T) {
424424
tt := time.Now()
425425

426426
stats := &statistics.Statistic{}
427-
stats.ExchangeAssetPairStatistics = make(map[key.ExchangePairAsset]*statistics.CurrencyPairStatistic)
427+
stats.ExchangeAssetPairStatistics = make(map[key.ExchangeAssetPair]*statistics.CurrencyPairStatistic)
428428
port, err := portfolio.Setup(&size.Size{
429429
BuySide: exchange.MinMax{},
430430
SellSide: exchange.MinMax{},
@@ -542,7 +542,7 @@ func TestFullCycleMulti(t *testing.T) {
542542
tt := time.Now()
543543

544544
stats := &statistics.Statistic{}
545-
stats.ExchangeAssetPairStatistics = make(map[key.ExchangePairAsset]*statistics.CurrencyPairStatistic)
545+
stats.ExchangeAssetPairStatistics = make(map[key.ExchangeAssetPair]*statistics.CurrencyPairStatistic)
546546

547547
port, err := portfolio.Setup(&size.Size{
548548
BuySide: exchange.MinMax{},

backtester/engine/setup.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ func (bt *BackTest) SetupFromConfig(cfg *config.Config, templatePath, output str
194194
}
195195

196196
portfolioRisk := &risk.Risk{
197-
CurrencySettings: make(map[key.ExchangePairAsset]*risk.CurrencySettings),
197+
CurrencySettings: make(map[key.ExchangeAssetPair]*risk.CurrencySettings),
198198
}
199199

200200
bt.Funding = funds
@@ -234,7 +234,7 @@ func (bt *BackTest) SetupFromConfig(cfg *config.Config, templatePath, output str
234234
err)
235235
}
236236
if portfolioRisk.CurrencySettings == nil {
237-
portfolioRisk.CurrencySettings = make(map[key.ExchangePairAsset]*risk.CurrencySettings)
237+
portfolioRisk.CurrencySettings = make(map[key.ExchangeAssetPair]*risk.CurrencySettings)
238238
}
239239

240240
var curr currency.Pair
@@ -261,7 +261,7 @@ func (bt *BackTest) SetupFromConfig(cfg *config.Config, templatePath, output str
261261
portSet.MaximumOrdersWithLeverageRatio = cfg.CurrencySettings[i].FuturesDetails.Leverage.MaximumOrdersWithLeverageRatio
262262
portSet.MaxLeverageRate = cfg.CurrencySettings[i].FuturesDetails.Leverage.MaximumOrderLeverageRate
263263
}
264-
portfolioRisk.CurrencySettings[key.NewExchangePairAssetKey(cfg.CurrencySettings[i].ExchangeName, a, curr)] = portSet
264+
portfolioRisk.CurrencySettings[key.NewExchangeAssetPair(cfg.CurrencySettings[i].ExchangeName, a, curr)] = portSet
265265
if cfg.CurrencySettings[i].MakerFee != nil &&
266266
cfg.CurrencySettings[i].TakerFee != nil &&
267267
cfg.CurrencySettings[i].MakerFee.GreaterThan(*cfg.CurrencySettings[i].TakerFee) {
@@ -393,7 +393,7 @@ func (bt *BackTest) SetupFromConfig(cfg *config.Config, templatePath, output str
393393
StrategyNickname: cfg.Nickname,
394394
StrategyDescription: bt.Strategy.Description(),
395395
StrategyGoal: cfg.Goal,
396-
ExchangeAssetPairStatistics: make(map[key.ExchangePairAsset]*statistics.CurrencyPairStatistic),
396+
ExchangeAssetPairStatistics: make(map[key.ExchangeAssetPair]*statistics.CurrencyPairStatistic),
397397
RiskFreeRate: cfg.StatisticSettings.RiskFreeRate,
398398
CandleInterval: cfg.DataSettings.Interval,
399399
FundManager: bt.Funding,

backtester/eventhandlers/portfolio/portfolio.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (p *Portfolio) OnSignal(ev signal.Event, exchangeSettings *exchange.Setting
5656
return o, errInvalidDirection
5757
}
5858

59-
lookup := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(ev.GetExchange(), ev.GetAssetType(), ev.Pair())]
59+
lookup := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(ev.GetExchange(), ev.GetAssetType(), ev.Pair())]
6060
if lookup == nil {
6161
return nil, fmt.Errorf("%w for %v %v %v",
6262
errNoPortfolioSettings,
@@ -235,7 +235,7 @@ func (p *Portfolio) OnFill(ev fill.Event, funds funding.IFundReleaser) (fill.Eve
235235
if ev == nil {
236236
return nil, common.ErrNilEvent
237237
}
238-
lookup := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(ev.GetExchange(), ev.GetAssetType(), ev.Pair())]
238+
lookup := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(ev.GetExchange(), ev.GetAssetType(), ev.Pair())]
239239
if lookup == nil {
240240
return nil, fmt.Errorf("%w for %v %v %v", errNoPortfolioSettings, ev.GetExchange(), ev.GetAssetType(), ev.Pair())
241241
}
@@ -300,7 +300,7 @@ func (p *Portfolio) addComplianceSnapshot(fillEvent fill.Event) error {
300300

301301
// GetLatestOrderSnapshotForEvent gets orders related to the event
302302
func (p *Portfolio) GetLatestOrderSnapshotForEvent(ev common.Event) (compliance.Snapshot, error) {
303-
eapSettings, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(ev.GetExchange(), ev.GetAssetType(), ev.Pair())]
303+
eapSettings, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(ev.GetExchange(), ev.GetAssetType(), ev.Pair())]
304304
if !ok {
305305
return compliance.Snapshot{}, fmt.Errorf("%w for %v %v %v", errNoPortfolioSettings, ev.GetExchange(), ev.GetAssetType(), ev.Pair())
306306
}
@@ -332,7 +332,7 @@ func (p *Portfolio) GetLatestComplianceSnapshot(exchangeName string, a asset.Ite
332332

333333
// getComplianceManager returns the order snapshots for a given exchange, asset, pair
334334
func (p *Portfolio) getComplianceManager(exchangeName string, a asset.Item, cp currency.Pair) (*compliance.Manager, error) {
335-
lookup := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(exchangeName, a, cp)]
335+
lookup := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(exchangeName, a, cp)]
336336
if lookup == nil {
337337
return nil, fmt.Errorf("%w for %v %v %v could not retrieve compliance manager", errNoPortfolioSettings, exchangeName, a, cp)
338338
}
@@ -595,7 +595,7 @@ func (p *Portfolio) getFuturesSettingsFromEvent(e common.Event) (*Settings, erro
595595

596596
func (p *Portfolio) getSettings(exch string, item asset.Item, pair currency.Pair) (*Settings, error) {
597597
exch = strings.ToLower(exch)
598-
settings, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(exch, item, pair)]
598+
settings, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(exch, item, pair)]
599599
if !ok {
600600
return nil, fmt.Errorf("%w for %v %v %v", errNoPortfolioSettings, exch, item, pair)
601601
}

backtester/eventhandlers/portfolio/portfolio_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ var leet = decimal.NewFromInt(1337)
3636
func TestReset(t *testing.T) {
3737
t.Parallel()
3838
p := &Portfolio{
39-
exchangeAssetPairPortfolioSettings: make(map[key.ExchangePairAsset]*Settings),
39+
exchangeAssetPairPortfolioSettings: make(map[key.ExchangeAssetPair]*Settings),
4040
}
4141
err := p.Reset()
4242
assert.NoError(t, err)
@@ -578,7 +578,7 @@ func TestGetSnapshotAtTime(t *testing.T) {
578578
assert.NoError(t, err)
579579

580580
tt := time.Now()
581-
s, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(testExchange, asset.Spot, cp)]
581+
s, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(testExchange, asset.Spot, cp)]
582582
if !ok {
583583
t.Fatal("couldn't get settings")
584584
}
@@ -627,7 +627,7 @@ func TestGetLatestSnapshot(t *testing.T) {
627627
ff.Name = testExchange
628628
err = p.SetCurrencySettingsMap(&exchange.Settings{Exchange: ff, Asset: asset.Spot, Pair: currency.NewPair(currency.XRP, currency.DOGE)})
629629
require.NoError(t, err, "SetCurrencySettingsMap must not error")
630-
s, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(testExchange, asset.Spot, cp)]
630+
s, ok := p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(testExchange, asset.Spot, cp)]
631631
if !ok {
632632
t.Fatal("couldn't get settings")
633633
}
@@ -729,8 +729,8 @@ func TestCalculatePNL(t *testing.T) {
729729
FuturesTracker: mpt,
730730
}
731731

732-
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangePairAsset]*Settings)
733-
p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(testExchange, a, pair)] = s
732+
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangeAssetPair]*Settings)
733+
p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(testExchange, a, pair)] = s
734734
ev.Close = leet
735735
err = s.ComplianceManager.AddSnapshot(&compliance.Snapshot{
736736
Timestamp: tt0,
@@ -958,8 +958,8 @@ func TestGetLatestPNLForEvent(t *testing.T) {
958958
FuturesTracker: mpt,
959959
}
960960

961-
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangePairAsset]*Settings)
962-
p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(testExchange, asset.Futures, ev.Pair())] = s
961+
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangeAssetPair]*Settings)
962+
p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(testExchange, asset.Futures, ev.Pair())] = s
963963
err = s.FuturesTracker.TrackNewOrder(&gctorder.Detail{
964964
Exchange: ev.GetExchange(),
965965
AssetType: ev.AssetType,
@@ -1253,8 +1253,8 @@ func TestCreateLiquidationOrdersForExchange(t *testing.T) {
12531253
err = settings.FuturesTracker.TrackNewOrder(od)
12541254
assert.NoError(t, err)
12551255

1256-
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangePairAsset]*Settings)
1257-
p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(testExchange, asset.Spot, ev.Pair())] = settings
1256+
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangeAssetPair]*Settings)
1257+
p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(testExchange, asset.Spot, ev.Pair())] = settings
12581258

12591259
ev.Exchange = ff.Name
12601260
ev.AssetType = asset.Futures
@@ -1362,8 +1362,8 @@ func TestCheckLiquidationStatus(t *testing.T) {
13621362
err = settings.FuturesTracker.TrackNewOrder(od)
13631363
assert.NoError(t, err)
13641364

1365-
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangePairAsset]*Settings)
1366-
p.exchangeAssetPairPortfolioSettings[key.NewExchangePairAssetKey(testExchange, asset.Futures, ev.Pair())] = settings
1365+
p.exchangeAssetPairPortfolioSettings = make(map[key.ExchangeAssetPair]*Settings)
1366+
p.exchangeAssetPairPortfolioSettings[key.NewExchangeAssetPair(testExchange, asset.Futures, ev.Pair())] = settings
13671367
err = p.CheckLiquidationStatus(ev, collat, pnl)
13681368
assert.NoError(t, err)
13691369
}

backtester/eventhandlers/portfolio/portfolio_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type Portfolio struct {
4545
riskFreeRate decimal.Decimal
4646
sizeManager SizeHandler
4747
riskManager risk.Handler
48-
exchangeAssetPairPortfolioSettings map[key.ExchangePairAsset]*Settings
48+
exchangeAssetPairPortfolioSettings map[key.ExchangeAssetPair]*Settings
4949
}
5050

5151
// Handler contains all functions expected to operate a portfolio manager

backtester/eventhandlers/portfolio/risk/risk.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func (r *Risk) EvaluateOrder(o order.Event, latestHoldings []holdings.Holding, s
2626
e := o.GetExchange()
2727
a := o.GetAssetType()
2828
p := o.Pair().Format(currency.EMPTYFORMAT)
29-
lookup, ok := r.CurrencySettings[key.NewExchangePairAssetKey(e, a, p)]
29+
lookup, ok := r.CurrencySettings[key.NewExchangeAssetPair(e, a, p)]
3030
if !ok {
3131
return nil, fmt.Errorf("%v %v %v %w", e, a, p, errNoCurrencySettings)
3232
}

backtester/eventhandlers/portfolio/risk/risk_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ func TestEvaluateOrder(t *testing.T) {
6868
},
6969
}
7070
h := []holdings.Holding{}
71-
r.CurrencySettings = make(map[key.ExchangePairAsset]*CurrencySettings)
71+
r.CurrencySettings = make(map[key.ExchangeAssetPair]*CurrencySettings)
7272
_, err = r.EvaluateOrder(o, h, compliance.Snapshot{})
7373
assert.ErrorIs(t, err, errNoCurrencySettings)
7474

75-
r.CurrencySettings[key.NewExchangePairAssetKey(e, a, p)] = &CurrencySettings{
75+
r.CurrencySettings[key.NewExchangeAssetPair(e, a, p)] = &CurrencySettings{
7676
MaximumOrdersWithLeverageRatio: decimal.NewFromFloat(0.3),
7777
MaxLeverageRate: decimal.NewFromFloat(0.3),
7878
MaximumHoldingRatio: decimal.NewFromFloat(0.3),
@@ -89,7 +89,7 @@ func TestEvaluateOrder(t *testing.T) {
8989
Pair: currency.NewPair(currency.DOGE, currency.USDT),
9090
})
9191
o.Leverage = decimal.NewFromFloat(1.1)
92-
r.CurrencySettings[key.NewExchangePairAssetKey(e, a, p)].MaximumHoldingRatio = decimal.Zero
92+
r.CurrencySettings[key.NewExchangeAssetPair(e, a, p)].MaximumHoldingRatio = decimal.Zero
9393
_, err = r.EvaluateOrder(o, h, compliance.Snapshot{})
9494
assert.ErrorIs(t, err, errLeverageNotAllowed)
9595

@@ -98,12 +98,12 @@ func TestEvaluateOrder(t *testing.T) {
9898
assert.ErrorIs(t, err, errCannotPlaceLeverageOrder)
9999

100100
r.MaximumLeverage = decimal.NewFromInt(33)
101-
r.CurrencySettings[key.NewExchangePairAssetKey(e, a, p)].MaxLeverageRate = decimal.NewFromInt(33)
101+
r.CurrencySettings[key.NewExchangeAssetPair(e, a, p)].MaxLeverageRate = decimal.NewFromInt(33)
102102
_, err = r.EvaluateOrder(o, h, compliance.Snapshot{})
103103
assert.NoError(t, err)
104104

105105
r.MaximumLeverage = decimal.NewFromInt(33)
106-
r.CurrencySettings[key.NewExchangePairAssetKey(e, a, p)].MaxLeverageRate = decimal.NewFromInt(33)
106+
r.CurrencySettings[key.NewExchangeAssetPair(e, a, p)].MaxLeverageRate = decimal.NewFromInt(33)
107107

108108
_, err = r.EvaluateOrder(o, h, compliance.Snapshot{
109109
Orders: []compliance.SnapshotOrder{
@@ -117,7 +117,7 @@ func TestEvaluateOrder(t *testing.T) {
117117
assert.ErrorIs(t, err, errCannotPlaceLeverageOrder)
118118

119119
h = append(h, holdings.Holding{Pair: p, BaseValue: decimal.NewFromInt(1337)}, holdings.Holding{Pair: p, BaseValue: decimal.NewFromFloat(1337.42)})
120-
r.CurrencySettings[key.NewExchangePairAssetKey(e, a, p)].MaximumHoldingRatio = decimal.NewFromFloat(0.1)
120+
r.CurrencySettings[key.NewExchangeAssetPair(e, a, p)].MaximumHoldingRatio = decimal.NewFromFloat(0.1)
121121
_, err = r.EvaluateOrder(o, h, compliance.Snapshot{})
122122
assert.NoError(t, err)
123123

0 commit comments

Comments
 (0)