@@ -37,6 +37,16 @@ func init() {
37
37
rand .Seed (time .Now ().UnixNano ())
38
38
}
39
39
40
+ // IsBackTesting is a global variable that indicates the current environment is back-test or not.
41
+ var IsBackTesting = false
42
+
43
+ var BackTestService * service.BacktestService
44
+
45
+ func SetBackTesting (s * service.BacktestService ) {
46
+ BackTestService = s
47
+ IsBackTesting = true
48
+ }
49
+
40
50
var LoadedExchangeStrategies = make (map [string ]SingleExchangeStrategy )
41
51
var LoadedCrossExchangeStrategies = make (map [string ]CrossExchangeStrategy )
42
52
@@ -69,19 +79,18 @@ const (
69
79
70
80
// Environment presents the real exchange data layer
71
81
type Environment struct {
72
- PersistenceServiceFacade * service.PersistenceServiceFacade
73
- DatabaseService * service.DatabaseService
74
- OrderService * service.OrderService
75
- TradeService * service.TradeService
76
- ProfitService * service.ProfitService
77
- PositionService * service.PositionService
78
- BacktestService * service.BacktestService
79
- RewardService * service.RewardService
80
- MarginService * service.MarginService
81
- SyncService * service.SyncService
82
- AccountService * service.AccountService
83
- WithdrawService * service.WithdrawService
84
- DepositService * service.DepositService
82
+ DatabaseService * service.DatabaseService
83
+ OrderService * service.OrderService
84
+ TradeService * service.TradeService
85
+ ProfitService * service.ProfitService
86
+ PositionService * service.PositionService
87
+ BacktestService * service.BacktestService
88
+ RewardService * service.RewardService
89
+ MarginService * service.MarginService
90
+ SyncService * service.SyncService
91
+ AccountService * service.AccountService
92
+ WithdrawService * service.WithdrawService
93
+ DepositService * service.DepositService
85
94
86
95
// startTime is the time of start point (which is used in the backtest)
87
96
startTime time.Time
@@ -107,9 +116,6 @@ func NewEnvironment() *Environment {
107
116
startTime : now ,
108
117
109
118
syncStatus : SyncNotStarted ,
110
- PersistenceServiceFacade : & service.PersistenceServiceFacade {
111
- Memory : service .NewMemoryService (),
112
- },
113
119
}
114
120
}
115
121
@@ -276,7 +282,8 @@ func (environ *Environment) ConfigurePersistence(conf *PersistenceConfig) error
276
282
return err
277
283
}
278
284
279
- environ .PersistenceServiceFacade .Redis = service .NewRedisPersistenceService (conf .Redis )
285
+ redisPersistence := service .NewRedisPersistenceService (conf .Redis )
286
+ PersistenceServiceFacade .Redis = redisPersistence
280
287
}
281
288
282
289
if conf .Json != nil {
@@ -287,7 +294,8 @@ func (environ *Environment) ConfigurePersistence(conf *PersistenceConfig) error
287
294
}
288
295
}
289
296
290
- environ .PersistenceServiceFacade .Json = & service.JsonPersistenceService {Directory : conf .Json .Directory }
297
+ jsonPersistence := & service.JsonPersistenceService {Directory : conf .Json .Directory }
298
+ PersistenceServiceFacade .Json = jsonPersistence
291
299
}
292
300
293
301
return nil
@@ -772,7 +780,7 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
772
780
}
773
781
}
774
782
775
- var persistence = environ . PersistenceServiceFacade .Get ()
783
+ var persistence = PersistenceServiceFacade .Get ()
776
784
777
785
err := environ .setupInteraction (persistence )
778
786
if err != nil {
0 commit comments