thirteenth version
This commit is contained in:
+37
-31
@@ -239,8 +239,8 @@ func buildScheduler(clock timeutil.Clock, sm statemachine.System, cfg config.Con
|
||||
RollingLong: cfg.Strategy.RollingLong,
|
||||
EWMALambda: cfg.Strategy.EWMALambda,
|
||||
RiskBufferBps: cfg.Strategy.RiskBufferBps,
|
||||
EntrySlippageBps: cfg.Backtest.EntrySlippageBps,
|
||||
ExitSlippageBps: cfg.Backtest.ExitSlippageBps,
|
||||
EntrySlippageBps: cfg.Strategy.ExpectedEntrySlippageBps,
|
||||
ExitSlippageBps: cfg.Strategy.ExpectedExitSlippageBps,
|
||||
CommissionRoundtripBps: cfg.Backtest.CommissionRoundtripBps,
|
||||
EntryWindow: timeutil.Window{
|
||||
Start: cfg.Execution.EntryWindowStart,
|
||||
@@ -250,7 +250,7 @@ func buildScheduler(clock timeutil.Clock, sm statemachine.System, cfg config.Con
|
||||
Start: cfg.Execution.ExitWindowStart,
|
||||
End: cfg.Execution.ExitWindowEnd,
|
||||
},
|
||||
IntervalVolumeLookback: 20,
|
||||
IntervalVolumeLookback: cfg.Strategy.IntervalVolumeLookbackDays,
|
||||
Location: cfg.Location,
|
||||
})
|
||||
signalEngine := signalengine.New(signalengine.Config{
|
||||
@@ -288,6 +288,7 @@ func buildScheduler(clock timeutil.Clock, sm statemachine.System, cfg config.Con
|
||||
execEngine.SetClock(clock)
|
||||
execEngine.SetMaxQuoteAge(time.Duration(cfg.Execution.MaxQuoteAgeSec) * time.Second)
|
||||
execEngine.SetFreeOrderCountPolicy(cfg.Commission.FreeOrderCountPolicy)
|
||||
execEngine.SetMaxExitOrderAttempts(cfg.Execution.MaxExitOrderAttempts)
|
||||
services := scheduler.Services{
|
||||
Repo: repo,
|
||||
Gateway: gateway,
|
||||
@@ -307,34 +308,39 @@ func buildScheduler(clock timeutil.Clock, sm statemachine.System, cfg config.Con
|
||||
Log: log,
|
||||
}
|
||||
return scheduler.New(clock, sm, scheduler.Config{
|
||||
Mode: cfg.App.Mode,
|
||||
Location: cfg.Location,
|
||||
RollingLong: cfg.Strategy.RollingLong,
|
||||
TickInterval: 30 * time.Second,
|
||||
EntrySignalTime: cfg.Execution.EntrySignalTime,
|
||||
EntryWindowStart: cfg.Execution.EntryWindowStart,
|
||||
EntryWindowEnd: cfg.Execution.EntryWindowEnd,
|
||||
NoNewEntryAfter: cfg.Execution.NoNewEntryAfter,
|
||||
ExitWatchStart: cfg.Execution.ExitWatchStart,
|
||||
ExitNotBefore: cfg.Execution.ExitNotBefore,
|
||||
ExitWindowStart: cfg.Execution.ExitWindowStart,
|
||||
ExitWindowEnd: cfg.Execution.ExitWindowEnd,
|
||||
HardExitDeadline: cfg.Execution.HardExitDeadline,
|
||||
MarketClose: cfg.Execution.MarketClose,
|
||||
QuoteDepth: cfg.Execution.QuoteDepth,
|
||||
MaxQuoteAge: time.Duration(cfg.Execution.MaxQuoteAgeSec) * time.Second,
|
||||
OrderPollInterval: time.Duration(cfg.Execution.OrderPollIntervalMS) * time.Millisecond,
|
||||
PassiveImproveTicks: cfg.Execution.PassiveImproveTicks,
|
||||
MaxEntryOrderAttempts: cfg.Execution.MaxEntryOrderAttempts,
|
||||
MaxExitOrderAttempts: cfg.Execution.MaxExitOrderAttempts,
|
||||
MinTimeToClose: time.Duration(cfg.Execution.MinTimeToCloseSec) * time.Second,
|
||||
MaxClockDrift: time.Duration(cfg.Risk.MaxClockDriftSec) * time.Second,
|
||||
APIOutageHalt: time.Duration(cfg.Risk.APIOutageHaltSec) * time.Second,
|
||||
RequireZeroCommission: cfg.Commission.RequireZeroCommission,
|
||||
QuarantineOnNonZero: cfg.Commission.QuarantineOnNonZero,
|
||||
FreeOrderCountPolicy: cfg.Commission.FreeOrderCountPolicy,
|
||||
ReconciliationInterval: 5 * time.Minute,
|
||||
MaxOpenPositions: minPositive(cfg.Strategy.MaxPositions, cfg.Risk.MaxOpenPositions),
|
||||
Mode: cfg.App.Mode,
|
||||
Location: cfg.Location,
|
||||
RollingLong: cfg.Strategy.RollingLong,
|
||||
IntervalVolumeLookbackDays: cfg.Strategy.IntervalVolumeLookbackDays,
|
||||
TickInterval: 30 * time.Second,
|
||||
EntrySignalTime: cfg.Execution.EntrySignalTime,
|
||||
EntryWindowStart: cfg.Execution.EntryWindowStart,
|
||||
EntryWindowEnd: cfg.Execution.EntryWindowEnd,
|
||||
NoNewEntryAfter: cfg.Execution.NoNewEntryAfter,
|
||||
ExitWatchStart: cfg.Execution.ExitWatchStart,
|
||||
ExitNotBefore: cfg.Execution.ExitNotBefore,
|
||||
ExitWindowStart: cfg.Execution.ExitWindowStart,
|
||||
ExitWindowEnd: cfg.Execution.ExitWindowEnd,
|
||||
HardExitDeadline: cfg.Execution.HardExitDeadline,
|
||||
MarketClose: cfg.Execution.MarketClose,
|
||||
QuoteDepth: cfg.Execution.QuoteDepth,
|
||||
MaxQuoteAge: time.Duration(cfg.Execution.MaxQuoteAgeSec) * time.Second,
|
||||
OrderPollInterval: time.Duration(cfg.Execution.OrderPollIntervalMS) * time.Millisecond,
|
||||
PassiveImproveTicks: cfg.Execution.PassiveImproveTicks,
|
||||
MaxEntryOrderAttempts: cfg.Execution.MaxEntryOrderAttempts,
|
||||
MaxExitOrderAttempts: cfg.Execution.MaxExitOrderAttempts,
|
||||
MinTimeToClose: time.Duration(cfg.Execution.MinTimeToCloseSec) * time.Second,
|
||||
MaxClockDrift: time.Duration(cfg.Risk.MaxClockDriftSec) * time.Second,
|
||||
APIOutageHalt: time.Duration(cfg.Risk.APIOutageHaltSec) * time.Second,
|
||||
RequireZeroCommission: cfg.Commission.RequireZeroCommission,
|
||||
QuarantineOnNonZero: cfg.Commission.QuarantineOnNonZero,
|
||||
FreeOrderCountPolicy: cfg.Commission.FreeOrderCountPolicy,
|
||||
ReconciliationInterval: 5 * time.Minute,
|
||||
MaxOpenPositions: minPositive(cfg.Strategy.MaxPositions, cfg.Risk.MaxOpenPositions),
|
||||
SizeReductionWindowTrades: cfg.Risk.SizeReductionWindowTrades,
|
||||
SizeReductionFactor: cfg.Risk.SizeReductionFactor,
|
||||
SizeReductionTriggerBps: cfg.Risk.SizeReductionTriggerBps,
|
||||
TradingCalendarExchange: cfg.TInvest.TradingCalendarExchange,
|
||||
}, services)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user