w-trade-backtest 1.0.8 → 1.1.2
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/dist/w-trade-backtest.umd.js +2 -2
- package/dist/w-trade-backtest.umd.js.map +1 -1
- package/docs/buildKLinesTpSl.mjs.html +2 -2
- package/docs/buildStrategyFastSession.mjs.html +365 -0
- package/docs/calcOrders.mjs.html +2 -2
- package/docs/calcOrdersRatio.mjs.html +2 -2
- package/docs/calcOrdersSummary.mjs.html +2 -2
- package/docs/calcOrdersSummarySimple.mjs.html +7 -4
- package/docs/calcSummary.mjs.html +2 -2
- package/docs/closeAndSummaryOrders.mjs.html +2 -2
- package/docs/genKLinesTpSl.mjs.html +2 -2
- package/docs/genReport.mjs.html +2 -2
- package/docs/genReportCore.mjs.html +2 -2
- package/docs/global.html +667 -3
- package/docs/index.html +2 -2
- package/docs/loadKLinesTpSl.mjs.html +4 -5
- package/docs/runStrategies.mjs.html +2 -2
- package/docs/runStrategiesAndBacktest.mjs.html +2 -2
- package/docs/runStrategy.mjs.html +2 -2
- package/docs/settleOrderPnl.mjs.html +100 -0
- package/package.json +3 -3
- package/src/WTradeBacktest.mjs +2 -0
- package/src/buildStrategyFastSession.mjs +293 -0
- package/src/calcOrdersSummarySimple.mjs +5 -2
- package/src/loadKLinesTpSl.mjs +2 -3
- package/src/settleOrderPnl.mjs +28 -0
- package/test/unit-WTradeBacktest.test.mjs +1 -0
- package/test/unit-buildStrategyFastSession.test.mjs +298 -0
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -205,7 +205,7 @@ export default buildKLinesTpSl
|
|
|
205
205
|
<br class="clear">
|
|
206
206
|
|
|
207
207
|
<footer>
|
|
208
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
208
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
209
209
|
</footer>
|
|
210
210
|
|
|
211
211
|
<script>prettyPrint();</script>
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<title>buildStrategyFastSession.mjs - Documentation</title>
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<script src="scripts/prettify/prettify.js"></script>
|
|
10
|
+
<script src="scripts/prettify/lang-css.js"></script>
|
|
11
|
+
<!--[if lt IE 9]>
|
|
12
|
+
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
13
|
+
<![endif]-->
|
|
14
|
+
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
|
|
15
|
+
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
|
|
16
|
+
<script src="scripts/nav.js" defer></script>
|
|
17
|
+
|
|
18
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
19
|
+
</head>
|
|
20
|
+
<body>
|
|
21
|
+
|
|
22
|
+
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
|
23
|
+
<label for="nav-trigger" class="navicon-button x">
|
|
24
|
+
<div class="navicon"></div>
|
|
25
|
+
</label>
|
|
26
|
+
|
|
27
|
+
<label for="nav-trigger" class="overlay"></label>
|
|
28
|
+
|
|
29
|
+
<nav >
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
|
+
|
|
34
|
+
</nav>
|
|
35
|
+
|
|
36
|
+
<div id="main">
|
|
37
|
+
|
|
38
|
+
<h1 class="page-title">buildStrategyFastSession.mjs</h1>
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<section>
|
|
47
|
+
<article>
|
|
48
|
+
<pre class="prettyprint source linenums"><code>import get from 'lodash-es/get.js'
|
|
49
|
+
import dig from 'wsemi/src/dig.mjs'
|
|
50
|
+
import isearr from 'wsemi/src/isearr.mjs'
|
|
51
|
+
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
52
|
+
import genKLinesTpSl from './genKLinesTpSl.mjs'
|
|
53
|
+
import calcOrdersSummarySimple from './calcOrdersSummarySimple.mjs'
|
|
54
|
+
import settleOrderPnl from './settleOrderPnl.mjs'
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 建立策略快速評估session,供求解熱路徑(如RGA/PSO目標函數)重複評估同一K線窗之不同條件組合
|
|
59
|
+
*
|
|
60
|
+
* 建置期一次攤提runStrategy每次呼叫都要重建的不變量: 各因子{time,param}序列轉為K棒對位Float64Array(缺值填NaN)、各(tp,sl)組合之first-touch預算表(genKLinesTpSl,惰性建置+Map快取)
|
|
61
|
+
* 評估期單迴圈逐棒判斷conds觸發並沿calcOrders同式結算(settleOrderPnl),摘要直接以calcOrdersSummarySimple計算,與官方全鏈(runStrategy→calcOrders→calcOrdersSummary)對應欄位嚴格相等
|
|
62
|
+
* 觸發語義與runStrategy等價: 任一cond序列於該棒缺值(NaN)即整棒跳過(等同僅於全部cond序列皆有值之共同時間點判斷)、'and'組須全真且'or'組至少一真、sym為'>'比大於否則比小於
|
|
63
|
+
* 序列param須為有限數值,缺值以該時間點不存在表示; opt.mode非'long'或'short'、arrOhlc或serieses無效時throw; evaluate之conds非有效陣列(含空陣列, 同runStrategy)或cond.key不在serieses時throw
|
|
64
|
+
*
|
|
65
|
+
* Unit Test: {@link https://github.com/yuda-lyu/w-trade-backtest/blob/master/test/unit-WTradeBacktest.test.mjs Github}
|
|
66
|
+
* @function
|
|
67
|
+
* @param {Function} ott 輸入時區時間函數,傳入時間字串回傳dayjs時間物件(可用src/ott.mjs或自行以dayjs包裝)
|
|
68
|
+
* @param {Object} opt 輸入設定物件
|
|
69
|
+
* @param {Array} opt.arrOhlc 輸入K線陣列,各元素需含time(秒時間字串)、Close、High、Low欄位,且依時間由小至大排序,與runStrategy之funGetSeries(keyOhlc)同一份
|
|
70
|
+
* @param {String} opt.mode 輸入交易方向字串,'long'或'short'
|
|
71
|
+
* @param {Object} opt.serieses 輸入因子序列物件,key為因子名稱,value為{time,param}陣列,param須為有限數值
|
|
72
|
+
* @param {Array} [opt.tpsls=[]] 輸入預建first-touch表之{tp,sl}陣列,未列組合於evaluate時惰性建置,預設[]
|
|
73
|
+
* @returns {Object} 回傳session物件,內含evaluate({conds,tp,sl,settings},opt)評估函數,conds各元素為{key,sym,th,opr}(與runStrategy同構),settings可給uIni(預設1000)、uTrade(預設1)、rFee(預設0.0005),evaluate預設回傳calcOrdersSummarySimple同構摘要物件,evaluate之opt.withOrders為true時回傳{orders,summary}(orders與loadKLinesTpSl之ordersFromBars同構,供除錯對照之慢速路徑)
|
|
74
|
+
* @example
|
|
75
|
+
*
|
|
76
|
+
* let arrOhlc = [
|
|
77
|
+
* { time: '2020-01-01T00:00:00', Open: 100, High: 101, Low: 99, Close: 100 },
|
|
78
|
+
* { time: '2020-01-01T04:00:00', Open: 100, High: 106, Low: 100, Close: 105 },
|
|
79
|
+
* { time: '2020-01-01T08:00:00', Open: 105, High: 107, Low: 102, Close: 103 },
|
|
80
|
+
* { time: '2020-01-01T12:00:00', Open: 103, High: 104, Low: 94, Close: 95 },
|
|
81
|
+
* { time: '2020-01-01T16:00:00', Open: 95, High: 98, Low: 92, Close: 93 },
|
|
82
|
+
* { time: '2020-01-01T20:00:00', Open: 93, High: 99, Low: 95, Close: 97 },
|
|
83
|
+
* ]
|
|
84
|
+
*
|
|
85
|
+
* let arrSig = [
|
|
86
|
+
* { time: '2020-01-01T00:00:00', param: 1 },
|
|
87
|
+
* { time: '2020-01-01T04:00:00', param: 0 },
|
|
88
|
+
* { time: '2020-01-01T08:00:00', param: 1 },
|
|
89
|
+
* { time: '2020-01-01T12:00:00', param: 0 },
|
|
90
|
+
* { time: '2020-01-01T16:00:00', param: 0 },
|
|
91
|
+
* { time: '2020-01-01T20:00:00', param: 0 },
|
|
92
|
+
* ]
|
|
93
|
+
*
|
|
94
|
+
* let session = buildStrategyFastSession(ott, {
|
|
95
|
+
* arrOhlc,
|
|
96
|
+
* mode: 'long',
|
|
97
|
+
* serieses: { sig: arrSig },
|
|
98
|
+
* })
|
|
99
|
+
*
|
|
100
|
+
* let sm = session.evaluate({
|
|
101
|
+
* conds: [{ key: 'sig', sym: '>', th: 0.5, opr: 'and' }],
|
|
102
|
+
* tp: 0.05,
|
|
103
|
+
* sl: 0.03,
|
|
104
|
+
* settings: { uIni: 1000, uTrade: 100, rFee: 0.0005 },
|
|
105
|
+
* })
|
|
106
|
+
* console.log(sm.numTrade, sm.rWin, sm.uEquityFinal)
|
|
107
|
+
* // => 2 50.00% 1001.8
|
|
108
|
+
*
|
|
109
|
+
*/
|
|
110
|
+
let buildStrategyFastSession = (ott, opt = {}) => {
|
|
111
|
+
|
|
112
|
+
//mode
|
|
113
|
+
let mode = get(opt, 'mode', '')
|
|
114
|
+
if (mode !== 'long' && mode !== 'short') {
|
|
115
|
+
throw new Error(`invalid opt.mode[${mode}] not 'long' or 'short'`)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
//arrOhlc
|
|
119
|
+
let arrOhlc = get(opt, 'arrOhlc', null)
|
|
120
|
+
if (!isearr(arrOhlc)) {
|
|
121
|
+
throw new Error(`invalid opt.arrOhlc`)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
//serieses
|
|
125
|
+
let serieses = get(opt, 'serieses', null)
|
|
126
|
+
if (!iseobj(serieses)) {
|
|
127
|
+
throw new Error(`invalid opt.serieses`)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
//n, time, C
|
|
131
|
+
let n = arrOhlc.length
|
|
132
|
+
let time = new Array(n)
|
|
133
|
+
let C = new Float64Array(n)
|
|
134
|
+
let kpTimeInd = new Map() //K棒時間→index
|
|
135
|
+
for (let i = 0; i < n; i++) {
|
|
136
|
+
let r = arrOhlc[i]
|
|
137
|
+
time[i] = r.time
|
|
138
|
+
C[i] = r.Close
|
|
139
|
+
kpTimeInd.set(r.time, i)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//timeOhlcStart, timeOhlcEnd
|
|
143
|
+
let timeOhlcStart = n > 0 ? time[0] : ''
|
|
144
|
+
let timeOhlcEnd = n > 0 ? time[n - 1] : ''
|
|
145
|
+
|
|
146
|
+
//kpAligned, 各因子序列轉K棒對位Float64Array(缺值填NaN), 序列中不屬K棒之時間點不影響觸發(runStrategy亦僅於K棒時間判斷)
|
|
147
|
+
let kpAligned = {}
|
|
148
|
+
for (let key of Object.keys(serieses)) {
|
|
149
|
+
let arr = new Float64Array(n).fill(NaN)
|
|
150
|
+
for (let v of serieses[key]) {
|
|
151
|
+
let ind = kpTimeInd.get(v.time)
|
|
152
|
+
if (ind !== undefined) {
|
|
153
|
+
arr[ind] = v.param
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
kpAligned[key] = arr
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
//kpFirstTouch, 各(tp,sl)組合之first-touch表快取(惰性建置)
|
|
160
|
+
let kpFirstTouch = new Map()
|
|
161
|
+
let getFirstTouch = (tp, sl) => {
|
|
162
|
+
let k = `${tp}_${sl}`
|
|
163
|
+
let ft = kpFirstTouch.get(k)
|
|
164
|
+
if (!ft) {
|
|
165
|
+
ft = genKLinesTpSl(arrOhlc, { tp, sl, mode }) //tp/sl無效時由genKLinesTpSl throw
|
|
166
|
+
kpFirstTouch.set(k, ft)
|
|
167
|
+
}
|
|
168
|
+
return ft
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
//預建
|
|
172
|
+
let tpsls = get(opt, 'tpsls', [])
|
|
173
|
+
if (isearr(tpsls)) {
|
|
174
|
+
for (let v of tpsls) {
|
|
175
|
+
getFirstTouch(v.tp, v.sl)
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
//evaluate
|
|
180
|
+
let evaluate = (input = {}, optEv = {}) => {
|
|
181
|
+
|
|
182
|
+
//conds, 空陣列同runStrategy一律throw(isearr對空陣列回false)
|
|
183
|
+
let conds = get(input, 'conds', [])
|
|
184
|
+
if (!isearr(conds)) {
|
|
185
|
+
throw new Error(`invalid conds`)
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
//tp, sl
|
|
189
|
+
let tp = get(input, 'tp', null)
|
|
190
|
+
let sl = get(input, 'sl', null)
|
|
191
|
+
|
|
192
|
+
//settings
|
|
193
|
+
let st = get(input, 'settings', {})
|
|
194
|
+
let uIni = get(st, 'uIni', 1000)
|
|
195
|
+
let uTrade = get(st, 'uTrade', 1)
|
|
196
|
+
let rFee = get(st, 'rFee', 0.0005)
|
|
197
|
+
let uFee = rFee * uTrade
|
|
198
|
+
|
|
199
|
+
//withOrders
|
|
200
|
+
let withOrders = get(optEv, 'withOrders', false)
|
|
201
|
+
|
|
202
|
+
//ft
|
|
203
|
+
let ft = getFirstTouch(tp, sl)
|
|
204
|
+
let win = ft.win
|
|
205
|
+
let hold = ft.hold
|
|
206
|
+
|
|
207
|
+
//cs, 條件預解析(sym預設'>'、th預設0、opr非'and'/'or'一律'and', 與runStrategy同)
|
|
208
|
+
let cs = conds.map((cond) => {
|
|
209
|
+
let key = get(cond, 'key', '')
|
|
210
|
+
let arr = kpAligned[key]
|
|
211
|
+
if (!arr) {
|
|
212
|
+
throw new Error(`invalid cond.key[${key}] not in opt.serieses`)
|
|
213
|
+
}
|
|
214
|
+
let sym = get(cond, 'sym', '>')
|
|
215
|
+
let th = get(cond, 'th', 0)
|
|
216
|
+
let opr = get(cond, 'opr', null)
|
|
217
|
+
if (opr !== 'and' && opr !== 'or') {
|
|
218
|
+
opr = 'and'
|
|
219
|
+
}
|
|
220
|
+
return { arr, gt: sym === '>', th, isOr: opr === 'or' }
|
|
221
|
+
})
|
|
222
|
+
//orders, 逐棒判斷觸發與結算(依timeStart升序產生, 累計順序與calcOrders一致)
|
|
223
|
+
let orders = []
|
|
224
|
+
let uEquity = uIni
|
|
225
|
+
let uCumu = 0
|
|
226
|
+
for (let i = 0; i < n; i++) {
|
|
227
|
+
|
|
228
|
+
//bTrigger, 任一cond於該棒缺值(NaN)即整棒跳過(等同runStrategy僅於全部cond序列皆有值之共同時間點判斷)
|
|
229
|
+
// 'and'組須全真(空組無約束), 'or'組至少一真(無or組不約束), 與runStrategy合成邏輯同構
|
|
230
|
+
let bSkip = false
|
|
231
|
+
let okAnd = true
|
|
232
|
+
let hasOr = false
|
|
233
|
+
let okOr = false
|
|
234
|
+
for (let c of cs) {
|
|
235
|
+
let y = c.arr[i]
|
|
236
|
+
if (Number.isNaN(y)) {
|
|
237
|
+
bSkip = true
|
|
238
|
+
break
|
|
239
|
+
}
|
|
240
|
+
let b = c.gt ? y > c.th : y < c.th
|
|
241
|
+
if (c.isOr) {
|
|
242
|
+
hasOr = true
|
|
243
|
+
okOr = okOr || b
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
okAnd = okAnd && b
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (bSkip || !okAnd || (hasOr && !okOr)) {
|
|
250
|
+
continue
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
//進場, 該棒Close
|
|
254
|
+
let c0 = C[i]
|
|
255
|
+
let w = win[i]
|
|
256
|
+
|
|
257
|
+
//o, 訂單紀錄(預設精簡欄位供calcOrdersSummarySimple使用; withOrders時與ordersFromBars同構)
|
|
258
|
+
let o
|
|
259
|
+
if (withOrders) {
|
|
260
|
+
o = {
|
|
261
|
+
mode,
|
|
262
|
+
timeStart: time[i],
|
|
263
|
+
priceStart: c0,
|
|
264
|
+
uTrade,
|
|
265
|
+
rTakeProfit: tp,
|
|
266
|
+
priceTakeProfit: mode === 'long' ? (1 + tp) * c0 : (1 - tp) * c0,
|
|
267
|
+
rStopLoss: sl,
|
|
268
|
+
priceStopLoss: mode === 'long' ? (1 - sl) * c0 : (1 + sl) * c0,
|
|
269
|
+
timeEnd: '',
|
|
270
|
+
priceEnd: '',
|
|
271
|
+
modeResult: '',
|
|
272
|
+
rFee,
|
|
273
|
+
uFee,
|
|
274
|
+
uProfitOrLoss: '',
|
|
275
|
+
rProfitOrLoss: '',
|
|
276
|
+
uCumuProfitOrLoss: '',
|
|
277
|
+
rCumuProfitOrLoss: '',
|
|
278
|
+
uEquity: '',
|
|
279
|
+
uTradeAll: '',
|
|
280
|
+
rTradeAll: '',
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
o = {
|
|
285
|
+
timeStart: time[i],
|
|
286
|
+
timeEnd: '',
|
|
287
|
+
uTrade,
|
|
288
|
+
uProfitOrLoss: '',
|
|
289
|
+
uEquity: '',
|
|
290
|
+
modeResult: '',
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
//結算(win>=0為已觸發, 未觸發者留空=未平倉, 計入numTrade不計入已結績效)
|
|
295
|
+
if (w >= 0) {
|
|
296
|
+
let priceEnd
|
|
297
|
+
if (w === 1) {
|
|
298
|
+
priceEnd = mode === 'long' ? (1 + tp) * c0 : (1 - tp) * c0 //止盈線
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
priceEnd = mode === 'long' ? (1 - sl) * c0 : (1 + sl) * c0 //止損線
|
|
302
|
+
}
|
|
303
|
+
let u = settleOrderPnl(mode, uTrade, c0, priceEnd, uFee)
|
|
304
|
+
uCumu += u
|
|
305
|
+
uEquity += u
|
|
306
|
+
o.timeEnd = time[i + hold[i]]
|
|
307
|
+
o.uProfitOrLoss = u
|
|
308
|
+
o.uEquity = uEquity
|
|
309
|
+
o.modeResult = u < 0 ? 'loss' : 'profit'
|
|
310
|
+
if (withOrders) {
|
|
311
|
+
o.priceEnd = priceEnd
|
|
312
|
+
o.rProfitOrLoss = u / uTrade
|
|
313
|
+
o.uCumuProfitOrLoss = uCumu
|
|
314
|
+
o.rCumuProfitOrLoss = dig((uCumu / uIni) * 100, 2) + '%'
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
//push
|
|
319
|
+
orders.push(o)
|
|
320
|
+
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
//summary, 直接調用官方calcOrdersSummarySimple(orders已依timeStart升序故skipSort)
|
|
324
|
+
let summary = calcOrdersSummarySimple(ott, uIni, orders, timeOhlcStart, timeOhlcEnd, { skipSort: true })
|
|
325
|
+
|
|
326
|
+
//withOrders時回傳訂單陣列供除錯對照
|
|
327
|
+
if (withOrders) {
|
|
328
|
+
return { orders, summary }
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return summary
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
return {
|
|
335
|
+
evaluate,
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
export default buildStrategyFastSession
|
|
341
|
+
</code></pre>
|
|
342
|
+
</article>
|
|
343
|
+
</section>
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
</div>
|
|
351
|
+
|
|
352
|
+
<br class="clear">
|
|
353
|
+
|
|
354
|
+
<footer>
|
|
355
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
356
|
+
</footer>
|
|
357
|
+
|
|
358
|
+
<script>prettyPrint();</script>
|
|
359
|
+
<script src="scripts/polyfill.js"></script>
|
|
360
|
+
<script src="scripts/linenumber.js"></script>
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
</body>
|
|
365
|
+
</html>
|
package/docs/calcOrders.mjs.html
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -265,7 +265,7 @@ export default calcOrders
|
|
|
265
265
|
<br class="clear">
|
|
266
266
|
|
|
267
267
|
<footer>
|
|
268
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
268
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
269
269
|
</footer>
|
|
270
270
|
|
|
271
271
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -133,7 +133,7 @@ export default calcOrdersRatio
|
|
|
133
133
|
<br class="clear">
|
|
134
134
|
|
|
135
135
|
<footer>
|
|
136
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
136
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
137
137
|
</footer>
|
|
138
138
|
|
|
139
139
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -493,7 +493,7 @@ export default calcOrdersSummary
|
|
|
493
493
|
<br class="clear">
|
|
494
494
|
|
|
495
495
|
<footer>
|
|
496
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
496
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
497
497
|
</footer>
|
|
498
498
|
|
|
499
499
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -147,13 +147,16 @@ let calcOrdersSummarySimple = (ott, uIni, ordersAll, timeOhlcStart, timeOhlcEnd,
|
|
|
147
147
|
cum += delta.get(t); cumAt.set(t, cum)
|
|
148
148
|
}
|
|
149
149
|
let uTradeAllMax = 0
|
|
150
|
+
let rTradeAllMax = '' //無訂單(峰值從未更新)時維持'' (對齊原版初始值語義, 原版僅於uTradeAllMax被更新時賦值)
|
|
150
151
|
for (let o of ordersAll) {
|
|
151
152
|
let v = Math.abs(cumAt.get(o.timeStart))
|
|
152
|
-
if (v > uTradeAllMax)
|
|
153
|
+
if (v > uTradeAllMax) {
|
|
154
|
+
uTradeAllMax = v
|
|
155
|
+
rTradeAllMax = dig(uTradeAllMax / uIni * 100, 2) + '%'
|
|
156
|
+
}
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
let rWin = dig(nWin / numTradeFin * 100, 2) + '%'
|
|
156
|
-
let rTradeAllMax = dig(uTradeAllMax / uIni * 100, 2) + '%'
|
|
157
160
|
|
|
158
161
|
let btDays = ott(timeOhlcEnd).diff(ott(timeOhlcStart), 'day')
|
|
159
162
|
let btYears = btDays / 365
|
|
@@ -194,7 +197,7 @@ export default calcOrdersSummarySimple
|
|
|
194
197
|
<br class="clear">
|
|
195
198
|
|
|
196
199
|
<footer>
|
|
197
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
200
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
198
201
|
</footer>
|
|
199
202
|
|
|
200
203
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -188,7 +188,7 @@ export default calcSummary
|
|
|
188
188
|
<br class="clear">
|
|
189
189
|
|
|
190
190
|
<footer>
|
|
191
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
191
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
192
192
|
</footer>
|
|
193
193
|
|
|
194
194
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -252,7 +252,7 @@ export default closeAndSummaryOrders
|
|
|
252
252
|
<br class="clear">
|
|
253
253
|
|
|
254
254
|
<footer>
|
|
255
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
255
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
256
256
|
</footer>
|
|
257
257
|
|
|
258
258
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -141,7 +141,7 @@ export default genKLinesTpSl
|
|
|
141
141
|
<br class="clear">
|
|
142
142
|
|
|
143
143
|
<footer>
|
|
144
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
144
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
145
145
|
</footer>
|
|
146
146
|
|
|
147
147
|
<script>prettyPrint();</script>
|
package/docs/genReport.mjs.html
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -190,7 +190,7 @@ export default genReport
|
|
|
190
190
|
<br class="clear">
|
|
191
191
|
|
|
192
192
|
<footer>
|
|
193
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
193
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
194
194
|
</footer>
|
|
195
195
|
|
|
196
196
|
<script>prettyPrint();</script>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nav >
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li></ul>
|
|
32
|
+
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#buildKLinesTpSl">buildKLinesTpSl</a></li><li><a href="global.html#buildStrategyFastSession">buildStrategyFastSession</a></li><li><a href="global.html#calcOrders">calcOrders</a></li><li><a href="global.html#calcOrdersRatio">calcOrdersRatio</a></li><li><a href="global.html#calcOrdersSummary">calcOrdersSummary</a></li><li><a href="global.html#calcOrdersSummarySimple">calcOrdersSummarySimple</a></li><li><a href="global.html#calcSummary">calcSummary</a></li><li><a href="global.html#closeAndSummaryOrders">closeAndSummaryOrders</a></li><li><a href="global.html#genKLinesTpSl">genKLinesTpSl</a></li><li><a href="global.html#genReport">genReport</a></li><li><a href="global.html#genReportCore">genReportCore</a></li><li><a href="global.html#loadKLinesTpSl">loadKLinesTpSl</a></li><li><a href="global.html#runStrategies">runStrategies</a></li><li><a href="global.html#runStrategiesAndBacktest">runStrategiesAndBacktest</a></li><li><a href="global.html#runStrategy">runStrategy</a></li><li><a href="global.html#settleOrderPnl">settleOrderPnl</a></li></ul>
|
|
33
33
|
|
|
34
34
|
</nav>
|
|
35
35
|
|
|
@@ -115,7 +115,7 @@ export default genReportCore
|
|
|
115
115
|
<br class="clear">
|
|
116
116
|
|
|
117
117
|
<footer>
|
|
118
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
118
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Aug 18 2026 12:40:44 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
119
119
|
</footer>
|
|
120
120
|
|
|
121
121
|
<script>prettyPrint();</script>
|