@backtest-kit/cli 9.0.0 → 9.1.0
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/README.md +1694 -1692
- package/build/index.cjs +202 -185
- package/build/index.mjs +202 -185
- package/config/notification.config.mjs +13 -13
- package/config/symbol.config.mjs +460 -460
- package/docker/.env.example +2 -2
- package/docker/content/feb_2026/feb_2026.strategy.ts +11 -11
- package/docker/content/feb_2026/modules/backtest.module.ts +83 -83
- package/docker/docker-compose.yaml +45 -45
- package/docker/package.json +38 -38
- package/docker/tsconfig.json +36 -36
- package/package.json +126 -126
- package/template/average-buy.mustache +22 -22
- package/template/breakeven.mustache +21 -21
- package/template/cancel-scheduled.mustache +14 -14
- package/template/cancelled.mustache +21 -21
- package/template/close-pending.mustache +16 -16
- package/template/closed.mustache +23 -23
- package/template/opened.mustache +22 -22
- package/template/partial-loss.mustache +22 -22
- package/template/partial-profit.mustache +22 -22
- package/template/project/config/symbol.config.ts +460 -460
- package/template/project/package.mustache +28 -28
- package/template/risk.mustache +19 -19
- package/template/scheduled.mustache +22 -22
- package/template/signal-close.mustache +22 -22
- package/template/signal-info.mustache +20 -20
- package/template/signal-open.mustache +22 -22
- package/template/source/CLAUDE.md +160 -160
- package/template/trailing-stop.mustache +21 -21
- package/template/trailing-take.mustache +21 -21
- package/types.d.ts +1 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
**🛡️ Trailing Stop**
|
|
2
|
-
|
|
3
|
-
**Symbol:** `{{symbol}}` ({{position}})
|
|
4
|
-
|
|
5
|
-
**Current:** `{{currentPrice}}`
|
|
6
|
-
**Entry:** `{{priceOpen}}`
|
|
7
|
-
**Orig Entry:** `{{originalPriceOpen}}`
|
|
8
|
-
**Take Profit:** `{{priceTakeProfit}}`
|
|
9
|
-
**Orig TP:** `{{originalPriceTakeProfit}}`
|
|
10
|
-
**Old Stop Loss:** `{{originalPriceStopLoss}}`
|
|
11
|
-
**New Stop Loss:** `{{priceStopLoss}}` ({{percentShift}}%)
|
|
12
|
-
**DCA Entries:** `{{totalEntries}}`
|
|
13
|
-
**Partials Done:** `{{totalPartials}}`
|
|
14
|
-
**PnL:** {{pnl.pnlPercentage}}% ({{pnl.pnlCost}} / {{pnl.pnlEntries}})
|
|
15
|
-
**Peak Profit:** {{peakProfit.pnlPercentage}}% ({{peakProfit.pnlCost}} / {{peakProfit.pnlEntries}})
|
|
16
|
-
**Max Drawdown:** {{maxDrawdown.pnlPercentage}}% ({{maxDrawdown.pnlCost}} / {{maxDrawdown.pnlEntries}})
|
|
17
|
-
**Signal ID:** `{{signalId}}`
|
|
18
|
-
**Time:** `{{timestamp}}`
|
|
19
|
-
|
|
20
|
-
{{#backtest}}
|
|
21
|
-
_🧪 Backtest_
|
|
1
|
+
**🛡️ Trailing Stop**
|
|
2
|
+
|
|
3
|
+
**Symbol:** `{{symbol}}` ({{position}})
|
|
4
|
+
|
|
5
|
+
**Current:** `{{currentPrice}}`
|
|
6
|
+
**Entry:** `{{priceOpen}}`
|
|
7
|
+
**Orig Entry:** `{{originalPriceOpen}}`
|
|
8
|
+
**Take Profit:** `{{priceTakeProfit}}`
|
|
9
|
+
**Orig TP:** `{{originalPriceTakeProfit}}`
|
|
10
|
+
**Old Stop Loss:** `{{originalPriceStopLoss}}`
|
|
11
|
+
**New Stop Loss:** `{{priceStopLoss}}` ({{percentShift}}%)
|
|
12
|
+
**DCA Entries:** `{{totalEntries}}`
|
|
13
|
+
**Partials Done:** `{{totalPartials}}`
|
|
14
|
+
**PnL:** {{pnl.pnlPercentage}}% ({{pnl.pnlCost}} / {{pnl.pnlEntries}})
|
|
15
|
+
**Peak Profit:** {{peakProfit.pnlPercentage}}% ({{peakProfit.pnlCost}} / {{peakProfit.pnlEntries}})
|
|
16
|
+
**Max Drawdown:** {{maxDrawdown.pnlPercentage}}% ({{maxDrawdown.pnlCost}} / {{maxDrawdown.pnlEntries}})
|
|
17
|
+
**Signal ID:** `{{signalId}}`
|
|
18
|
+
**Time:** `{{timestamp}}`
|
|
19
|
+
|
|
20
|
+
{{#backtest}}
|
|
21
|
+
_🧪 Backtest_
|
|
22
22
|
{{/backtest}}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
**🎯 Trailing Take**
|
|
2
|
-
|
|
3
|
-
**Symbol:** `{{symbol}}` ({{position}})
|
|
4
|
-
|
|
5
|
-
**Current:** `{{currentPrice}}`
|
|
6
|
-
**Entry:** `{{priceOpen}}`
|
|
7
|
-
**Orig Entry:** `{{originalPriceOpen}}`
|
|
8
|
-
**Old Take Profit:** `{{originalPriceTakeProfit}}`
|
|
9
|
-
**New Take Profit:** `{{priceTakeProfit}}` ({{percentShift}}%)
|
|
10
|
-
**Stop Loss:** `{{priceStopLoss}}`
|
|
11
|
-
**Orig SL:** `{{originalPriceStopLoss}}`
|
|
12
|
-
**DCA Entries:** `{{totalEntries}}`
|
|
13
|
-
**Partials Done:** `{{totalPartials}}`
|
|
14
|
-
**PnL:** {{pnl.pnlPercentage}}% ({{pnl.pnlCost}} / {{pnl.pnlEntries}})
|
|
15
|
-
**Peak Profit:** {{peakProfit.pnlPercentage}}% ({{peakProfit.pnlCost}} / {{peakProfit.pnlEntries}})
|
|
16
|
-
**Max Drawdown:** {{maxDrawdown.pnlPercentage}}% ({{maxDrawdown.pnlCost}} / {{maxDrawdown.pnlEntries}})
|
|
17
|
-
**Signal ID:** `{{signalId}}`
|
|
18
|
-
**Time:** `{{timestamp}}`
|
|
19
|
-
|
|
20
|
-
{{#backtest}}
|
|
21
|
-
_🧪 Backtest_
|
|
1
|
+
**🎯 Trailing Take**
|
|
2
|
+
|
|
3
|
+
**Symbol:** `{{symbol}}` ({{position}})
|
|
4
|
+
|
|
5
|
+
**Current:** `{{currentPrice}}`
|
|
6
|
+
**Entry:** `{{priceOpen}}`
|
|
7
|
+
**Orig Entry:** `{{originalPriceOpen}}`
|
|
8
|
+
**Old Take Profit:** `{{originalPriceTakeProfit}}`
|
|
9
|
+
**New Take Profit:** `{{priceTakeProfit}}` ({{percentShift}}%)
|
|
10
|
+
**Stop Loss:** `{{priceStopLoss}}`
|
|
11
|
+
**Orig SL:** `{{originalPriceStopLoss}}`
|
|
12
|
+
**DCA Entries:** `{{totalEntries}}`
|
|
13
|
+
**Partials Done:** `{{totalPartials}}`
|
|
14
|
+
**PnL:** {{pnl.pnlPercentage}}% ({{pnl.pnlCost}} / {{pnl.pnlEntries}})
|
|
15
|
+
**Peak Profit:** {{peakProfit.pnlPercentage}}% ({{peakProfit.pnlCost}} / {{peakProfit.pnlEntries}})
|
|
16
|
+
**Max Drawdown:** {{maxDrawdown.pnlPercentage}}% ({{maxDrawdown.pnlCost}} / {{maxDrawdown.pnlEntries}})
|
|
17
|
+
**Signal ID:** `{{signalId}}`
|
|
18
|
+
**Time:** `{{timestamp}}`
|
|
19
|
+
|
|
20
|
+
{{#backtest}}
|
|
21
|
+
_🧪 Backtest_
|
|
22
22
|
{{/backtest}}
|
package/types.d.ts
CHANGED
|
@@ -222,6 +222,7 @@ declare class ResolveService implements IResolve {
|
|
|
222
222
|
attachPine: (pinePath: string) => Promise<string>;
|
|
223
223
|
attachStrategy: (jsPath: string) => Promise<void>;
|
|
224
224
|
attachJavascript: (jsPath: string) => Promise<void>;
|
|
225
|
+
attachEntry: (jsPath: string) => Promise<void>;
|
|
225
226
|
}
|
|
226
227
|
|
|
227
228
|
declare class ErrorService {
|