backtest-kit 1.13.2 → 1.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs CHANGED
@@ -22631,6 +22631,27 @@ const backtest = {
22631
22631
  init();
22632
22632
  var backtest$1 = backtest;
22633
22633
 
22634
+ const GET_TIMEFRAME_METHOD_NAME = "get.getTimeframe";
22635
+ /**
22636
+ * Retrieves current backtest timeframe for given symbol.
22637
+ * @param symbol - Trading pair symbol (e.g., "BTCUSDT")
22638
+ * @returns Promise resolving to array of Date objects representing tick timestamps
22639
+ * @throws Error if called outside of backtest execution context
22640
+ */
22641
+ async function getCurrentTimeframe(symbol) {
22642
+ backtest$1.loggerService.info(GET_TIMEFRAME_METHOD_NAME, { symbol });
22643
+ if (!ExecutionContextService.hasContext()) {
22644
+ throw new Error("getCurrentTimeframe requires an execution context");
22645
+ }
22646
+ if (!MethodContextService.hasContext()) {
22647
+ throw new Error("getCurrentTimeframe requires a method context");
22648
+ }
22649
+ if (!backtest$1.executionContextService.context.backtest) {
22650
+ throw new Error("getCurrentTimeframe can only be used during backtest execution");
22651
+ }
22652
+ return await backtest$1.frameCoreService.getTimeframe(symbol, backtest$1.methodContextService.context.frameName);
22653
+ }
22654
+
22634
22655
  const METHOD_NAME = "validate.validate";
22635
22656
  /**
22636
22657
  * Retrieves all registered exchanges as a map
@@ -22826,6 +22847,189 @@ async function validate(args = {}) {
22826
22847
  return await validateInternal(args);
22827
22848
  }
22828
22849
 
22850
+ const GET_STRATEGY_METHOD_NAME = "get.getStrategy";
22851
+ const GET_EXCHANGE_METHOD_NAME = "get.getExchange";
22852
+ const GET_FRAME_METHOD_NAME = "get.getFrame";
22853
+ const GET_WALKER_METHOD_NAME = "get.getWalker";
22854
+ const GET_SIZING_METHOD_NAME = "get.getSizing";
22855
+ const GET_RISK_METHOD_NAME = "get.getRisk";
22856
+ const GET_OPTIMIZER_METHOD_NAME = "get.getOptimizer";
22857
+ const GET_ACTION_METHOD_NAME = "get.getAction";
22858
+ /**
22859
+ * Retrieves a registered strategy schema by name.
22860
+ *
22861
+ * @param strategyName - Unique strategy identifier
22862
+ * @returns The strategy schema configuration object
22863
+ * @throws Error if strategy is not registered
22864
+ *
22865
+ * @example
22866
+ * ```typescript
22867
+ * const strategy = getStrategy("my-strategy");
22868
+ * console.log(strategy.interval); // "5m"
22869
+ * console.log(strategy.getSignal); // async function
22870
+ * ```
22871
+ */
22872
+ function getStrategy(strategyName) {
22873
+ backtest$1.loggerService.log(GET_STRATEGY_METHOD_NAME, {
22874
+ strategyName,
22875
+ });
22876
+ backtest$1.strategyValidationService.validate(strategyName, GET_STRATEGY_METHOD_NAME);
22877
+ return backtest$1.strategySchemaService.get(strategyName);
22878
+ }
22879
+ /**
22880
+ * Retrieves a registered exchange schema by name.
22881
+ *
22882
+ * @param exchangeName - Unique exchange identifier
22883
+ * @returns The exchange schema configuration object
22884
+ * @throws Error if exchange is not registered
22885
+ *
22886
+ * @example
22887
+ * ```typescript
22888
+ * const exchange = getExchange("binance");
22889
+ * console.log(exchange.getCandles); // async function
22890
+ * console.log(exchange.formatPrice); // async function
22891
+ * ```
22892
+ */
22893
+ function getExchange(exchangeName) {
22894
+ backtest$1.loggerService.log(GET_EXCHANGE_METHOD_NAME, {
22895
+ exchangeName,
22896
+ });
22897
+ backtest$1.exchangeValidationService.validate(exchangeName, GET_EXCHANGE_METHOD_NAME);
22898
+ return backtest$1.exchangeSchemaService.get(exchangeName);
22899
+ }
22900
+ /**
22901
+ * Retrieves a registered frame schema by name.
22902
+ *
22903
+ * @param frameName - Unique frame identifier
22904
+ * @returns The frame schema configuration object
22905
+ * @throws Error if frame is not registered
22906
+ *
22907
+ * @example
22908
+ * ```typescript
22909
+ * const frame = getFrame("1d-backtest");
22910
+ * console.log(frame.interval); // "1m"
22911
+ * console.log(frame.startDate); // Date object
22912
+ * console.log(frame.endDate); // Date object
22913
+ * ```
22914
+ */
22915
+ function getFrame(frameName) {
22916
+ backtest$1.loggerService.log(GET_FRAME_METHOD_NAME, {
22917
+ frameName,
22918
+ });
22919
+ backtest$1.frameValidationService.validate(frameName, GET_FRAME_METHOD_NAME);
22920
+ return backtest$1.frameSchemaService.get(frameName);
22921
+ }
22922
+ /**
22923
+ * Retrieves a registered walker schema by name.
22924
+ *
22925
+ * @param walkerName - Unique walker identifier
22926
+ * @returns The walker schema configuration object
22927
+ * @throws Error if walker is not registered
22928
+ *
22929
+ * @example
22930
+ * ```typescript
22931
+ * const walker = getWalker("llm-prompt-optimizer");
22932
+ * console.log(walker.exchangeName); // "binance"
22933
+ * console.log(walker.frameName); // "1d-backtest"
22934
+ * console.log(walker.strategies); // ["my-strategy-v1", "my-strategy-v2"]
22935
+ * console.log(walker.metric); // "sharpeRatio"
22936
+ * ```
22937
+ */
22938
+ function getWalker(walkerName) {
22939
+ backtest$1.loggerService.log(GET_WALKER_METHOD_NAME, {
22940
+ walkerName,
22941
+ });
22942
+ backtest$1.walkerValidationService.validate(walkerName, GET_WALKER_METHOD_NAME);
22943
+ return backtest$1.walkerSchemaService.get(walkerName);
22944
+ }
22945
+ /**
22946
+ * Retrieves a registered sizing schema by name.
22947
+ *
22948
+ * @param sizingName - Unique sizing identifier
22949
+ * @returns The sizing schema configuration object
22950
+ * @throws Error if sizing is not registered
22951
+ *
22952
+ * @example
22953
+ * ```typescript
22954
+ * const sizing = getSizing("conservative");
22955
+ * console.log(sizing.method); // "fixed-percentage"
22956
+ * console.log(sizing.riskPercentage); // 1
22957
+ * console.log(sizing.maxPositionPercentage); // 10
22958
+ * ```
22959
+ */
22960
+ function getSizing(sizingName) {
22961
+ backtest$1.loggerService.log(GET_SIZING_METHOD_NAME, {
22962
+ sizingName,
22963
+ });
22964
+ backtest$1.sizingValidationService.validate(sizingName, GET_SIZING_METHOD_NAME);
22965
+ return backtest$1.sizingSchemaService.get(sizingName);
22966
+ }
22967
+ /**
22968
+ * Retrieves a registered risk schema by name.
22969
+ *
22970
+ * @param riskName - Unique risk identifier
22971
+ * @returns The risk schema configuration object
22972
+ * @throws Error if risk is not registered
22973
+ *
22974
+ * @example
22975
+ * ```typescript
22976
+ * const risk = getRisk("conservative");
22977
+ * console.log(risk.maxConcurrentPositions); // 5
22978
+ * console.log(risk.validations); // Array of validation functions
22979
+ * ```
22980
+ */
22981
+ function getRisk(riskName) {
22982
+ backtest$1.loggerService.log(GET_RISK_METHOD_NAME, {
22983
+ riskName,
22984
+ });
22985
+ backtest$1.riskValidationService.validate(riskName, GET_RISK_METHOD_NAME);
22986
+ return backtest$1.riskSchemaService.get(riskName);
22987
+ }
22988
+ /**
22989
+ * Retrieves a registered optimizer schema by name.
22990
+ *
22991
+ * @param optimizerName - Unique optimizer identifier
22992
+ * @returns The optimizer schema configuration object
22993
+ * @throws Error if optimizer is not registered
22994
+ *
22995
+ * @example
22996
+ * ```typescript
22997
+ * const optimizer = getOptimizer("llm-strategy-generator");
22998
+ * console.log(optimizer.rangeTrain); // Array of training ranges
22999
+ * console.log(optimizer.rangeTest); // Testing range
23000
+ * console.log(optimizer.source); // Array of data sources
23001
+ * console.log(optimizer.getPrompt); // async function
23002
+ * ```
23003
+ */
23004
+ function getOptimizer(optimizerName) {
23005
+ backtest$1.loggerService.log(GET_OPTIMIZER_METHOD_NAME, {
23006
+ optimizerName,
23007
+ });
23008
+ backtest$1.optimizerValidationService.validate(optimizerName, GET_OPTIMIZER_METHOD_NAME);
23009
+ return backtest$1.optimizerSchemaService.get(optimizerName);
23010
+ }
23011
+ /**
23012
+ * Retrieves a registered action schema by name.
23013
+ *
23014
+ * @param actionName - Unique action identifier
23015
+ * @returns The action schema configuration object
23016
+ * @throws Error if action is not registered
23017
+ *
23018
+ * @example
23019
+ * ```typescript
23020
+ * const action = getAction("telegram-notifier");
23021
+ * console.log(action.handler); // Class constructor or object
23022
+ * console.log(action.callbacks); // Optional lifecycle callbacks
23023
+ * ```
23024
+ */
23025
+ function getAction(actionName) {
23026
+ backtest$1.loggerService.log(GET_ACTION_METHOD_NAME, {
23027
+ actionName,
23028
+ });
23029
+ backtest$1.actionValidationService.validate(actionName, GET_ACTION_METHOD_NAME);
23030
+ return backtest$1.actionSchemaService.get(actionName);
23031
+ }
23032
+
22829
23033
  const GET_CANDLES_METHOD_NAME = "exchange.getCandles";
22830
23034
  const GET_AVERAGE_PRICE_METHOD_NAME = "exchange.getAveragePrice";
22831
23035
  const FORMAT_PRICE_METHOD_NAME = "exchange.formatPrice";
@@ -30934,15 +31138,24 @@ exports.emitters = emitters;
30934
31138
  exports.formatPrice = formatPrice;
30935
31139
  exports.formatQuantity = formatQuantity;
30936
31140
  exports.get = get;
31141
+ exports.getAction = getAction;
30937
31142
  exports.getAveragePrice = getAveragePrice;
30938
31143
  exports.getCandles = getCandles;
30939
31144
  exports.getColumns = getColumns;
30940
31145
  exports.getConfig = getConfig;
31146
+ exports.getCurrentTimeframe = getCurrentTimeframe;
30941
31147
  exports.getDate = getDate;
30942
31148
  exports.getDefaultColumns = getDefaultColumns;
30943
31149
  exports.getDefaultConfig = getDefaultConfig;
31150
+ exports.getExchange = getExchange;
31151
+ exports.getFrame = getFrame;
30944
31152
  exports.getMode = getMode;
31153
+ exports.getOptimizer = getOptimizer;
30945
31154
  exports.getOrderBook = getOrderBook;
31155
+ exports.getRisk = getRisk;
31156
+ exports.getSizing = getSizing;
31157
+ exports.getStrategy = getStrategy;
31158
+ exports.getWalker = getWalker;
30946
31159
  exports.hasTradeContext = hasTradeContext;
30947
31160
  exports.lib = backtest;
30948
31161
  exports.listExchanges = listExchanges;
package/build/index.mjs CHANGED
@@ -22611,6 +22611,27 @@ const backtest = {
22611
22611
  init();
22612
22612
  var backtest$1 = backtest;
22613
22613
 
22614
+ const GET_TIMEFRAME_METHOD_NAME = "get.getTimeframe";
22615
+ /**
22616
+ * Retrieves current backtest timeframe for given symbol.
22617
+ * @param symbol - Trading pair symbol (e.g., "BTCUSDT")
22618
+ * @returns Promise resolving to array of Date objects representing tick timestamps
22619
+ * @throws Error if called outside of backtest execution context
22620
+ */
22621
+ async function getCurrentTimeframe(symbol) {
22622
+ backtest$1.loggerService.info(GET_TIMEFRAME_METHOD_NAME, { symbol });
22623
+ if (!ExecutionContextService.hasContext()) {
22624
+ throw new Error("getCurrentTimeframe requires an execution context");
22625
+ }
22626
+ if (!MethodContextService.hasContext()) {
22627
+ throw new Error("getCurrentTimeframe requires a method context");
22628
+ }
22629
+ if (!backtest$1.executionContextService.context.backtest) {
22630
+ throw new Error("getCurrentTimeframe can only be used during backtest execution");
22631
+ }
22632
+ return await backtest$1.frameCoreService.getTimeframe(symbol, backtest$1.methodContextService.context.frameName);
22633
+ }
22634
+
22614
22635
  const METHOD_NAME = "validate.validate";
22615
22636
  /**
22616
22637
  * Retrieves all registered exchanges as a map
@@ -22806,6 +22827,189 @@ async function validate(args = {}) {
22806
22827
  return await validateInternal(args);
22807
22828
  }
22808
22829
 
22830
+ const GET_STRATEGY_METHOD_NAME = "get.getStrategy";
22831
+ const GET_EXCHANGE_METHOD_NAME = "get.getExchange";
22832
+ const GET_FRAME_METHOD_NAME = "get.getFrame";
22833
+ const GET_WALKER_METHOD_NAME = "get.getWalker";
22834
+ const GET_SIZING_METHOD_NAME = "get.getSizing";
22835
+ const GET_RISK_METHOD_NAME = "get.getRisk";
22836
+ const GET_OPTIMIZER_METHOD_NAME = "get.getOptimizer";
22837
+ const GET_ACTION_METHOD_NAME = "get.getAction";
22838
+ /**
22839
+ * Retrieves a registered strategy schema by name.
22840
+ *
22841
+ * @param strategyName - Unique strategy identifier
22842
+ * @returns The strategy schema configuration object
22843
+ * @throws Error if strategy is not registered
22844
+ *
22845
+ * @example
22846
+ * ```typescript
22847
+ * const strategy = getStrategy("my-strategy");
22848
+ * console.log(strategy.interval); // "5m"
22849
+ * console.log(strategy.getSignal); // async function
22850
+ * ```
22851
+ */
22852
+ function getStrategy(strategyName) {
22853
+ backtest$1.loggerService.log(GET_STRATEGY_METHOD_NAME, {
22854
+ strategyName,
22855
+ });
22856
+ backtest$1.strategyValidationService.validate(strategyName, GET_STRATEGY_METHOD_NAME);
22857
+ return backtest$1.strategySchemaService.get(strategyName);
22858
+ }
22859
+ /**
22860
+ * Retrieves a registered exchange schema by name.
22861
+ *
22862
+ * @param exchangeName - Unique exchange identifier
22863
+ * @returns The exchange schema configuration object
22864
+ * @throws Error if exchange is not registered
22865
+ *
22866
+ * @example
22867
+ * ```typescript
22868
+ * const exchange = getExchange("binance");
22869
+ * console.log(exchange.getCandles); // async function
22870
+ * console.log(exchange.formatPrice); // async function
22871
+ * ```
22872
+ */
22873
+ function getExchange(exchangeName) {
22874
+ backtest$1.loggerService.log(GET_EXCHANGE_METHOD_NAME, {
22875
+ exchangeName,
22876
+ });
22877
+ backtest$1.exchangeValidationService.validate(exchangeName, GET_EXCHANGE_METHOD_NAME);
22878
+ return backtest$1.exchangeSchemaService.get(exchangeName);
22879
+ }
22880
+ /**
22881
+ * Retrieves a registered frame schema by name.
22882
+ *
22883
+ * @param frameName - Unique frame identifier
22884
+ * @returns The frame schema configuration object
22885
+ * @throws Error if frame is not registered
22886
+ *
22887
+ * @example
22888
+ * ```typescript
22889
+ * const frame = getFrame("1d-backtest");
22890
+ * console.log(frame.interval); // "1m"
22891
+ * console.log(frame.startDate); // Date object
22892
+ * console.log(frame.endDate); // Date object
22893
+ * ```
22894
+ */
22895
+ function getFrame(frameName) {
22896
+ backtest$1.loggerService.log(GET_FRAME_METHOD_NAME, {
22897
+ frameName,
22898
+ });
22899
+ backtest$1.frameValidationService.validate(frameName, GET_FRAME_METHOD_NAME);
22900
+ return backtest$1.frameSchemaService.get(frameName);
22901
+ }
22902
+ /**
22903
+ * Retrieves a registered walker schema by name.
22904
+ *
22905
+ * @param walkerName - Unique walker identifier
22906
+ * @returns The walker schema configuration object
22907
+ * @throws Error if walker is not registered
22908
+ *
22909
+ * @example
22910
+ * ```typescript
22911
+ * const walker = getWalker("llm-prompt-optimizer");
22912
+ * console.log(walker.exchangeName); // "binance"
22913
+ * console.log(walker.frameName); // "1d-backtest"
22914
+ * console.log(walker.strategies); // ["my-strategy-v1", "my-strategy-v2"]
22915
+ * console.log(walker.metric); // "sharpeRatio"
22916
+ * ```
22917
+ */
22918
+ function getWalker(walkerName) {
22919
+ backtest$1.loggerService.log(GET_WALKER_METHOD_NAME, {
22920
+ walkerName,
22921
+ });
22922
+ backtest$1.walkerValidationService.validate(walkerName, GET_WALKER_METHOD_NAME);
22923
+ return backtest$1.walkerSchemaService.get(walkerName);
22924
+ }
22925
+ /**
22926
+ * Retrieves a registered sizing schema by name.
22927
+ *
22928
+ * @param sizingName - Unique sizing identifier
22929
+ * @returns The sizing schema configuration object
22930
+ * @throws Error if sizing is not registered
22931
+ *
22932
+ * @example
22933
+ * ```typescript
22934
+ * const sizing = getSizing("conservative");
22935
+ * console.log(sizing.method); // "fixed-percentage"
22936
+ * console.log(sizing.riskPercentage); // 1
22937
+ * console.log(sizing.maxPositionPercentage); // 10
22938
+ * ```
22939
+ */
22940
+ function getSizing(sizingName) {
22941
+ backtest$1.loggerService.log(GET_SIZING_METHOD_NAME, {
22942
+ sizingName,
22943
+ });
22944
+ backtest$1.sizingValidationService.validate(sizingName, GET_SIZING_METHOD_NAME);
22945
+ return backtest$1.sizingSchemaService.get(sizingName);
22946
+ }
22947
+ /**
22948
+ * Retrieves a registered risk schema by name.
22949
+ *
22950
+ * @param riskName - Unique risk identifier
22951
+ * @returns The risk schema configuration object
22952
+ * @throws Error if risk is not registered
22953
+ *
22954
+ * @example
22955
+ * ```typescript
22956
+ * const risk = getRisk("conservative");
22957
+ * console.log(risk.maxConcurrentPositions); // 5
22958
+ * console.log(risk.validations); // Array of validation functions
22959
+ * ```
22960
+ */
22961
+ function getRisk(riskName) {
22962
+ backtest$1.loggerService.log(GET_RISK_METHOD_NAME, {
22963
+ riskName,
22964
+ });
22965
+ backtest$1.riskValidationService.validate(riskName, GET_RISK_METHOD_NAME);
22966
+ return backtest$1.riskSchemaService.get(riskName);
22967
+ }
22968
+ /**
22969
+ * Retrieves a registered optimizer schema by name.
22970
+ *
22971
+ * @param optimizerName - Unique optimizer identifier
22972
+ * @returns The optimizer schema configuration object
22973
+ * @throws Error if optimizer is not registered
22974
+ *
22975
+ * @example
22976
+ * ```typescript
22977
+ * const optimizer = getOptimizer("llm-strategy-generator");
22978
+ * console.log(optimizer.rangeTrain); // Array of training ranges
22979
+ * console.log(optimizer.rangeTest); // Testing range
22980
+ * console.log(optimizer.source); // Array of data sources
22981
+ * console.log(optimizer.getPrompt); // async function
22982
+ * ```
22983
+ */
22984
+ function getOptimizer(optimizerName) {
22985
+ backtest$1.loggerService.log(GET_OPTIMIZER_METHOD_NAME, {
22986
+ optimizerName,
22987
+ });
22988
+ backtest$1.optimizerValidationService.validate(optimizerName, GET_OPTIMIZER_METHOD_NAME);
22989
+ return backtest$1.optimizerSchemaService.get(optimizerName);
22990
+ }
22991
+ /**
22992
+ * Retrieves a registered action schema by name.
22993
+ *
22994
+ * @param actionName - Unique action identifier
22995
+ * @returns The action schema configuration object
22996
+ * @throws Error if action is not registered
22997
+ *
22998
+ * @example
22999
+ * ```typescript
23000
+ * const action = getAction("telegram-notifier");
23001
+ * console.log(action.handler); // Class constructor or object
23002
+ * console.log(action.callbacks); // Optional lifecycle callbacks
23003
+ * ```
23004
+ */
23005
+ function getAction(actionName) {
23006
+ backtest$1.loggerService.log(GET_ACTION_METHOD_NAME, {
23007
+ actionName,
23008
+ });
23009
+ backtest$1.actionValidationService.validate(actionName, GET_ACTION_METHOD_NAME);
23010
+ return backtest$1.actionSchemaService.get(actionName);
23011
+ }
23012
+
22809
23013
  const GET_CANDLES_METHOD_NAME = "exchange.getCandles";
22810
23014
  const GET_AVERAGE_PRICE_METHOD_NAME = "exchange.getAveragePrice";
22811
23015
  const FORMAT_PRICE_METHOD_NAME = "exchange.formatPrice";
@@ -30870,4 +31074,4 @@ const set = (object, path, value) => {
30870
31074
  }
30871
31075
  };
30872
31076
 
30873
- export { ActionBase, Backtest, Breakeven, Cache, Constant, Exchange, ExecutionContextService, Heat, Live, Markdown, MarkdownFileBase, MarkdownFolderBase, MethodContextService, Notification, Optimizer, Partial, Performance, PersistBase, PersistBreakevenAdapter, PersistPartialAdapter, PersistRiskAdapter, PersistScheduleAdapter, PersistSignalAdapter, PositionSize, Report, ReportBase, Risk, Schedule, Walker, addAction, addExchange, addFrame, addOptimizer, addRisk, addSizing, addStrategy, addWalker, breakeven, cancel, dumpSignal, emitters, formatPrice, formatQuantity, get, getAveragePrice, getCandles, getColumns, getConfig, getDate, getDefaultColumns, getDefaultConfig, getMode, getOrderBook, hasTradeContext, backtest as lib, listExchanges, listFrames, listOptimizers, listRisks, listSizings, listStrategies, listWalkers, listenBacktestProgress, listenBreakeven, listenBreakevenOnce, listenDoneBacktest, listenDoneBacktestOnce, listenDoneLive, listenDoneLiveOnce, listenDoneWalker, listenDoneWalkerOnce, listenError, listenExit, listenOptimizerProgress, listenPartialLoss, listenPartialLossOnce, listenPartialProfit, listenPartialProfitOnce, listenPerformance, listenPing, listenPingOnce, listenRisk, listenRiskOnce, listenSignal, listenSignalBacktest, listenSignalBacktestOnce, listenSignalLive, listenSignalLiveOnce, listenSignalOnce, listenValidation, listenWalker, listenWalkerComplete, listenWalkerOnce, listenWalkerProgress, overrideAction, overrideExchange, overrideFrame, overrideOptimizer, overrideRisk, overrideSizing, overrideStrategy, overrideWalker, partialLoss, partialProfit, roundTicks, set, setColumns, setConfig, setLogger, stop, trailingStop, trailingTake, validate };
31077
+ export { ActionBase, Backtest, Breakeven, Cache, Constant, Exchange, ExecutionContextService, Heat, Live, Markdown, MarkdownFileBase, MarkdownFolderBase, MethodContextService, Notification, Optimizer, Partial, Performance, PersistBase, PersistBreakevenAdapter, PersistPartialAdapter, PersistRiskAdapter, PersistScheduleAdapter, PersistSignalAdapter, PositionSize, Report, ReportBase, Risk, Schedule, Walker, addAction, addExchange, addFrame, addOptimizer, addRisk, addSizing, addStrategy, addWalker, breakeven, cancel, dumpSignal, emitters, formatPrice, formatQuantity, get, getAction, getAveragePrice, getCandles, getColumns, getConfig, getCurrentTimeframe, getDate, getDefaultColumns, getDefaultConfig, getExchange, getFrame, getMode, getOptimizer, getOrderBook, getRisk, getSizing, getStrategy, getWalker, hasTradeContext, backtest as lib, listExchanges, listFrames, listOptimizers, listRisks, listSizings, listStrategies, listWalkers, listenBacktestProgress, listenBreakeven, listenBreakevenOnce, listenDoneBacktest, listenDoneBacktestOnce, listenDoneLive, listenDoneLiveOnce, listenDoneWalker, listenDoneWalkerOnce, listenError, listenExit, listenOptimizerProgress, listenPartialLoss, listenPartialLossOnce, listenPartialProfit, listenPartialProfitOnce, listenPerformance, listenPing, listenPingOnce, listenRisk, listenRiskOnce, listenSignal, listenSignalBacktest, listenSignalBacktestOnce, listenSignalLive, listenSignalLiveOnce, listenSignalOnce, listenValidation, listenWalker, listenWalkerComplete, listenWalkerOnce, listenWalkerProgress, overrideAction, overrideExchange, overrideFrame, overrideOptimizer, overrideRisk, overrideSizing, overrideStrategy, overrideWalker, partialLoss, partialProfit, roundTicks, set, setColumns, setConfig, setLogger, stop, trailingStop, trailingTake, validate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backtest-kit",
3
- "version": "1.13.2",
3
+ "version": "1.13.4",
4
4
  "description": "A TypeScript library for trading system backtest",
5
5
  "author": {
6
6
  "name": "Petr Tripolsky",