w-trade-backtest 1.1.11 → 1.1.13
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 +1 -1
- package/docs/buildStrategyFastSession.mjs.html +1 -1
- package/docs/calcOrders.mjs.html +1 -1
- package/docs/calcOrdersRatio.mjs.html +1 -1
- package/docs/calcOrdersSummary.mjs.html +1 -1
- package/docs/calcOrdersSummarySimple.mjs.html +1 -1
- package/docs/calcSummary.mjs.html +1 -1
- package/docs/closeAndSummaryOrders.mjs.html +1 -1
- package/docs/genKLinesTpSl.mjs.html +1 -1
- package/docs/genReport.mjs.html +1 -1
- package/docs/genReportCore.mjs.html +1 -1
- package/docs/global.html +1 -1
- package/docs/index.html +1 -1
- package/docs/loadKLinesTpSl.mjs.html +1 -1
- package/docs/runStrategies.mjs.html +1 -1
- package/docs/runStrategiesAndBacktest.mjs.html +1 -1
- package/docs/runStrategy.mjs.html +1 -1
- package/docs/settleOrderPnl.mjs.html +1 -1
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* w-trade-backtest v1.1.
|
|
2
|
+
* w-trade-backtest v1.1.13
|
|
3
3
|
* (c) 2018-2021 yuda-lyu(semisphere)
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r(require("path"),require("fs"),require("url")):"function"==typeof define&&define.amd?define(["path","fs","url"],r):(t="undefined"!=typeof globalThis?globalThis:t||self)["w-trade-backtest"]=r(t.path,t.fs,t.url)}(this,function(t,r,e){"use strict";var n="undefined"!=typeof document?document.currentScript:null;function o(t,r){for(var e=-1,n=null==t?0:t.length;++e<n&&!1!==r(t[e],e,t););return t}var i,u=function(t,r,e){for(var n=-1,o=Object(t),u=e(t),a=u.length;a--;){var s=u[i?a:++n];if(!1===r(o[s],s,o))break}return t};var a="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self,l=a||s||Function("return this")(),f=l.Symbol,c=Object.prototype,d=c.hasOwnProperty,h=c.toString,p=f?f.toStringTag:void 0;var m=Object.prototype.toString;var y=f?f.toStringTag:void 0;function v(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":y&&y in Object(t)?function(t){var r=d.call(t,p),e=t[p];try{t[p]=void 0;var n=!0}catch(t){}var o=h.call(t);return n&&(r?t[p]=e:delete t[p]),o}(t):function(t){return m.call(t)}(t)}function b(t){return null!=t&&"object"==typeof t}function g(t){return b(t)&&"[object Arguments]"==v(t)}var w=Object.prototype,O=w.hasOwnProperty,j=w.propertyIsEnumerable,S=g(function(){return arguments}())?g:function(t){return b(t)&&O.call(t,"callee")&&!j.call(t,"callee")},$=S,E=Array.isArray;var _="object"==typeof exports&&exports&&!exports.nodeType&&exports,T=_&&"object"==typeof module&&module&&!module.nodeType&&module,P=T&&T.exports===_?l.Buffer:void 0,L=(P?P.isBuffer:void 0)||function(){return!1},A=/^(?:0|[1-9]\d*)$/;function M(t,r){var e=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==e||"symbol"!=e&&A.test(t))&&t>-1&&t%1==0&&t<r}function k(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}var F={};function D(t){return function(r){return t(r)}}F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F["[object Arguments]"]=F["[object Array]"]=F["[object ArrayBuffer]"]=F["[object Boolean]"]=F["[object DataView]"]=F["[object Date]"]=F["[object Error]"]=F["[object Function]"]=F["[object Map]"]=F["[object Number]"]=F["[object Object]"]=F["[object RegExp]"]=F["[object Set]"]=F["[object String]"]=F["[object WeakMap]"]=!1;var x="object"==typeof exports&&exports&&!exports.nodeType&&exports,C=x&&"object"==typeof module&&module&&!module.nodeType&&module,R=C&&C.exports===x&&a.process,Y=function(){try{var t=C&&C.require&&C.require("util").types;return t||R&&R.binding&&R.binding("util")}catch(t){}}(),I=Y&&Y.isTypedArray,N=I?D(I):function(t){return b(t)&&k(t.length)&&!!F[v(t)]},q=Object.prototype.hasOwnProperty;function z(t,r){var e=E(t),n=!e&&$(t),o=!e&&!n&&L(t),i=!e&&!n&&!o&&N(t),u=e||n||o||i,a=u?function(t,r){for(var e=-1,n=Array(t);++e<t;)n[e]=r(e);return n}(t.length,String):[],s=a.length;for(var l in t)!r&&!q.call(t,l)||u&&("length"==l||o&&("offset"==l||"parent"==l)||i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||M(l,s))||a.push(l);return a}var H=Object.prototype;function U(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||H)}function B(t,r){return function(e){return t(r(e))}}var W=B(Object.keys,Object),J=Object.prototype.hasOwnProperty;function V(t){if(!U(t))return W(t);var r=[];for(var e in Object(t))J.call(t,e)&&"constructor"!=e&&r.push(e);return r}function G(t){var r=typeof t;return null!=t&&("object"==r||"function"==r)}function Z(t){if(!G(t))return!1;var r=v(t);return"[object Function]"==r||"[object GeneratorFunction]"==r||"[object AsyncFunction]"==r||"[object Proxy]"==r}function K(t){return null!=t&&k(t.length)&&!Z(t)}function Q(t){return K(t)?z(t):V(t)}var X=function(t,r){return function(e,n){if(null==e)return e;if(!K(e))return t(e,n);for(var o=e.length,i=r?o:-1,u=Object(e);(r?i--:++i<o)&&!1!==n(u[i],i,u););return e}}(function(t,r){return t&&u(t,r,Q)}),tt=X;function rt(t){return t}function et(t,r){var e;return(E(t)?o:tt)(t,"function"==typeof(e=r)?e:rt)}function nt(t){return t&&t.length?t[0]:void 0}function ot(t){return"symbol"==typeof t||b(t)&&"[object Symbol]"==v(t)}var it=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ut=/^\w*$/;function at(t,r){if(E(t))return!1;var e=typeof t;return!("number"!=e&&"symbol"!=e&&"boolean"!=e&&null!=t&&!ot(t))||(ut.test(t)||!it.test(t)||null!=r&&t in Object(r))}var st,lt=l["__core-js_shared__"],ft=(st=/[^.]+$/.exec(lt&<.keys&<.keys.IE_PROTO||""))?"Symbol(src)_1."+st:"";var ct=Function.prototype.toString;function dt(t){if(null!=t){try{return ct.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var ht=/^\[object .+?Constructor\]$/,pt=Function.prototype,mt=Object.prototype,yt=pt.toString,vt=mt.hasOwnProperty,bt=RegExp("^"+yt.call(vt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gt(t){return!(!G(t)||(r=t,ft&&ft in r))&&(Z(t)?bt:ht).test(dt(t));var r}function wt(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return gt(e)?e:void 0}var Ot=wt(Object,"create");var jt=Object.prototype.hasOwnProperty;var St=Object.prototype.hasOwnProperty;function $t(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}function Et(t,r){return t===r||t!=t&&r!=r}function _t(t,r){for(var e=t.length;e--;)if(Et(t[e][0],r))return e;return-1}$t.prototype.clear=function(){this.__data__=Ot?Ot(null):{},this.size=0},$t.prototype.delete=function(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r},$t.prototype.get=function(t){var r=this.__data__;if(Ot){var e=r[t];return"__lodash_hash_undefined__"===e?void 0:e}return jt.call(r,t)?r[t]:void 0},$t.prototype.has=function(t){var r=this.__data__;return Ot?void 0!==r[t]:St.call(r,t)},$t.prototype.set=function(t,r){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=Ot&&void 0===r?"__lodash_hash_undefined__":r,this};var Tt=Array.prototype.splice;function Pt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}Pt.prototype.clear=function(){this.__data__=[],this.size=0},Pt.prototype.delete=function(t){var r=this.__data__,e=_t(r,t);return!(e<0)&&(e==r.length-1?r.pop():Tt.call(r,e,1),--this.size,!0)},Pt.prototype.get=function(t){var r=this.__data__,e=_t(r,t);return e<0?void 0:r[e][1]},Pt.prototype.has=function(t){return _t(this.__data__,t)>-1},Pt.prototype.set=function(t,r){var e=this.__data__,n=_t(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var Lt=wt(l,"Map");function At(t,r){var e,n,o=t.__data__;return("string"==(n=typeof(e=r))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==e:null===e)?o["string"==typeof r?"string":"hash"]:o.map}function Mt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}Mt.prototype.clear=function(){this.size=0,this.__data__={hash:new $t,map:new(Lt||Pt),string:new $t}},Mt.prototype.delete=function(t){var r=At(this,t).delete(t);return this.size-=r?1:0,r},Mt.prototype.get=function(t){return At(this,t).get(t)},Mt.prototype.has=function(t){return At(this,t).has(t)},Mt.prototype.set=function(t,r){var e=At(this,t),n=e.size;return e.set(t,r),this.size+=e.size==n?0:1,this};function kt(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new TypeError("Expected a function");var e=function(){var n=arguments,o=r?r.apply(this,n):n[0],i=e.cache;if(i.has(o))return i.get(o);var u=t.apply(this,n);return e.cache=i.set(o,u)||i,u};return e.cache=new(kt.Cache||Mt),e}kt.Cache=Mt;var Ft,Dt,xt,Ct=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rt=/\\(\\)?/g,Yt=(Ft=function(t){var r=[];return 46===t.charCodeAt(0)&&r.push(""),t.replace(Ct,function(t,e,n,o){r.push(n?o.replace(Rt,"$1"):e||t)}),r},Dt=kt(Ft,function(t){return 500===xt.size&&xt.clear(),t}),xt=Dt.cache,Dt),It=Yt;function Nt(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e<n;)o[e]=r(t[e],e,t);return o}var qt=f?f.prototype:void 0,zt=qt?qt.toString:void 0;function Ht(t){if("string"==typeof t)return t;if(E(t))return Nt(t,Ht)+"";if(ot(t))return zt?zt.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}function Ut(t){return null==t?"":Ht(t)}function Bt(t,r){return E(t)?t:at(t,r)?[t]:It(Ut(t))}function Wt(t){if("string"==typeof t||ot(t))return t;var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}function Jt(t,r){for(var e=0,n=(r=Bt(r,t)).length;null!=t&&e<n;)t=t[Wt(r[e++])];return e&&e==n?t:void 0}function Vt(t,r,e){var n=null==t?void 0:Jt(t,r);return void 0===n?e:n}function Gt(t){var r=null==t?0:t.length;return r?t[r-1]:void 0}var Zt=wt(l,"DataView"),Kt=wt(l,"Promise"),Qt=wt(l,"Set"),Xt=wt(l,"WeakMap"),tr="[object Map]",rr="[object Promise]",er="[object Set]",nr="[object WeakMap]",or="[object DataView]",ir=dt(Zt),ur=dt(Lt),ar=dt(Kt),sr=dt(Qt),lr=dt(Xt),fr=v;(Zt&&fr(new Zt(new ArrayBuffer(1)))!=or||Lt&&fr(new Lt)!=tr||Kt&&fr(Kt.resolve())!=rr||Qt&&fr(new Qt)!=er||Xt&&fr(new Xt)!=nr)&&(fr=function(t){var r=v(t),e="[object Object]"==r?t.constructor:void 0,n=e?dt(e):"";if(n)switch(n){case ir:return or;case ur:return tr;case ar:return rr;case sr:return er;case lr:return nr}return r});var cr=fr;function dr(t){return function(r){return null==r?void 0:r[t]}}var hr=dr("length"),pr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function mr(t){return pr.test(t)}var yr="\\ud800-\\udfff",vr="["+yr+"]",br="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",gr="\\ud83c[\\udffb-\\udfff]",wr="[^"+yr+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",jr="[\\ud800-\\udbff][\\udc00-\\udfff]",Sr="(?:"+br+"|"+gr+")"+"?",$r="[\\ufe0e\\ufe0f]?",Er=$r+Sr+("(?:\\u200d(?:"+[wr,Or,jr].join("|")+")"+$r+Sr+")*"),_r="(?:"+[wr+br+"?",br,Or,jr,vr].join("|")+")",Tr=RegExp(gr+"(?="+gr+")|"+_r+Er,"g");function Pr(t){return mr(t)?function(t){for(var r=Tr.lastIndex=0;Tr.test(t);)++r;return r}(t):hr(t)}function Lr(t){if(null==t)return 0;if(K(t))return"string"==typeof(r=t)||!E(r)&&b(r)&&"[object String]"==v(r)?Pr(t):t.length;var r,e=cr(t);return"[object Map]"==e||"[object Set]"==e?t.size:V(t).length}function Ar(t){var r=this.__data__=new Pt(t);this.size=r.size}Ar.prototype.clear=function(){this.__data__=new Pt,this.size=0},Ar.prototype.delete=function(t){var r=this.__data__,e=r.delete(t);return this.size=r.size,e},Ar.prototype.get=function(t){return this.__data__.get(t)},Ar.prototype.has=function(t){return this.__data__.has(t)},Ar.prototype.set=function(t,r){var e=this.__data__;if(e instanceof Pt){var n=e.__data__;if(!Lt||n.length<199)return n.push([t,r]),this.size=++e.size,this;e=this.__data__=new Mt(n)}return e.set(t,r),this.size=e.size,this};function Mr(t){var r=-1,e=null==t?0:t.length;for(this.__data__=new Mt;++r<e;)this.add(t[r])}function kr(t,r){for(var e=-1,n=null==t?0:t.length;++e<n;)if(r(t[e],e,t))return!0;return!1}function Fr(t,r){return t.has(r)}Mr.prototype.add=Mr.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Mr.prototype.has=function(t){return this.__data__.has(t)};function Dr(t,r,e,n,o,i){var u=1&e,a=t.length,s=r.length;if(a!=s&&!(u&&s>a))return!1;var l=i.get(t),f=i.get(r);if(l&&f)return l==r&&f==t;var c=-1,d=!0,h=2&e?new Mr:void 0;for(i.set(t,r),i.set(r,t);++c<a;){var p=t[c],m=r[c];if(n)var y=u?n(m,p,c,r,t,i):n(p,m,c,t,r,i);if(void 0!==y){if(y)continue;d=!1;break}if(h){if(!kr(r,function(t,r){if(!Fr(h,r)&&(p===t||o(p,t,e,n,i)))return h.push(r)})){d=!1;break}}else if(p!==m&&!o(p,m,e,n,i)){d=!1;break}}return i.delete(t),i.delete(r),d}var xr=l.Uint8Array;function Cr(t){var r=-1,e=Array(t.size);return t.forEach(function(t,n){e[++r]=[n,t]}),e}function Rr(t){var r=-1,e=Array(t.size);return t.forEach(function(t){e[++r]=t}),e}var Yr=f?f.prototype:void 0,Ir=Yr?Yr.valueOf:void 0;function Nr(t,r){for(var e=-1,n=r.length,o=t.length;++e<n;)t[o+e]=r[e];return t}function qr(t,r,e){var n=r(t);return E(t)?n:Nr(n,e(t))}function zr(t,r){for(var e=-1,n=null==t?0:t.length,o=0,i=[];++e<n;){var u=t[e];r(u,e,t)&&(i[o++]=u)}return i}function Hr(){return[]}var Ur=Object.prototype.propertyIsEnumerable,Br=Object.getOwnPropertySymbols,Wr=Br?function(t){return null==t?[]:(t=Object(t),zr(Br(t),function(r){return Ur.call(t,r)}))}:Hr;function Jr(t){return qr(t,Q,Wr)}var Vr=Object.prototype.hasOwnProperty;var Gr="[object Arguments]",Zr="[object Array]",Kr="[object Object]",Qr=Object.prototype.hasOwnProperty;function Xr(t,r,e,n,o,i){var u=E(t),a=E(r),s=u?Zr:cr(t),l=a?Zr:cr(r),f=(s=s==Gr?Kr:s)==Kr,c=(l=l==Gr?Kr:l)==Kr,d=s==l;if(d&&L(t)){if(!L(r))return!1;u=!0,f=!1}if(d&&!f)return i||(i=new Ar),u||N(t)?Dr(t,r,e,n,o,i):function(t,r,e,n,o,i,u){switch(e){case"[object DataView]":if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=r.byteLength||!i(new xr(t),new xr(r)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Et(+t,+r);case"[object Error]":return t.name==r.name&&t.message==r.message;case"[object RegExp]":case"[object String]":return t==r+"";case"[object Map]":var a=Cr;case"[object Set]":var s=1&n;if(a||(a=Rr),t.size!=r.size&&!s)return!1;var l=u.get(t);if(l)return l==r;n|=2,u.set(t,r);var f=Dr(a(t),a(r),n,o,i,u);return u.delete(t),f;case"[object Symbol]":if(Ir)return Ir.call(t)==Ir.call(r)}return!1}(t,r,s,e,n,o,i);if(!(1&e)){var h=f&&Qr.call(t,"__wrapped__"),p=c&&Qr.call(r,"__wrapped__");if(h||p){var m=h?t.value():t,y=p?r.value():r;return i||(i=new Ar),o(m,y,e,n,i)}}return!!d&&(i||(i=new Ar),function(t,r,e,n,o,i){var u=1&e,a=Jr(t),s=a.length;if(s!=Jr(r).length&&!u)return!1;for(var l=s;l--;){var f=a[l];if(!(u?f in r:Vr.call(r,f)))return!1}var c=i.get(t),d=i.get(r);if(c&&d)return c==r&&d==t;var h=!0;i.set(t,r),i.set(r,t);for(var p=u;++l<s;){var m=t[f=a[l]],y=r[f];if(n)var v=u?n(y,m,f,r,t,i):n(m,y,f,t,r,i);if(!(void 0===v?m===y||o(m,y,e,n,i):v)){h=!1;break}p||(p="constructor"==f)}if(h&&!p){var b=t.constructor,g=r.constructor;b==g||!("constructor"in t)||!("constructor"in r)||"function"==typeof b&&b instanceof b&&"function"==typeof g&&g instanceof g||(h=!1)}return i.delete(t),i.delete(r),h}(t,r,e,n,o,i))}function te(t,r,e,n,o){return t===r||(null==t||null==r||!b(t)&&!b(r)?t!=t&&r!=r:Xr(t,r,e,n,te,o))}function re(t){return t==t&&!G(t)}function ee(t,r){return function(e){return null!=e&&(e[t]===r&&(void 0!==r||t in Object(e)))}}function ne(t){var r=function(t){for(var r=Q(t),e=r.length;e--;){var n=r[e],o=t[n];r[e]=[n,o,re(o)]}return r}(t);return 1==r.length&&r[0][2]?ee(r[0][0],r[0][1]):function(e){return e===t||function(t,r,e,n){var o=e.length,i=o,u=!n;if(null==t)return!i;for(t=Object(t);o--;){var a=e[o];if(u&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++o<i;){var s=(a=e[o])[0],l=t[s],f=a[1];if(u&&a[2]){if(void 0===l&&!(s in t))return!1}else{var c=new Ar;if(n)var d=n(l,f,s,t,r,c);if(!(void 0===d?te(f,l,3,n,c):d))return!1}}return!0}(e,t,r)}}function oe(t,r){return null!=t&&r in Object(t)}function ie(t,r){return null!=t&&function(t,r,e){for(var n=-1,o=(r=Bt(r,t)).length,i=!1;++n<o;){var u=Wt(r[n]);if(!(i=null!=t&&e(t,u)))break;t=t[u]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&k(o)&&M(u,o)&&(E(t)||$(t))}(t,r,oe)}function ue(t){return at(t)?dr(Wt(t)):function(t){return function(r){return Jt(r,t)}}(t)}function ae(t){return"function"==typeof t?t:null==t?rt:"object"==typeof t?E(t)?function(t,r){return at(t)&&re(r)?ee(Wt(t),r):function(e){var n=Vt(e,t);return void 0===n&&n===r?ie(e,t):te(r,n,3)}}(t[0],t[1]):ne(t):ue(t)}function se(t,r){var e=-1,n=K(t)?Array(t.length):[];return tt(t,function(t,o,i){n[++e]=r(t,o,i)}),n}function le(t,r){return(E(t)?Nt:se)(t,ae(r))}var fe=f?f.isConcatSpreadable:void 0;function ce(t){return E(t)||$(t)||!!(fe&&t&&t[fe])}function de(t,r,e,n,o){var i=-1,u=t.length;for(e||(e=ce),o||(o=[]);++i<u;){var a=t[i];r>0&&e(a)?r>1?de(a,r-1,e,n,o):Nr(o,a):n||(o[o.length]=a)}return o}function he(t,r){if(t!==r){var e=void 0!==t,n=null===t,o=t==t,i=ot(t),u=void 0!==r,a=null===r,s=r==r,l=ot(r);if(!a&&!l&&!i&&t>r||i&&u&&s&&!a&&!l||n&&u&&s||!e&&s||!o)return 1;if(!n&&!i&&!l&&t<r||l&&e&&o&&!n&&!i||a&&e&&o||!u&&o||!s)return-1}return 0}function pe(t,r,e){r=r.length?Nt(r,function(t){return E(t)?function(r){return Jt(r,1===t.length?t[0]:t)}:t}):[rt];var n=-1;return r=Nt(r,D(ae)),function(t,r){var e=t.length;for(t.sort(r);e--;)t[e]=t[e].value;return t}(se(t,function(t,e,o){return{criteria:Nt(r,function(r){return r(t)}),index:++n,value:t}}),function(t,r){return function(t,r,e){for(var n=-1,o=t.criteria,i=r.criteria,u=o.length,a=e.length;++n<u;){var s=he(o[n],i[n]);if(s)return n>=a?s:s*("desc"==e[n]?-1:1)}return t.index-r.index}(t,r,e)})}var me=Math.max;var ye=function(){try{var t=wt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),ve=ye,be=ve?function(t,r){return ve(t,"toString",{configurable:!0,enumerable:!1,value:(e=r,function(){return e}),writable:!0});var e}:rt,ge=be,we=Date.now;var Oe=function(t){var r=0,e=0;return function(){var n=we(),o=16-(n-e);if(e=n,o>0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(ge),je=Oe;function Se(t,r,e){if(!G(e))return!1;var n=typeof r;return!!("number"==n?K(e)&&M(r,e.length):"string"==n&&r in e)&&Et(e[r],t)}var $e=function(t,r){return je(function(t,r,e){return r=me(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,i=me(n.length-r,0),u=Array(i);++o<i;)u[o]=n[r+o];o=-1;for(var a=Array(r+1);++o<r;)a[o]=n[o];return a[r]=e(u),function(t,r,e){switch(e.length){case 0:return t.call(r);case 1:return t.call(r,e[0]);case 2:return t.call(r,e[0],e[1]);case 3:return t.call(r,e[0],e[1],e[2])}return t.apply(r,e)}(t,this,a)}}(t,r,rt),t+"")}(function(t,r){if(null==t)return[];var e=r.length;return e>1&&Se(t,r[0],r[1])?r=[]:e>2&&Se(r[0],r[1],r[2])&&(r=[r[0]]),pe(t,de(r,1),[])}),Ee=$e;function _e(t,r,e){"__proto__"==r&&ve?ve(t,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):t[r]=e}var Te=Object.prototype.hasOwnProperty;function Pe(t,r,e){var n=t[r];Te.call(t,r)&&Et(n,e)&&(void 0!==e||r in t)||_e(t,r,e)}function Le(t,r,e,n){var o=!e;e||(e={});for(var i=-1,u=r.length;++i<u;){var a=r[i],s=n?n(e[a],t[a],a,e,t):void 0;void 0===s&&(s=t[a]),o?_e(e,a,s):Pe(e,a,s)}return e}var Ae=Object.prototype.hasOwnProperty;function Me(t){if(!G(t))return function(t){var r=[];if(null!=t)for(var e in Object(t))r.push(e);return r}(t);var r=U(t),e=[];for(var n in t)("constructor"!=n||!r&&Ae.call(t,n))&&e.push(n);return e}function ke(t){return K(t)?z(t,!0):Me(t)}var Fe="object"==typeof exports&&exports&&!exports.nodeType&&exports,De=Fe&&"object"==typeof module&&module&&!module.nodeType&&module,xe=De&&De.exports===Fe?l.Buffer:void 0,Ce=xe?xe.allocUnsafe:void 0;var Re=B(Object.getPrototypeOf,Object),Ye=Object.getOwnPropertySymbols?function(t){for(var r=[];t;)Nr(r,Wr(t)),t=Re(t);return r}:Hr,Ie=Ye;function Ne(t){return qr(t,ke,Ie)}var qe=Object.prototype.hasOwnProperty;function ze(t){var r=new t.constructor(t.byteLength);return new xr(r).set(new xr(t)),r}var He=/\w*$/;var Ue=f?f.prototype:void 0,Be=Ue?Ue.valueOf:void 0;function We(t,r,e){var n,o=t.constructor;switch(r){case"[object ArrayBuffer]":return ze(t);case"[object Boolean]":case"[object Date]":return new o(+t);case"[object DataView]":return function(t,r){var e=r?ze(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)}(t,e);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(t,r){var e=r?ze(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)}(t,e);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(t);case"[object RegExp]":return function(t){var r=new t.constructor(t.source,He.exec(t));return r.lastIndex=t.lastIndex,r}(t);case"[object Symbol]":return n=t,Be?Object(Be.call(n)):{}}}var Je=Object.create,Ve=function(){function t(){}return function(r){if(!G(r))return{};if(Je)return Je(r);t.prototype=r;var e=new t;return t.prototype=void 0,e}}(),Ge=Ve;var Ze=Y&&Y.isMap,Ke=Ze?D(Ze):function(t){return b(t)&&"[object Map]"==cr(t)};var Qe=Y&&Y.isSet,Xe=Qe?D(Qe):function(t){return b(t)&&"[object Set]"==cr(t)},tn="[object Arguments]",rn="[object Function]",en="[object Object]",nn={};function on(t,r,e,n,i,u){var a,s=1&r,l=2&r,f=4&r;if(e&&(a=i?e(t,n,i,u):e(t)),void 0!==a)return a;if(!G(t))return t;var c=E(t);if(c){if(a=function(t){var r=t.length,e=new t.constructor(r);return r&&"string"==typeof t[0]&&qe.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!s)return function(t,r){var e=-1,n=t.length;for(r||(r=Array(n));++e<n;)r[e]=t[e];return r}(t,a)}else{var d=cr(t),h=d==rn||"[object GeneratorFunction]"==d;if(L(t))return function(t,r){if(r)return t.slice();var e=t.length,n=Ce?Ce(e):new t.constructor(e);return t.copy(n),n}(t,s);if(d==en||d==tn||h&&!i){if(a=l||h?{}:function(t){return"function"!=typeof t.constructor||U(t)?{}:Ge(Re(t))}(t),!s)return l?function(t,r){return Le(t,Ie(t),r)}(t,function(t,r){return t&&Le(r,ke(r),t)}(a,t)):function(t,r){return Le(t,Wr(t),r)}(t,function(t,r){return t&&Le(r,Q(r),t)}(a,t))}else{if(!nn[d])return i?t:{};a=We(t,d,s)}}u||(u=new Ar);var p=u.get(t);if(p)return p;u.set(t,a),Xe(t)?t.forEach(function(n){a.add(on(n,r,e,n,t,u))}):Ke(t)&&t.forEach(function(n,o){a.set(o,on(n,r,e,o,t,u))});var m=c?void 0:(f?l?Ne:Jr:l?ke:Q)(t);return o(m||t,function(n,o){m&&(n=t[o=n]),Pe(a,o,on(n,r,e,o,t,u))}),a}nn[tn]=nn["[object Array]"]=nn["[object ArrayBuffer]"]=nn["[object DataView]"]=nn["[object Boolean]"]=nn["[object Date]"]=nn["[object Float32Array]"]=nn["[object Float64Array]"]=nn["[object Int8Array]"]=nn["[object Int16Array]"]=nn["[object Int32Array]"]=nn["[object Map]"]=nn["[object Number]"]=nn[en]=nn["[object RegExp]"]=nn["[object Set]"]=nn["[object String]"]=nn["[object Symbol]"]=nn["[object Uint8Array]"]=nn["[object Uint8ClampedArray]"]=nn["[object Uint16Array]"]=nn["[object Uint32Array]"]=!0,nn["[object Error]"]=nn[rn]=nn["[object WeakMap]"]=!1;function un(t){return"[object Array]"===Object.prototype.toString.call(t)}function an(t){return"[object Object]"===Object.prototype.toString.call(t)}function sn(t){return"[object String]"===Object.prototype.toString.call(t)}function ln(t){return t!=t}function fn(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!function(t){if(an(t)){for(let r in t)return!1;return!0}return!1}(t)||(!!function(t){return!(!sn(t)||""!==t)}(t)||(!!function(t){return!!un(t)&&0===t.length}(t)||!!ln(t)))))}function cn(t){return!!un(t)&&(0!==t.length&&(1!==t.length||!fn(t[0])))}function dn(t){return!(!sn(t)||""===t)}function hn(t){return!0===(r=t)||!1===r||b(r)&&"[object Boolean]"==v(r);var r}function pn(t){let r=!1;if(dn(t))r=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(ln(t))return!1;r=!0}return r}var mn=/\s/;var yn=/^\s+/;function vn(t){return t?t.slice(0,function(t){for(var r=t.length;r--&&mn.test(t.charAt(r)););return r}(t)+1).replace(yn,""):t}var bn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,wn=/^0o[0-7]+$/i,On=parseInt;function jn(t){if("number"==typeof t)return t;if(ot(t))return NaN;if(G(t)){var r="function"==typeof t.valueOf?t.valueOf():t;t=G(r)?r+"":r}if("string"!=typeof t)return 0===t?t:+t;t=vn(t);var e=gn.test(t);return e||wn.test(t)?On(t.slice(2),e?2:8):bn.test(t)?NaN:+t}var Sn=1/0;function $n(t){return t?(t=jn(t))===Sn||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function En(t){if(!pn(t))return 0;return $n(t)}function _n(t){if(!(dn(t)||pn(t)||ot(t)||function(t){return"[object BigInt]"===Object.prototype.toString.call(t)}(t)))return"";let r="";try{r=String(t)}catch(t){}try{r=t.toString()}catch(t){}return r}function Tn(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+r];return i}function Pn(t,r,e){var n=t.length;return e=void 0===e?n:e,!r&&e>=n?t:Tn(t,r,e)}function Ln(t,r,e,n){for(var o=t.length,i=e+(n?1:-1);n?i--:++i<o;)if(r(t[i],i,t))return i;return-1}function An(t){return t!=t}function Mn(t,r,e){return r==r?function(t,r,e){for(var n=e-1,o=t.length;++n<o;)if(t[n]===r)return n;return-1}(t,r,e):Ln(t,An,e)}var kn="\\ud800-\\udfff",Fn="["+kn+"]",Dn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",xn="\\ud83c[\\udffb-\\udfff]",Cn="[^"+kn+"]",Rn="(?:\\ud83c[\\udde6-\\uddff]){2}",Yn="[\\ud800-\\udbff][\\udc00-\\udfff]",In="(?:"+Dn+"|"+xn+")"+"?",Nn="[\\ufe0e\\ufe0f]?",qn=Nn+In+("(?:\\u200d(?:"+[Cn,Rn,Yn].join("|")+")"+Nn+In+")*"),zn="(?:"+[Cn+Dn+"?",Dn,Rn,Yn,Fn].join("|")+")",Hn=RegExp(xn+"(?="+xn+")|"+zn+qn,"g");function Un(t){return mr(t)?function(t){return t.match(Hn)||[]}(t):function(t){return t.split("")}(t)}function Bn(t,r,e){if((t=Ut(t))&&(e||void 0===r))return vn(t);if(!t||!(r=Ht(r)))return t;var n=Un(t),o=Un(r),i=function(t,r){for(var e=-1,n=t.length;++e<n&&Mn(r,t[e],0)>-1;);return e}(n,o),u=function(t,r){for(var e=t.length;e--&&Mn(r,t[e],0)>-1;);return e}(n,o)+1;return Pn(n,i,u).join("")}function Wn(t){var r=$n(t),e=r%1;return r==r?e?r-e:r:0}function Jn(t,r,e){var n=null==t?0:t.length;return n?Tn(t,(r=e||void 0===r?1:Wn(r))<0?0:r,n):[]}var Vn=Array.prototype.reverse;function Gn(t){return!!pn(t)&&(t=En(t),"number"==typeof(r=t)&&r==Wn(r));var r}var Zn=l.isFinite,Kn=Math.min;var Qn=function(t){var r=Math[t];return function(t,e){if(t=jn(t),(e=null==e?0:Kn(Wn(e),292))&&Zn(t)){var n=(Ut(t)+"e").split("e");return+((n=(Ut(r(n[0]+"e"+(+n[1]+e)))+"e").split("e"))[0]+"e"+(+n[1]-e))}return r(t)}}("round"),Xn=Qn;function to(t){if(!pn(t))return 0;t=En(t);let r=Xn(t);return"0"===String(r)?0:r}function ro(t){if(!Gn(t))return!1;return to(t)>=0}function eo(t,r){if(!dn(t))return"";if(!ro(r))return"";if(0===(r=to(r)))return"";let e=t.length-r;return e<0&&(e=0),t.substring(e,e+r)}function no(t,r){return dn(t)&&ro(r)?0===(r=to(r))?t:eo(t,t.length-r):""}function oo(t,r){return dn(t)&&ro(r)?0===(r=to(r))?t:function(t,r){return dn(t)&&ro(r)?0===(r=to(r))?"":t.substring(0,r):""}(t,t.length-r):""}function io(t,r={}){let e=Vt(r,"excludeString");if(hn(e)||(e=!1),!dn(t))return"";let n=t=>t>="0"&&t<="9"||"."===t||"-"===t||"+"===t,o=Bn(t);if(e){let t=o.split("");for(let r=0;r<t.length;r++)if(n(t[r])){o=no(o,r),t=Jn(t,r);break}t=null==(i=t)?i:Vn.call(i);for(let r=0;r<t.length;r++)if(n(t[r])){o=oo(o,r);break}}var i;return o}function uo(t){let r=0,e=0,n=0,o=Lr(t);et(t,t=>{pn(t)?r+=1:sn(t)?e+=1:an(t)&&(n+=1)});let i="";return r===o?i="num":e===o?i="str":n===o?i="obj":r+e===o?i="str":console.log("eles in array are non-homogeneous",t),i}function ao(t,r,e={}){let n=[];if("num"!==r&&"str"!==r&&"files"!==r)throw new Error(`invalid type[${r}]`);if("num"===r)n=le(t,(t,r)=>({key:r,payload:t,value:En(t)}));else if("files"===r)n=le(t,(t,r)=>({key:r,payload:t,value:_n(t)}));else if("str"===r){let r=le(t,t=>io(t,{excludeString:!0})),e=0;et(r,t=>{pn(t)&&e++});let o=e===Lr(r);n=le(t,(t,e)=>{let n=t;return o?(n=r[e],n=En(n)):n=_n(n),{key:e,payload:t,value:n}})}return n}function so(t,r){let e=on(t,5);return e.sort((t,e)=>t[r].localeCompare(e[r],"standard",{numeric:!0})),e}function lo(t,r){let e=Ee(t,"value");return le(e,r?"key":"payload")}function fo(t,r){let e=so(t,"value");return le(e,r?"key":"payload")}function co(t,r){return!!an(t)&&(!(!dn(r)&&!pn(r))&&r in t)}function ho(t){if(an(t)){for(let r in t)return!0;return!1}return!1}function po(t){let r=Object.prototype.toString.call(t);return"[object Function]"===r||"[object AsyncFunction]"===r}function mo(t,r){let e=function(){let t,r,e=new Promise(function(){t=arguments[0],r=arguments[1]});return e.resolve=t,e.reject=r,e}();if(!un(t)&&!an(t))return e.reject("rs is not an array or object"),e;let n=!1;if(an(t)){n=!0;let r=[];et(t,(t,e)=>{r.push({k:e,v:t})}),t=r}po(r)||(r=function(t){return t});let o=-1,i=[];return t.reduce(function(t,e){return t.then(function(t){i.push(t),o+=1;let u=o,a=e;return n&&(u=e.k,a=e.v),po(r)?r(a,u):a})},Promise.resolve()).then(function(t){i.push(t),i=Jn(i),e.resolve(i)}).catch(function(t){e.reject(t)}),e}function yo(t,r=0){if(!pn(t))return"";if(!ro(r))return"";return t=En(t),Xn(t,r).toFixed(r)}let vo=async(t,r,e={})=>{r=Ee(r,"timeStart");let n=Vt(e,"uIni",1e3),o={};et(t,t=>{o[t.time]=t});let i={},u=n,a=0;et(r,(t,r)=>{et(o,e=>{if(e.time<=t.timeStart)return delete o[e.time],!0;if("long"===t.mode){if(e.Low<=t.priceStopLoss)return t.timeEnd=e.time,t.priceEnd=t.priceStopLoss,t.uProfitOrLoss=t.uTrade*(t.priceEnd/t.priceStart)-t.uTrade-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1;if(e.High>=t.priceTakeProfit)return t.timeEnd=e.time,t.priceEnd=t.priceTakeProfit,t.uProfitOrLoss=t.uTrade*(t.priceEnd/t.priceStart)-t.uTrade-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1}else{if(e.High>=t.priceStopLoss)return t.timeEnd=e.time,t.priceEnd=t.priceStopLoss,t.uProfitOrLoss=(t.priceStart-t.priceEnd)*(t.uTrade/t.priceStart)-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1;if(e.Low<=t.priceTakeProfit)return t.timeEnd=e.time,t.priceEnd=t.priceTakeProfit,t.uProfitOrLoss=(t.priceStart-t.priceEnd)*(t.uTrade/t.priceStart)-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1}})});{let t=[];et(r,(r,e)=>{let n=null;n=co(i,e)?i[e]:r,t.push(n)}),r=t}return r},bo=(t,r)=>r=le(r,r=>{if(!dn(r.modeResult))return r;let e=t(r.timeStart),n=t(r.timeEnd),o=e.format("YYYY-MM-DD"),i=n.format("YYYY-MM-DD"),u=t(o,"YYYY-MM-DD"),a=t(i,"YYYY-MM-DD").diff(u,"day")+1;r.dayHold=a;let s=0;return 1+r.rProfitOrLoss>=0&&(s=Math.pow(1+r.rProfitOrLoss,1/r.dayHold)-1),r.rProfitOrLossDay=s,r});function go(t,r){var e=[];return tt(t,function(t,n,o){r(t,n,o)&&e.push(t)}),e}function wo(t,r){return(E(t)?zr:go)(t,ae(r))}function Oo(t){return"number"==typeof t||b(t)&&"[object Number]"==v(t)}function jo(t){if(!pn(t))return!1;return En(t)>0}let So=(t,r,e,n,o)=>{if(!jo(r))throw new Error(`uIni[${r}] is not a positive number`);if(!dn(n))throw new Error(`invalid timeOhlcStart[${n}]`);if(!dn(o))throw new Error(`invalid timeOhlcEnd[${o}]`);e=Ee(e,"timeStart");let i=[],u=[];et(e,t=>{dn(t.modeResult)?i.push(t):u.push(t)});let a=Lr(e),s=Lr(i),l=Lr(u),f=yo(Lr(wo(e,{modeResult:"profit"}))/s*100,2)+"%",c=0,d="",h="",p=0,m="",y="",v="",b=0,g="",w=0,O=0,j=r,S=r,$={},E={};et(e,t=>{if(dn(t.modeResult)){j=Math.max(j,t.uEquity);let r=j-t.uEquity,e=yo(r/j*100,2)+"%";r>c&&(c=r,S=j,d=e)}{let r=null;r=1,dn(t.timeStart)&&(co($,t.timeStart)||($[t.timeStart]=0),$[t.timeStart]+=r*t.uTrade,co(E,t.timeStart)||(E[t.timeStart]=0),E[t.timeStart]+=1),dn(t.timeEnd)&&(co($,t.timeEnd)||($[t.timeEnd]=0),$[t.timeEnd]-=r*t.uTrade,co(E,t.timeEnd)||(E[t.timeEnd]=0),E[t.timeEnd]-=1)}});{let t=[];et($,(r,e)=>{if(!Oo(r))throw console.log("time",e),new Error(`invalid uTradeAll[${r}]`);t.push({time:e,uTradeAll:r})}),t=Ee(t,"time");let r=0,e=le(t,t=>(r+=t.uTradeAll,{...t,uAccm:r})),n={};et(e,t=>{n[t.time]=t.uAccm}),$=n}{let t=[];et(E,(r,e)=>{if(!Oo(r))throw console.log("time",e),new Error(`invalid numTradeAll[${r}]`);t.push({time:e,numTradeAll:r})}),t=Ee(t,"time");let r=0,e=le(t,t=>(r+=t.numTradeAll,{...t,nAccm:r})),n={};et(e,t=>{n[t.time]=t.nAccm}),E=n}e=le(e,t=>{let e=Vt($,t.timeStart,null);if(!Oo(e))throw new Error("invalid uTradeAll");e=Math.abs(e),t.uTradeAll=e;let n=yo(t.uTradeAll/r*100,2)+"%";t.rTradeAll=n,b<t.uTradeAll&&(b=t.uTradeAll,g=t.rTradeAll);let o=Vt(E,t.timeStart,null);if(!Oo(o))throw new Error("invalid numTradeAll");return t.numTradeAll=o,w<t.numTradeAll&&(w=t.numTradeAll),t});{let t=Lr(i)-1;p=Vt(i,`${t}.uEquity`,""),m=Vt(i,`${t}.uCumuProfitOrLoss`,""),y=Vt(i,`${t}.rCumuProfitOrLoss`,"")}{let t;t=S-r+b>0?c/(S-r+b):0,h=yo(100*t,2)+"%"}v=b>0&&Oo(m)?m/b:0,v=yo(100*v,2)+"%";{let t=0,r=0,e=0,n=0;et(i,t=>{let r=t.rProfitOrLossDay*t.dayHold;e+=r;let o=t.dayHold;n+=o}),n>0&&(t=e/n);let o=0;et(i,r=>{let e=r.rProfitOrLossDay-t,n=r.dayHold*(e*e);o+=n}),n>1&&(r=Math.sqrt(o/(n-1))),r>0&&(O=t/r*Math.sqrt(252)),O<-10&&(O=-10),O>10&&(O=10)}let _=t(n),T=t(o).diff(_,"day"),P=T/365,L="";{let t;t=0===r||0===P?0:(p-r)/r/P,L=`${yo(100*t,2)}%`}let A="";{let t;t=0===b||0===P?0:(p-r)/b/P,A=`${yo(100*t,2)}%`}return{btDays:T,btYears:yo(P,1),numTrade:a,numTradeFin:s,numTradeUnsettled:l,uTradeAllMax:b,rTradeAllMax:g,numTradeAllMax:w,uDrawdownMax:c,rDrawdownMax:d,rEquivalentDrawdownMax:h,rSharpe:O,rWin:f,uEquityFinal:p,uCumuProfitOrLossFinal:m,rCumuProfitOrLossFinal:y,rCumuProfitOrLossFinalNormYear:L,rEquivalentCumuProfitOrLossFinal:v,rEquivalentCumuProfitOrLossFinalNormYear:A}},$o=async(t,r,e,n={})=>{let o=Vt(r,"mode","");if("long"!==o&&"short"!==o)throw new Error(`invalid strategy.mode[${o}] not 'long' or 'short'`);let i=Vt(r,"keyOhlc","");if(!dn(i))throw new Error("invalid strategy.keyOhlc");let u=Vt(r,"conds",[]);if(!cn(u))throw new Error("invalid strategy.conds");let a=Lr(u),s=Vt(r,"settings",{});if(ho(s)||(s={uIni:1e3,uTrade:1,rTakeProfit:.05,rStopLoss:.03,rFee:5e-4}),!po(e))throw new Error("funGetSeries is not a function");let l=Vt(n,"withCalcOrderProfitOrLoss",!0),f=Vt(n,"withSummary",!0),c=await e(i),d={},h={};await mo(u,async t=>{let r=await e(t.key);co(h,t.key)||(h[t.key]={}),et(r,r=>{h[t.key][r.time]=r.param,co(d,r.time)||(d[r.time]=0),d[r.time]+=1})});let p=[];et(d,(t,r)=>{t===a&&p.push(r)}),p=function(t,r={}){if(!cn(t))return[];if(1===Lr(t))return t;let e=Vt(r,"localeCompare");hn(e)||(e=!1);let n=Vt(r,"returnIndex");hn(n)||(n=!1);let o=Vt(r,"compareKey",null),i=null;i=e?fo:lo;let u,a=uo(t);if(""===a)return[];if("obj"===a){if(!dn(o))return[];let a=le(t,(t,r)=>Vt(t,o,"")),s=uo(a);if("num"!==s&&"str"!==s)return[];{e&&(s="files");let o=i(ao(a,s,r),!0);u=n?o:le(o,r=>t[r])}}else"num"!==a&&"str"!==a||(e&&(a="files"),u=i(ao(t,a,r),n));return u}(p);let m={};et(p,t=>{m[t]=!0});let y={};et(p,t=>{y[t]={},et(u,r=>{y[t][r.key]=h[r.key][t]})});let v=Vt(nt(c),"time",""),b=Vt(Gt(c),"time",""),g=[];await mo(c,async t=>{let r=Vt(t,"time");if(!co(m,r))return!0;let e=!0;{let t=[];et(u,(e,n)=>{let o=y[r][e.key],i=Vt(e,"sym",">"),u=Vt(e,"th",0),a=Vt(e,"opr",null);"and"!==a&&"or"!==a&&(a="and");let s=!1;s=">"===i?o>u:o<u,t.push({opr:a,b:s})});let n=t.filter(t=>"and"===t.opr).every(t=>t.b),o=t.filter(t=>"or"===t.opr),i=0===o.length||o.some(t=>t.b);e=n&&i}let n=!1,i=!1;if(e&&("long"===o?n=!0:i=!0),n){let e={mode:"long",timeStart:r,priceStart:t.Close,uTrade:s.uTrade,rTakeProfit:s.rTakeProfit,priceTakeProfit:(1+s.rTakeProfit)*t.Close,rStopLoss:s.rStopLoss,priceStopLoss:(1-s.rStopLoss)*t.Close,timeEnd:"",priceEnd:"",modeResult:"",rFee:s.rFee,uFee:s.rFee*s.uTrade,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""};g.push(e)}else if(i){let e={mode:"short",timeStart:r,priceStart:t.Close,uTrade:s.uTrade,rTakeProfit:s.rTakeProfit,priceTakeProfit:(1-s.rTakeProfit)*t.Close,rStopLoss:s.rStopLoss,priceStopLoss:(1+s.rStopLoss)*t.Close,timeEnd:"",priceEnd:"",modeResult:"",rFee:s.rFee,uFee:s.rFee*s.uTrade,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""};g.push(e)}}),l&&(g=await vo(c,g,{uIni:s.uIni}));let w={timeTest:t().format("YYYY-MM-DDTHH:mm:ssZ"),timeOhlcStart:v,timeOhlcEnd:b,uIni:Vt(s,"uIni","")};if(f){g=bo(t,g);let r=So(t,s.uIni,g,v,b);w={...w,...r}}return{orders:g,summary:w}};let Eo=async(t,r,e,n,o,i={})=>{if(!jo(r))throw new Error(`uIni[${r}] is not a positive number`);if(!dn(n))throw new Error(`invalid timeOhlcStart[${n}]`);if(!dn(o))throw new Error(`invalid timeOhlcEnd[${o}]`);e=Ee(e,"timeStart");let u=r,a=0;e=le(e,t=>dn(t.modeResult)?(u+=t.uProfitOrLoss,t.uEquity=u,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/r*100,2)+"%",t):t),e=bo(t,e);let s=So(t,r,e,n,o);return{timeTest:t().format("YYYY-MM-DDTHH:mm:ssZ"),timeOhlcStart:n,timeOhlcEnd:o,uIni:r,...s}},_o=async(t,r,e,n={})=>{let o=Vt(n,"withCalcOrderProfitOrLoss",!0),i=Vt(n,"withSummary",!0),u=0,a=[],s=null;var l;await mo(r,async(r,n)=>{try{s=await $o(t,r,e,{withCalcOrderProfitOrLoss:o,withSummary:!1});let n=Vt(r,"settings.uIni","");if(!Oo(n))throw new Error(`uIni[${n}] is not a number`);u+=n,Lr(s.orders)>=1&&(s.orders=le(s.orders,t=>(t.sid=r.sid,t)),a.push(s.orders))}catch(t){}}),a=null!=(l=a)&&l.length?de(l,1):[],Lr(a)>=2&&(a=Ee(a,"timeStart"));let f=Vt(s,"summary.timeOhlcStart",""),c=Vt(s,"summary.timeOhlcEnd","");if(!dn(f))throw new Error("invalid timeOhlcStart");if(!dn(c))throw new Error("invalid timeOhlcEnd");let d={timeTest:t().format("YYYY-MM-DDTHH:mm:ssZ"),timeOhlcStart:f,timeOhlcEnd:c};return i&&(d=await Eo(t,u,a,f,c)),{orders:a,summary:d}};function To(t,r={}){let e=Vt(r,"fs"),n=!1;try{e.statSync(t),n=!0}catch{n=!1}return n}function Po(t,r={}){let e=Vt(r,"fs");if(!To(t,{fs:e}))return!1;let n=e.lstatSync(t);return!n.isFile()&&!n.isSymbolicLink()}function Lo(t){return Po(t,{fs:r})}function Ao(t){if(!dn(t))return{path:"",isRoot:!1};for(;t.indexOf("\\\\")>=0;)t=t.replace("\\\\","\\");for(;t.indexOf("//")>=0;)t=t.replace("//","/");if(":"===eo(t,1))return{path:`${t}\\`,isRoot:!0};if("\\"===eo(t,1)){let r=oo(t,1);return":"===eo(r,1)?{path:t,isRoot:!0}:{path:r,isRoot:!1}}if("/"===eo(t,1)){let r=oo(t,1);return 0===r.length?{path:t,isRoot:!0}:{path:r,isRoot:!1}}return{path:t,isRoot:!1}}function Mo(t){if(!dn(t))return"";let r=Ao(t);if(r.isRoot)return r.path;let e=r.path;try{e=e.split("\\").pop().split("/").pop()}catch(t){}return e}function ko(t,r={}){let e=Vt(r,"fs");if(Po(t,{fs:e}))return{success:"input folder is already exists: "+t};if(To(t,{fs:e}))return{error:"input path already exists: "+t};try{e.mkdirSync(t,{recursive:!0})}catch(t){return{error:t}}return{success:"done: "+t}}function Fo(t,r,e={}){let n=null,o=Vt(e,"fs"),i=function(t){if(!dn(t))return"";let r=Ao(t);if(r.isRoot)return r.path;let e=Mo(t=r.path);if(!dn(e))return t;let n=Ao(t=oo(t,e.length));return n.isRoot,n.path}(t);Po(i,{fs:o})||ko(i,{fs:o});try{o.writeFileSync(t,r,"utf8")}catch(t){n=t}return null!==n?{error:n}:{success:t}}function Do(t,e,n={}){let o=null;if(!an(e)&&!un(e))return{error:"inp is not an object or array"};let i=Vt(n,"useFormat",null);hn(i)||(i=!1);let u="";try{u=i?JSON.stringify(e,null,2):JSON.stringify(e)}catch(t){o=t}return null!==o?{error:o}:Fo(t,u,{fs:r})}function xo(t){return function(t,r={}){let e=Vt(r,"fs");return!!To(t,{fs:e})&&!e.lstatSync(t).isDirectory()&&!e.lstatSync(t).isSymbolicLink()}(t,{fs:r})}function Co(t){let e=null,n=function(t,r={}){let e=null,n=Vt(r,"fs"),o="";try{o=n.readFileSync(t,"utf8")}catch(t){e=t}return null!==e?{error:e}:{success:o}}(t,{fs:r});if(n.error)return n;let o=n.success,i=null;try{i=JSON.parse(o)}catch(t){e=t}return null!==e?{error:e}:{success:i}}function Ro(t,r=1,e={}){let n=1,o=Vt(e,"path"),i=Vt(e,"fs");if(!Po(t,{fs:i}))throw new Error(`fd[${t}] is not a folder`);var u;return null!==r&&(Gn(u=r)&&to(u)>0)&&(r=to(r))<1&&(r=1),function t(e){let u=[];return Po(e,{fs:i})?(et(i.readdirSync(e),function(a){let s=o.resolve(e,a),l=null;try{l=i.statSync(s)}catch(t){}l&&l.isDirectory()?(u.push({isFolder:!0,level:n,path:s,name:o.basename(s)}),n+=1,(n<=r||null===r)&&(u=u.concat(t(s))),n-=1):u.push({isFolder:!1,level:n,path:s,name:o.basename(s)})}),u):u}(t)}function Yo(e,n=1){return Ro(e,n,{path:t,fs:r})}var Io=Y&&Y.isRegExp,No=Io?D(Io):function(t){return b(t)&&"[object RegExp]"==v(t)};function qo(t,r,e){return e&&"number"!=typeof e&&Se(t,r,e)&&(r=e=void 0),(e=void 0===e?4294967295:e>>>0)?(t=Ut(t))&&("string"==typeof r||null!=r&&!No(r))&&!(r=Ht(r))&&mr(t)?Pn(Un(t),0,e):t.split(r,e):[]}var zo=Array.prototype.join;function Ho(t){if(!dn(t))return"";let r=Mo(t),e=qo(r,".");if(Lr(e)<=1)return r;let n="";try{e=(a=null==(o=e)?0:o.length)?Tn(o,0,(i=a-(i=u||void 0===i?1:Wn(i)))<0?0:i):[],n=function(t,r){return null==t?"":zo.call(t,r)}(e,".")}catch(t){}var o,i,u,a;return n}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Uo(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Bo={exports:{}};!function(t){t.exports=function(){var t=1e3,r=6e4,e=36e5,n="millisecond",o="second",i="minute",u="hour",a="day",s="week",l="month",f="quarter",c="year",d="date",h="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var r=["th","st","nd","rd"],e=t%100;return"["+t+(r[(e-20)%10]||r[e]||r[0])+"]"}},v=function(t,r,e){var n=String(t);return!n||n.length>=r?t:""+Array(r+1-n.length).join(e)+t},b={s:v,z:function(t){var r=-t.utcOffset(),e=Math.abs(r),n=Math.floor(e/60),o=e%60;return(r<=0?"+":"-")+v(n,2,"0")+":"+v(o,2,"0")},m:function t(r,e){if(r.date()<e.date())return-t(e,r);var n=12*(e.year()-r.year())+(e.month()-r.month()),o=r.clone().add(n,l),i=e-o<0,u=r.clone().add(n+(i?-1:1),l);return+(-(n+(e-o)/(i?o-u:u-o))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:c,w:s,d:a,D:d,h:u,m:i,s:o,ms:n,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",w={};w[g]=y;var O="$isDayjsObject",j=function(t){return t instanceof _||!(!t||!t[O])},S=function t(r,e,n){var o;if(!r)return g;if("string"==typeof r){var i=r.toLowerCase();w[i]&&(o=i),e&&(w[i]=e,o=i);var u=r.split("-");if(!o&&u.length>1)return t(u[0])}else{var a=r.name;w[a]=r,o=a}return!n&&o&&(g=o),o||!n&&g},$=function(t,r){if(j(t))return t.clone();var e="object"==typeof r?r:{};return e.date=t,e.args=arguments,new _(e)},E=b;E.l=S,E.i=j,E.w=function(t,r){return $(t,{locale:r.$L,utc:r.$u,x:r.$x,$offset:r.$offset})};var _=function(){function y(t){this.$L=S(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[O]=!0}var v=y.prototype;return v.parse=function(t){this.$d=function(t){var r=t.date,e=t.utc;if(null===r)return new Date(NaN);if(E.u(r))return new Date;if(r instanceof Date)return new Date(r);if("string"==typeof r&&!/Z$/i.test(r)){var n=r.match(p);if(n){var o=n[2]-1||0,i=(n[7]||"0").substring(0,3);return e?new Date(Date.UTC(n[1],o,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)):new Date(n[1],o,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)}}return new Date(r)}(t),this.init()},v.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},v.$utils=function(){return E},v.isValid=function(){return!(this.$d.toString()===h)},v.isSame=function(t,r){var e=$(t);return this.startOf(r)<=e&&e<=this.endOf(r)},v.isAfter=function(t,r){return $(t)<this.startOf(r)},v.isBefore=function(t,r){return this.endOf(r)<$(t)},v.$g=function(t,r,e){return E.u(t)?this[r]:this.set(e,t)},v.unix=function(){return Math.floor(this.valueOf()/1e3)},v.valueOf=function(){return this.$d.getTime()},v.startOf=function(t,r){var e=this,n=!!E.u(r)||r,f=E.p(t),h=function(t,r){var o=E.w(e.$u?Date.UTC(e.$y,r,t):new Date(e.$y,r,t),e);return n?o:o.endOf(a)},p=function(t,r){return E.w(e.toDate()[t].apply(e.toDate("s"),(n?[0,0,0,0]:[23,59,59,999]).slice(r)),e)},m=this.$W,y=this.$M,v=this.$D,b="set"+(this.$u?"UTC":"");switch(f){case c:return n?h(1,0):h(31,11);case l:return n?h(1,y):h(0,y+1);case s:var g=this.$locale().weekStart||0,w=(m<g?m+7:m)-g;return h(n?v-w:v+(6-w),y);case a:case d:return p(b+"Hours",0);case u:return p(b+"Minutes",1);case i:return p(b+"Seconds",2);case o:return p(b+"Milliseconds",3);default:return this.clone()}},v.endOf=function(t){return this.startOf(t,!1)},v.$set=function(t,r){var e,s=E.p(t),f="set"+(this.$u?"UTC":""),h=(e={},e[a]=f+"Date",e[d]=f+"Date",e[l]=f+"Month",e[c]=f+"FullYear",e[u]=f+"Hours",e[i]=f+"Minutes",e[o]=f+"Seconds",e[n]=f+"Milliseconds",e)[s],p=s===a?this.$D+(r-this.$W):r;if(s===l||s===c){var m=this.clone().set(d,1);m.$d[h](p),m.init(),this.$d=m.set(d,Math.min(this.$D,m.daysInMonth())).$d}else h&&this.$d[h](p);return this.init(),this},v.set=function(t,r){return this.clone().$set(t,r)},v.get=function(t){return this[E.p(t)]()},v.add=function(n,f){var d,h=this;n=Number(n);var p=E.p(f),m=function(t){var r=$(h);return E.w(r.date(r.date()+Math.round(t*n)),h)};if(p===l)return this.set(l,this.$M+n);if(p===c)return this.set(c,this.$y+n);if(p===a)return m(1);if(p===s)return m(7);var y=(d={},d[i]=r,d[u]=e,d[o]=t,d)[p]||1,v=this.$d.getTime()+n*y;return E.w(v,this)},v.subtract=function(t,r){return this.add(-1*t,r)},v.format=function(t){var r=this,e=this.$locale();if(!this.isValid())return e.invalidDate||h;var n=t||"YYYY-MM-DDTHH:mm:ssZ",o=E.z(this),i=this.$H,u=this.$m,a=this.$M,s=e.weekdays,l=e.months,f=e.meridiem,c=function(t,e,o,i){return t&&(t[e]||t(r,n))||o[e].slice(0,i)},d=function(t){return E.s(i%12||12,t,"0")},p=f||function(t,r,e){var n=t<12?"AM":"PM";return e?n.toLowerCase():n};return n.replace(m,function(t,n){return n||function(t){switch(t){case"YY":return String(r.$y).slice(-2);case"YYYY":return E.s(r.$y,4,"0");case"M":return a+1;case"MM":return E.s(a+1,2,"0");case"MMM":return c(e.monthsShort,a,l,3);case"MMMM":return c(l,a);case"D":return r.$D;case"DD":return E.s(r.$D,2,"0");case"d":return String(r.$W);case"dd":return c(e.weekdaysMin,r.$W,s,2);case"ddd":return c(e.weekdaysShort,r.$W,s,3);case"dddd":return s[r.$W];case"H":return String(i);case"HH":return E.s(i,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return p(i,u,!0);case"A":return p(i,u,!1);case"m":return String(u);case"mm":return E.s(u,2,"0");case"s":return String(r.$s);case"ss":return E.s(r.$s,2,"0");case"SSS":return E.s(r.$ms,3,"0");case"Z":return o}return null}(t)||o.replace(":","")})},v.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},v.diff=function(n,d,h){var p,m=this,y=E.p(d),v=$(n),b=(v.utcOffset()-this.utcOffset())*r,g=this-v,w=function(){return E.m(m,v)};switch(y){case c:p=w()/12;break;case l:p=w();break;case f:p=w()/3;break;case s:p=(g-b)/6048e5;break;case a:p=(g-b)/864e5;break;case u:p=g/e;break;case i:p=g/r;break;case o:p=g/t;break;default:p=g}return h?p:E.a(p)},v.daysInMonth=function(){return this.endOf(l).$D},v.$locale=function(){return w[this.$L]},v.locale=function(t,r){if(!t)return this.$L;var e=this.clone(),n=S(t,r,!0);return n&&(e.$L=n),e},v.clone=function(){return E.w(this.$d,this)},v.toDate=function(){return new Date(this.valueOf())},v.toJSON=function(){return this.isValid()?this.toISOString():null},v.toISOString=function(){return this.$d.toISOString()},v.toString=function(){return this.$d.toUTCString()},y}(),T=_.prototype;return $.prototype=T,[["$ms",n],["$s",o],["$m",i],["$H",u],["$W",a],["$M",l],["$y",c],["$D",d]].forEach(function(t){T[t[1]]=function(r){return this.$g(r,t[0],t[1])}}),$.extend=function(t,r){return t.$i||(t(r,_,$),t.$i=!0),$},$.locale=S,$.isDayjs=j,$.unix=function(t){return $(1e3*t)},$.en=w[g],$.Ls=w,$.p={},$}()}(Bo);var Wo=Uo(Bo.exports);function Jo(t){if(!dn(t))return!1;let r="YYYY-MM-DDTHH:mm:ss";return t===Wo(t,r).format(r)}let Vo=(r,e)=>{let n={},o=async o=>{if(co(n,o))return n[o];let i=await(async n=>{let o=t.resolve(e,`${n}.json`),i=t.resolve(r,`${n}.json`),u="";if(xo(o))u=o;else{if(!xo(i))throw console.log(`fpParam[${o}] or fpOhlc[${i}] do not exist`),new Error(`invalid key[${n}]`);u=i}let a=Vt(Co(u),"success",null);if(!cn(a))throw new Error(`fp[${u}] no data`);return a})(o);return n[o]=i,i},i=[],u=async()=>{if(Lr(i)>0)return i;let t=t=>{let r=Yo(t);return r=wo(r,t=>"json"===function(t){if(!dn(t))return"";let r=qo(Mo(t),".");if(Lr(r)<=1)return"";let e="";try{e=Gt(r)}catch(t){}return e}(t.name)),r},n=[],u=t(r);await mo(u,async t=>{let r=Ho(t.name),e=await o(r);n.push({type:"ohlc",key:r,arr:e})});let a=t(e);return await mo(a,async t=>{let r=Ho(t.name),e=await o(r);n.push({type:"param",key:r,arr:e})}),i=n,n},a={},s=async(t,r)=>{if(!Jo(t))throw new Error("invalid timeStart");if(!Jo(r))throw new Error("invalid timeEnd");let e=`${t}:${r}`;if(co(a,e))return a[e];let n=await u(),o="1000-01-01T00:00:00",i="9999-01-01T00:00:00";if(et(n,t=>{let r=nt(t.arr),e=Gt(t.arr),n=Vt(r,"time",""),u=Vt(e,"time","");"ohlc"===t.type&&o<n&&(o=n),i>u&&(i=u)}),t<o)throw new Error(`timeStart[${t}] < timeStartData[${o}]`);if(r>i)throw new Error(`timeEnd[${r}] > timeEndData[${i}]`);let s=[];return et(n,e=>{let n=wo(e.arr,e=>e.time>=t&&e.time<=r);s.push({key:e.key,arr:n})}),a[e]=s,s},l={getKeysParam:()=>le(Yo(e),t=>Ho(t.name)),getTimeSeries:o,getTimeSeriesByTimeRange:async(t,r,e)=>{let n=await o(t);return n=wo(n,t=>t.time>=r&&t.time<=e),n},getTimeSeriesFull:u,getTimeSeriesFullByTimeRange:s,buildGetTimeSeriesByTimeRange:async(t,r)=>{let e=await s(t,r),n={};et(e,t=>{n[t.key]=t.arr});return async e=>{let o=Vt(n,e,[]);if(!cn(o))throw new Error(`can not get series by key[${e}] bewteen timeStart[${t}] and timeEnd[${r}]`);return o}},buildGetTimeValueByTimeRange:async(t,r)=>{let e=await s(t,r),n={};et(e,t=>{et(t.arr,r=>{let e=`${t.key}_${r.time}`;n[e]=r})});return async(e,o)=>{let i=Vt(n,`${e}_${o}`,{});if(!ho(i))throw new Error(`can not get value by key[${e}] and time[${o}] bewteen timeStart[${t}] and timeEnd[${r}]`);return i}}};return l};let Go=t.dirname(e.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:n&&"SCRIPT"===n.tagName.toUpperCase()&&n.src||new URL("w-trade-backtest.umd.js",document.baseURI).href)),Zo=(e,n)=>{let o=e=>{let n=t.resolve(Go,e);return r.readFileSync(n,"utf8")},i=o("tmp.html"),u=o("renderProfitPlot.js"),a=o("renderOrdersTable.js"),s=o("renderOrdersTimeline.js"),l=o("renderSummary.js");i=i.replace("{renderProfitPlot}",u),i=i.replace("{renderOrdersTable}",a),i=i.replace("{renderOrdersTimeline}",s),i=i.replace("{renderSummary}",l),i=i.replace("{name}",e.name),i=i.replace("{orders}",JSON.stringify(e.orders)),i=i.replace("{summary}",JSON.stringify(e.summary)),Fo(n,i,{fs:r})},Ko=(t,r,e,n,o,i={})=>{i&&i.skipSort||(e=e.slice().sort((t,r)=>t.timeStart<r.timeStart?-1:t.timeStart>r.timeStart?1:0));let u=e.length,a=0,s=0,l="",f=new Map;for(let t of e)dn(t.modeResult)&&(a++,"profit"===t.modeResult&&s++,l=t.uEquity),f.set(t.timeStart,(f.get(t.timeStart)||0)+t.uTrade),dn(t.timeEnd)&&f.set(t.timeEnd,(f.get(t.timeEnd)||0)-t.uTrade);let c=[...f.keys()].sort(),d=0,h=new Map;for(let t of c)d+=f.get(t),h.set(t,d);let p=0,m="";for(let t of e){let e=Math.abs(h.get(t.timeStart));e>p&&(p=e,m=yo(p/r*100,2)+"%")}let y,v=yo(s/a*100,2)+"%",b=t(o).diff(t(n),"day"),g=b/365;y=`${yo(100*(0===p||0===g?0:(l-r)/p/g),2)}%`;return{numTrade:u,numTradeFin:a,rWin:v,uTradeAllMax:p,rTradeAllMax:m,uEquityFinal:l,btDays:b,btYears:yo(g,1),rEquivalentCumuProfitOrLossFinalNormYear:y,timeOhlcStart:n,timeOhlcEnd:o}};var Qo=Math.max;var Xo,ti=(Xo=function(t,r,e){var n=null==t?0:t.length;if(!n)return-1;var o=null==e?0:Wn(e);return o<0&&(o=Qo(n+o,0)),Ln(t,ae(r),o)},function(t,r,e){var n=Object(t);if(!K(t)){var o=ae(r);t=Q(t),r=function(t){return o(n[t],t,n)}}var i=Xo(t,r,e);return i>-1?n[o?t[i]:i]:void 0});function ri(t,r,e){for(var n=-1,o=t.length;++n<o;){var i=t[n],u=r(i);if(null!=u&&(void 0===a?u==u&&!ot(u):e(u,a)))var a=u,s=i}return s}function ei(t,r){return t>r}function ni(t,r){return t<r}let oi=(t,r={})=>{let e=r.tp,n=r.sl,o=r.mode||"long";if(!(e>0&&n>0))throw new Error(`genKLinesTpSl: invalid tp[${e}] / sl[${n}]`);let i=t.length,u=new Array(i),a=new Float64Array(i),s=new Float64Array(i),l=new Float64Array(i);for(let r=0;r<i;r++){let e=t[r];u[r]=e.time,a[r]=e.Close,s[r]=e.High,l[r]=e.Low}let f=new Float64Array(i).fill(NaN),c=new Int8Array(i).fill(-1),d=new Float64Array(i).fill(NaN);for(let t=0;t<i-1;t++){let r=a[t];if(!(r>0))continue;let u=r*(1+e),h=r*(1-n);for(let a=t+1;a<i;a++)if("long"===o){if(l[a]<=h){f[t]=-n,c[t]=0,d[t]=a-t;break}if(s[a]>=u){f[t]=e,c[t]=1,d[t]=a-t;break}}else{let o=r*(1+n),i=r*(1-e);if(s[a]>=o){f[t]=-n,c[t]=0,d[t]=a-t;break}if(l[a]<=i){f[t]=e,c[t]=1,d[t]=a-t;break}}}return{time:u,pnl:f,win:c,hold:d}};let ii=(t,r,e,n,o)=>"long"===t?r*(n/e)-r-2*o:r/e*(e-n)-2*o,ui={runStrategy:$o,runStrategies:_o,runStrategiesAndBacktest:async(r,e,n,o,i,u,a,s={})=>{if(!Lo(e))throw new Error(`fdOhlc[${e}] is not a forder`);if(!Lo(n))throw new Error(`fdParam[${n}] is not a forder`);if(!cn(o))throw new Error("invalid strategies");let l=Vt(s,"writeOrders",!0),f=Vt(s,"writeSummary",!0),c=Vt(s,"writeReport",!0),d=Vo(e,n),h=await d.buildGetTimeSeriesByTimeRange(i,u),p=await _o(r,o,h,{});if(p.name="全部策略",l){let r="orders.json";Do(t.resolve(a,r),p.orders,{useFormat:!0})}if(f){let r="summary.json";Do(t.resolve(a,r),{name:p.name,summary:p.summary},{useFormat:!0}),console.log("summary",p.summary,Lr(p.orders))}if(c){let r="report.html",e=t.resolve(a,r);Zo(p,e)}return p},calcOrders:vo,calcOrdersRatio:bo,calcOrdersSummary:So,calcOrdersSummarySimple:Ko,calcSummary:Eo,closeAndSummaryOrders:async(r,e,n,o,i,u,a,s,l,f={})=>{if(!Lo(e))throw new Error(`fdOhlc[${e}] is not a forder`);if(!Lo(n))throw new Error(`fdParam[${n}] is not a forder`);if(!jo(o))throw new Error(`uIni[${o}] is not a positive number`);if(!dn(i))throw new Error(`invalid timeOhlcStart[${i}]`);if(!dn(u))throw new Error(`invalid timeOhlcEnd[${u}]`);if(!dn(a))throw new Error(`invalid keyOhlc[${a}]`);if(!un(s))throw new Error(`invalid ordersSubmit[${s}]`);if(!dn(l))throw new Error(`invalid fdTest[${l}]`);let c=Vt(f,"writeOrders",!0),d=Vt(f,"writeSummary",!0),h=Vt(f,"writeReport",!0),p=Vo(e,n),m=r(i),y=r(u).diff(m,"hour")/4;if(y!==to(y))throw new Error(`timeOhlcStart[${i}] to timeOhlcEnd[${u}] are not hour intervals`);let v=await p.buildGetTimeSeriesByTimeRange(i,u),b=await v(a),g=await vo(b,s,{uIni:o}),w=await Eo(r,o,g,i,u);console.log("summary",w,Lr(g));let O={name:"全部策略",orders:g,summary:w};if(c){let r="orders.json";Do(t.resolve(l,r),O.orders,{useFormat:!0})}if(d){let r="summary.json";Do(t.resolve(l,r),{name:O.name,summary:O.summary},{useFormat:!0}),console.log("summary",O.summary,Lr(O.orders))}if(h){let r="report.html",e=t.resolve(l,r);Zo(O,e)}},genReport:async(r,e,n={})=>{if(!dn(e))throw new Error("invalid fpOrders");if(!xo(e))throw new Error(`fpOrders[${e}] is not a file`);let o=Vt(Co(e),"success",null);if(!cn(o))throw new Error(`orders in fpOrders[${e}] is not an effective array`);let i=Vt(n,"fpOut","");dn(i)||(i=t.resolve(t.dirname(e),"report.html"));let u=Vt(n,"name","");dn(u)||(u=t.basename(t.dirname(t.resolve(e))));let a=Vt(n,"uIni",null);if(!pn(a)){let t=ti(o,t=>pn(t.uEquity)&&pn(t.uCumuProfitOrLoss));a=t?t.uEquity-t.uCumuProfitOrLoss:1e3}let s=Vt(n,"timeOhlcStart","");var l;dn(s)||(s=(l=le(o,"timeStart"))&&l.length?ri(l,rt,ni):void 0);let f=Vt(n,"timeOhlcEnd","");dn(f)||(f=function(t){return t&&t.length?ri(t,rt,ei):void 0}(le(o,t=>dn(t.timeEnd)?t.timeEnd:t.timeStart)));let c=Vt(n,"withWriteSummary",!1),d=await Eo(r,a,o,s,f);return c&&Do(t.resolve(t.dirname(i),"summary.json"),{name:u,summary:d},{useFormat:!0}),Zo({name:u,orders:o,summary:d},i),{orders:o,summary:d,fpOut:i}},genReportCore:Zo,genKLinesTpSl:oi,buildKLinesTpSl:async(e,n,o,i={})=>{if(!Lo(e))throw new Error(`fdOhlc[${e}] is not a folder`);if(!Lo(n))throw new Error(`fdParam[${n}] is not a folder`);if(!dn(o))throw new Error("invalid fpJson");let u=Vo(e,n),{keyOhlc:a,ts:s,te:l,tps:f=[4,5,6,7,8,9,10],modes:c=["long","short"]}=i;if(!dn(a))throw new Error("invalid opt.keyOhlc");if(!Jo(s))throw new Error("invalid opt.ts");if(!Jo(l))throw new Error("invalid opt.te");let d=await u.getTimeSeriesByTimeRange(a,s,l),h=d.length,p=d.map(t=>t.time),m={};for(let t=0;t<h;t++)m[p[t]]={close:d[t].Close};for(let t of c)for(let r of f){let{win:e,hold:n}=oi(d,{tp:r/100,sl:r/100,mode:t}),o=`${t}_${r}`;for(let t=0;t<h;t++){let r=e[t],i=r>=0&&Number.isFinite(n[t])?p[t+n[t]]:null;m[p[t]][o]={win:r,timeEnd:i}}}let y={meta:{keyOhlc:a,ts:s,te:l,tps:f,modes:c,nBars:h},bars:m},v=t.resolve(o),b=t.dirname(v);return Lo(b)||ko(b,{fs:r}),r.writeFileSync(v,JSON.stringify(y)),y},loadKLinesTpSl:e=>{if(!dn(e))throw new Error("invalid fpJson");if(!xo(e))throw new Error(`fpJson[${e}] is not a file`);let n=JSON.parse(r.readFileSync(t.resolve(e),"utf8")),o=n.meta,i=n.bars;return{meta:o,bars:i,ordersFromBars:(t,r,e,n={})=>{let{uTrade:o=1,uIni:u=1e3,rFee:a=5e-4,maxExitTime:s=null,skipSort:l=!1}=n,f=`${t}_${r}`,c=r/100,d=a*o,h=(l?e:[...e].sort()).filter(t=>i[t]).map(r=>{let e=i[r].close;return{mode:t,timeStart:r,priceStart:e,uTrade:o,rTakeProfit:c,priceTakeProfit:"long"===t?(1+c)*e:(1-c)*e,rStopLoss:c,priceStopLoss:"long"===t?(1-c)*e:(1+c)*e,timeEnd:"",priceEnd:"",modeResult:"",rFee:a,uFee:d,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""}}),p=u,m=0;for(let t of h){let r=i[t.timeStart][f];!r||r.win<0||!r.timeEnd||(s&&r.timeEnd>=s||(t.timeEnd=r.timeEnd,t.priceEnd=1===r.win?t.priceTakeProfit:t.priceStopLoss,t.uProfitOrLoss=ii(t.mode,t.uTrade,t.priceStart,t.priceEnd,t.uFee),t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,m+=t.uProfitOrLoss,t.uCumuProfitOrLoss=m,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/u*100,2)+"%",p+=t.uProfitOrLoss,t.uEquity=p,t.modeResult=t.uProfitOrLoss<0?"loss":"profit"))}return h}}},buildStrategyFastSession:(t,r={})=>{let e=Vt(r,"mode","");if("long"!==e&&"short"!==e)throw new Error(`invalid opt.mode[${e}] not 'long' or 'short'`);let n=Vt(r,"arrOhlc",null);if(!cn(n))throw new Error("invalid opt.arrOhlc");let o=Vt(r,"serieses",null);if(!ho(o))throw new Error("invalid opt.serieses");let i=n.length,u=new Array(i),a=new Float64Array(i),s=new Map;for(let t=0;t<i;t++){let r=n[t];u[t]=r.time,a[t]=r.Close,s.set(r.time,t)}let l=i>0?u[0]:"",f=i>0?u[i-1]:"",c={};for(let t of Object.keys(o)){let r=new Float64Array(i).fill(NaN);for(let e of o[t]){let t=s.get(e.time);void 0!==t&&(r[t]=e.param)}c[t]=r}let d=new Map,h=(t,r)=>{let o=`${t}_${r}`,i=d.get(o);return i||(i=oi(n,{tp:t,sl:r,mode:e}),d.set(o,i)),i},p=Vt(r,"tpsls",[]);if(cn(p))for(let t of p)h(t.tp,t.sl);return{evaluate:(r={},n={})=>{let o=Vt(r,"conds",[]);if(!cn(o))throw new Error("invalid conds");let s=Vt(r,"tp",null),d=Vt(r,"sl",null),p=Vt(r,"settings",{}),m=Vt(p,"uIni",1e3),y=Vt(p,"uTrade",1),v=Vt(p,"rFee",5e-4),b=v*y,g=Vt(n,"withOrders",!1),w=h(s,d),O=w.win,j=w.hold,S=o.map(t=>{let r=Vt(t,"key",""),e=c[r];if(!e)throw new Error(`invalid cond.key[${r}] not in opt.serieses`);let n=Vt(t,"sym",">"),o=Vt(t,"th",0),i=Vt(t,"opr",null);return"and"!==i&&"or"!==i&&(i="and"),{arr:e,gt:">"===n,th:o,isOr:"or"===i}}),$=[],E=m,_=0;for(let t=0;t<i;t++){let r=!1,n=!0,o=!1,i=!1;for(let e of S){let u=e.arr[t];if(Number.isNaN(u)){r=!0;break}let a=e.gt?u>e.th:u<e.th;e.isOr?(o=!0,i=i||a):n=n&&a}if(r||!n||o&&!i)continue;let l,f=a[t],c=O[t];if(l=g?{mode:e,timeStart:u[t],priceStart:f,uTrade:y,rTakeProfit:s,priceTakeProfit:"long"===e?(1+s)*f:(1-s)*f,rStopLoss:d,priceStopLoss:"long"===e?(1-d)*f:(1+d)*f,timeEnd:"",priceEnd:"",modeResult:"",rFee:v,uFee:b,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""}:{timeStart:u[t],timeEnd:"",uTrade:y,uProfitOrLoss:"",uEquity:"",modeResult:""},c>=0){let r;r=1===c?"long"===e?(1+s)*f:(1-s)*f:"long"===e?(1-d)*f:(1+d)*f;let n=ii(e,y,f,r,b);_+=n,E+=n,l.timeEnd=u[t+j[t]],l.uProfitOrLoss=n,l.uEquity=E,l.modeResult=n<0?"loss":"profit",g&&(l.priceEnd=r,l.rProfitOrLoss=n/y,l.uCumuProfitOrLoss=_,l.rCumuProfitOrLoss=yo(_/m*100,2)+"%")}$.push(l)}let T=Ko(t,m,$,l,f,{skipSort:!0});return g?{orders:$,summary:T}:T}}}};return ui});
|
|
6
|
+
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r(require("path"),require("fs"),require("url")):"function"==typeof define&&define.amd?define(["path","fs","url"],r):(t="undefined"!=typeof globalThis?globalThis:t||self)["w-trade-backtest"]=r(t.path,t.fs,t.url)}(this,function(t,r,e){"use strict";var n="undefined"!=typeof document?document.currentScript:null;function o(t,r){for(var e=-1,n=null==t?0:t.length;++e<n&&!1!==r(t[e],e,t););return t}var i,u=function(t,r,e){for(var n=-1,o=Object(t),u=e(t),a=u.length;a--;){var s=u[i?a:++n];if(!1===r(o[s],s,o))break}return t};var a="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self,l=a||s||Function("return this")(),f=l.Symbol,c=Object.prototype,d=c.hasOwnProperty,h=c.toString,p=f?f.toStringTag:void 0;var m=Object.prototype.toString;var y=f?f.toStringTag:void 0;function v(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":y&&y in Object(t)?function(t){var r=d.call(t,p),e=t[p];try{t[p]=void 0;var n=!0}catch(t){}var o=h.call(t);return n&&(r?t[p]=e:delete t[p]),o}(t):function(t){return m.call(t)}(t)}function b(t){return null!=t&&"object"==typeof t}function g(t){return b(t)&&"[object Arguments]"==v(t)}var w=Object.prototype,O=w.hasOwnProperty,S=w.propertyIsEnumerable,j=g(function(){return arguments}())?g:function(t){return b(t)&&O.call(t,"callee")&&!S.call(t,"callee")},E=j,_=Array.isArray;var $="object"==typeof exports&&exports&&!exports.nodeType&&exports,T=$&&"object"==typeof module&&module&&!module.nodeType&&module,P=T&&T.exports===$?l.Buffer:void 0,L=(P?P.isBuffer:void 0)||function(){return!1},A=/^(?:0|[1-9]\d*)$/;function M(t,r){var e=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==e||"symbol"!=e&&A.test(t))&&t>-1&&t%1==0&&t<r}function k(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}var F={};function D(t){return function(r){return t(r)}}F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F["[object Arguments]"]=F["[object Array]"]=F["[object ArrayBuffer]"]=F["[object Boolean]"]=F["[object DataView]"]=F["[object Date]"]=F["[object Error]"]=F["[object Function]"]=F["[object Map]"]=F["[object Number]"]=F["[object Object]"]=F["[object RegExp]"]=F["[object Set]"]=F["[object String]"]=F["[object WeakMap]"]=!1;var x="object"==typeof exports&&exports&&!exports.nodeType&&exports,C=x&&"object"==typeof module&&module&&!module.nodeType&&module,R=C&&C.exports===x&&a.process,Y=function(){try{var t=C&&C.require&&C.require("util").types;return t||R&&R.binding&&R.binding("util")}catch(t){}}(),N=Y&&Y.isTypedArray,I=N?D(N):function(t){return b(t)&&k(t.length)&&!!F[v(t)]},q=Object.prototype.hasOwnProperty;function z(t,r){var e=_(t),n=!e&&E(t),o=!e&&!n&&L(t),i=!e&&!n&&!o&&I(t),u=e||n||o||i,a=u?function(t,r){for(var e=-1,n=Array(t);++e<t;)n[e]=r(e);return n}(t.length,String):[],s=a.length;for(var l in t)!r&&!q.call(t,l)||u&&("length"==l||o&&("offset"==l||"parent"==l)||i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||M(l,s))||a.push(l);return a}var H=Object.prototype;function U(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||H)}function B(t,r){return function(e){return t(r(e))}}var W=B(Object.keys,Object),J=Object.prototype.hasOwnProperty;function G(t){if(!U(t))return W(t);var r=[];for(var e in Object(t))J.call(t,e)&&"constructor"!=e&&r.push(e);return r}function V(t){var r=typeof t;return null!=t&&("object"==r||"function"==r)}function Z(t){if(!V(t))return!1;var r=v(t);return"[object Function]"==r||"[object GeneratorFunction]"==r||"[object AsyncFunction]"==r||"[object Proxy]"==r}function K(t){return null!=t&&k(t.length)&&!Z(t)}function X(t){return K(t)?z(t):G(t)}var Q=function(t,r){return function(e,n){if(null==e)return e;if(!K(e))return t(e,n);for(var o=e.length,i=r?o:-1,u=Object(e);(r?i--:++i<o)&&!1!==n(u[i],i,u););return e}}(function(t,r){return t&&u(t,r,X)}),tt=Q;function rt(t){return t}function et(t,r){var e;return(_(t)?o:tt)(t,"function"==typeof(e=r)?e:rt)}function nt(t){return t&&t.length?t[0]:void 0}function ot(t){return"symbol"==typeof t||b(t)&&"[object Symbol]"==v(t)}var it=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ut=/^\w*$/;function at(t,r){if(_(t))return!1;var e=typeof t;return!("number"!=e&&"symbol"!=e&&"boolean"!=e&&null!=t&&!ot(t))||(ut.test(t)||!it.test(t)||null!=r&&t in Object(r))}var st,lt=l["__core-js_shared__"],ft=(st=/[^.]+$/.exec(lt&<.keys&<.keys.IE_PROTO||""))?"Symbol(src)_1."+st:"";var ct=Function.prototype.toString;function dt(t){if(null!=t){try{return ct.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var ht=/^\[object .+?Constructor\]$/,pt=Function.prototype,mt=Object.prototype,yt=pt.toString,vt=mt.hasOwnProperty,bt=RegExp("^"+yt.call(vt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gt(t){return!(!V(t)||(r=t,ft&&ft in r))&&(Z(t)?bt:ht).test(dt(t));var r}function wt(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return gt(e)?e:void 0}var Ot=wt(Object,"create");var St=Object.prototype.hasOwnProperty;var jt=Object.prototype.hasOwnProperty;function Et(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}function _t(t,r){return t===r||t!=t&&r!=r}function $t(t,r){for(var e=t.length;e--;)if(_t(t[e][0],r))return e;return-1}Et.prototype.clear=function(){this.__data__=Ot?Ot(null):{},this.size=0},Et.prototype.delete=function(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r},Et.prototype.get=function(t){var r=this.__data__;if(Ot){var e=r[t];return"__lodash_hash_undefined__"===e?void 0:e}return St.call(r,t)?r[t]:void 0},Et.prototype.has=function(t){var r=this.__data__;return Ot?void 0!==r[t]:jt.call(r,t)},Et.prototype.set=function(t,r){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=Ot&&void 0===r?"__lodash_hash_undefined__":r,this};var Tt=Array.prototype.splice;function Pt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}Pt.prototype.clear=function(){this.__data__=[],this.size=0},Pt.prototype.delete=function(t){var r=this.__data__,e=$t(r,t);return!(e<0)&&(e==r.length-1?r.pop():Tt.call(r,e,1),--this.size,!0)},Pt.prototype.get=function(t){var r=this.__data__,e=$t(r,t);return e<0?void 0:r[e][1]},Pt.prototype.has=function(t){return $t(this.__data__,t)>-1},Pt.prototype.set=function(t,r){var e=this.__data__,n=$t(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var Lt=wt(l,"Map");function At(t,r){var e,n,o=t.__data__;return("string"==(n=typeof(e=r))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==e:null===e)?o["string"==typeof r?"string":"hash"]:o.map}function Mt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}Mt.prototype.clear=function(){this.size=0,this.__data__={hash:new Et,map:new(Lt||Pt),string:new Et}},Mt.prototype.delete=function(t){var r=At(this,t).delete(t);return this.size-=r?1:0,r},Mt.prototype.get=function(t){return At(this,t).get(t)},Mt.prototype.has=function(t){return At(this,t).has(t)},Mt.prototype.set=function(t,r){var e=At(this,t),n=e.size;return e.set(t,r),this.size+=e.size==n?0:1,this};function kt(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new TypeError("Expected a function");var e=function(){var n=arguments,o=r?r.apply(this,n):n[0],i=e.cache;if(i.has(o))return i.get(o);var u=t.apply(this,n);return e.cache=i.set(o,u)||i,u};return e.cache=new(kt.Cache||Mt),e}kt.Cache=Mt;var Ft,Dt,xt,Ct=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rt=/\\(\\)?/g,Yt=(Ft=function(t){var r=[];return 46===t.charCodeAt(0)&&r.push(""),t.replace(Ct,function(t,e,n,o){r.push(n?o.replace(Rt,"$1"):e||t)}),r},Dt=kt(Ft,function(t){return 500===xt.size&&xt.clear(),t}),xt=Dt.cache,Dt),Nt=Yt;function It(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e<n;)o[e]=r(t[e],e,t);return o}var qt=f?f.prototype:void 0,zt=qt?qt.toString:void 0;function Ht(t){if("string"==typeof t)return t;if(_(t))return It(t,Ht)+"";if(ot(t))return zt?zt.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}function Ut(t){return null==t?"":Ht(t)}function Bt(t,r){return _(t)?t:at(t,r)?[t]:Nt(Ut(t))}function Wt(t){if("string"==typeof t||ot(t))return t;var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}function Jt(t,r){for(var e=0,n=(r=Bt(r,t)).length;null!=t&&e<n;)t=t[Wt(r[e++])];return e&&e==n?t:void 0}function Gt(t,r,e){var n=null==t?void 0:Jt(t,r);return void 0===n?e:n}function Vt(t){var r=null==t?0:t.length;return r?t[r-1]:void 0}var Zt=wt(l,"DataView"),Kt=wt(l,"Promise"),Xt=wt(l,"Set"),Qt=wt(l,"WeakMap"),tr="[object Map]",rr="[object Promise]",er="[object Set]",nr="[object WeakMap]",or="[object DataView]",ir=dt(Zt),ur=dt(Lt),ar=dt(Kt),sr=dt(Xt),lr=dt(Qt),fr=v;(Zt&&fr(new Zt(new ArrayBuffer(1)))!=or||Lt&&fr(new Lt)!=tr||Kt&&fr(Kt.resolve())!=rr||Xt&&fr(new Xt)!=er||Qt&&fr(new Qt)!=nr)&&(fr=function(t){var r=v(t),e="[object Object]"==r?t.constructor:void 0,n=e?dt(e):"";if(n)switch(n){case ir:return or;case ur:return tr;case ar:return rr;case sr:return er;case lr:return nr}return r});var cr=fr;function dr(t){return function(r){return null==r?void 0:r[t]}}var hr=dr("length"),pr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function mr(t){return pr.test(t)}var yr="\\ud800-\\udfff",vr="["+yr+"]",br="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",gr="\\ud83c[\\udffb-\\udfff]",wr="[^"+yr+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Sr="[\\ud800-\\udbff][\\udc00-\\udfff]",jr="(?:"+br+"|"+gr+")"+"?",Er="[\\ufe0e\\ufe0f]?",_r=Er+jr+("(?:\\u200d(?:"+[wr,Or,Sr].join("|")+")"+Er+jr+")*"),$r="(?:"+[wr+br+"?",br,Or,Sr,vr].join("|")+")",Tr=RegExp(gr+"(?="+gr+")|"+$r+_r,"g");function Pr(t){return mr(t)?function(t){for(var r=Tr.lastIndex=0;Tr.test(t);)++r;return r}(t):hr(t)}function Lr(t){if(null==t)return 0;if(K(t))return"string"==typeof(r=t)||!_(r)&&b(r)&&"[object String]"==v(r)?Pr(t):t.length;var r,e=cr(t);return"[object Map]"==e||"[object Set]"==e?t.size:G(t).length}function Ar(t){var r=this.__data__=new Pt(t);this.size=r.size}Ar.prototype.clear=function(){this.__data__=new Pt,this.size=0},Ar.prototype.delete=function(t){var r=this.__data__,e=r.delete(t);return this.size=r.size,e},Ar.prototype.get=function(t){return this.__data__.get(t)},Ar.prototype.has=function(t){return this.__data__.has(t)},Ar.prototype.set=function(t,r){var e=this.__data__;if(e instanceof Pt){var n=e.__data__;if(!Lt||n.length<199)return n.push([t,r]),this.size=++e.size,this;e=this.__data__=new Mt(n)}return e.set(t,r),this.size=e.size,this};function Mr(t){var r=-1,e=null==t?0:t.length;for(this.__data__=new Mt;++r<e;)this.add(t[r])}function kr(t,r){for(var e=-1,n=null==t?0:t.length;++e<n;)if(r(t[e],e,t))return!0;return!1}function Fr(t,r){return t.has(r)}Mr.prototype.add=Mr.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Mr.prototype.has=function(t){return this.__data__.has(t)};function Dr(t,r,e,n,o,i){var u=1&e,a=t.length,s=r.length;if(a!=s&&!(u&&s>a))return!1;var l=i.get(t),f=i.get(r);if(l&&f)return l==r&&f==t;var c=-1,d=!0,h=2&e?new Mr:void 0;for(i.set(t,r),i.set(r,t);++c<a;){var p=t[c],m=r[c];if(n)var y=u?n(m,p,c,r,t,i):n(p,m,c,t,r,i);if(void 0!==y){if(y)continue;d=!1;break}if(h){if(!kr(r,function(t,r){if(!Fr(h,r)&&(p===t||o(p,t,e,n,i)))return h.push(r)})){d=!1;break}}else if(p!==m&&!o(p,m,e,n,i)){d=!1;break}}return i.delete(t),i.delete(r),d}var xr=l.Uint8Array;function Cr(t){var r=-1,e=Array(t.size);return t.forEach(function(t,n){e[++r]=[n,t]}),e}function Rr(t){var r=-1,e=Array(t.size);return t.forEach(function(t){e[++r]=t}),e}var Yr=f?f.prototype:void 0,Nr=Yr?Yr.valueOf:void 0;function Ir(t,r){for(var e=-1,n=r.length,o=t.length;++e<n;)t[o+e]=r[e];return t}function qr(t,r,e){var n=r(t);return _(t)?n:Ir(n,e(t))}function zr(t,r){for(var e=-1,n=null==t?0:t.length,o=0,i=[];++e<n;){var u=t[e];r(u,e,t)&&(i[o++]=u)}return i}function Hr(){return[]}var Ur=Object.prototype.propertyIsEnumerable,Br=Object.getOwnPropertySymbols,Wr=Br?function(t){return null==t?[]:(t=Object(t),zr(Br(t),function(r){return Ur.call(t,r)}))}:Hr;function Jr(t){return qr(t,X,Wr)}var Gr=Object.prototype.hasOwnProperty;var Vr="[object Arguments]",Zr="[object Array]",Kr="[object Object]",Xr=Object.prototype.hasOwnProperty;function Qr(t,r,e,n,o,i){var u=_(t),a=_(r),s=u?Zr:cr(t),l=a?Zr:cr(r),f=(s=s==Vr?Kr:s)==Kr,c=(l=l==Vr?Kr:l)==Kr,d=s==l;if(d&&L(t)){if(!L(r))return!1;u=!0,f=!1}if(d&&!f)return i||(i=new Ar),u||I(t)?Dr(t,r,e,n,o,i):function(t,r,e,n,o,i,u){switch(e){case"[object DataView]":if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=r.byteLength||!i(new xr(t),new xr(r)));case"[object Boolean]":case"[object Date]":case"[object Number]":return _t(+t,+r);case"[object Error]":return t.name==r.name&&t.message==r.message;case"[object RegExp]":case"[object String]":return t==r+"";case"[object Map]":var a=Cr;case"[object Set]":var s=1&n;if(a||(a=Rr),t.size!=r.size&&!s)return!1;var l=u.get(t);if(l)return l==r;n|=2,u.set(t,r);var f=Dr(a(t),a(r),n,o,i,u);return u.delete(t),f;case"[object Symbol]":if(Nr)return Nr.call(t)==Nr.call(r)}return!1}(t,r,s,e,n,o,i);if(!(1&e)){var h=f&&Xr.call(t,"__wrapped__"),p=c&&Xr.call(r,"__wrapped__");if(h||p){var m=h?t.value():t,y=p?r.value():r;return i||(i=new Ar),o(m,y,e,n,i)}}return!!d&&(i||(i=new Ar),function(t,r,e,n,o,i){var u=1&e,a=Jr(t),s=a.length;if(s!=Jr(r).length&&!u)return!1;for(var l=s;l--;){var f=a[l];if(!(u?f in r:Gr.call(r,f)))return!1}var c=i.get(t),d=i.get(r);if(c&&d)return c==r&&d==t;var h=!0;i.set(t,r),i.set(r,t);for(var p=u;++l<s;){var m=t[f=a[l]],y=r[f];if(n)var v=u?n(y,m,f,r,t,i):n(m,y,f,t,r,i);if(!(void 0===v?m===y||o(m,y,e,n,i):v)){h=!1;break}p||(p="constructor"==f)}if(h&&!p){var b=t.constructor,g=r.constructor;b==g||!("constructor"in t)||!("constructor"in r)||"function"==typeof b&&b instanceof b&&"function"==typeof g&&g instanceof g||(h=!1)}return i.delete(t),i.delete(r),h}(t,r,e,n,o,i))}function te(t,r,e,n,o){return t===r||(null==t||null==r||!b(t)&&!b(r)?t!=t&&r!=r:Qr(t,r,e,n,te,o))}function re(t){return t==t&&!V(t)}function ee(t,r){return function(e){return null!=e&&(e[t]===r&&(void 0!==r||t in Object(e)))}}function ne(t){var r=function(t){for(var r=X(t),e=r.length;e--;){var n=r[e],o=t[n];r[e]=[n,o,re(o)]}return r}(t);return 1==r.length&&r[0][2]?ee(r[0][0],r[0][1]):function(e){return e===t||function(t,r,e,n){var o=e.length,i=o,u=!n;if(null==t)return!i;for(t=Object(t);o--;){var a=e[o];if(u&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++o<i;){var s=(a=e[o])[0],l=t[s],f=a[1];if(u&&a[2]){if(void 0===l&&!(s in t))return!1}else{var c=new Ar;if(n)var d=n(l,f,s,t,r,c);if(!(void 0===d?te(f,l,3,n,c):d))return!1}}return!0}(e,t,r)}}function oe(t,r){return null!=t&&r in Object(t)}function ie(t,r){return null!=t&&function(t,r,e){for(var n=-1,o=(r=Bt(r,t)).length,i=!1;++n<o;){var u=Wt(r[n]);if(!(i=null!=t&&e(t,u)))break;t=t[u]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&k(o)&&M(u,o)&&(_(t)||E(t))}(t,r,oe)}function ue(t){return at(t)?dr(Wt(t)):function(t){return function(r){return Jt(r,t)}}(t)}function ae(t){return"function"==typeof t?t:null==t?rt:"object"==typeof t?_(t)?function(t,r){return at(t)&&re(r)?ee(Wt(t),r):function(e){var n=Gt(e,t);return void 0===n&&n===r?ie(e,t):te(r,n,3)}}(t[0],t[1]):ne(t):ue(t)}function se(t,r){var e=-1,n=K(t)?Array(t.length):[];return tt(t,function(t,o,i){n[++e]=r(t,o,i)}),n}function le(t,r){return(_(t)?It:se)(t,ae(r))}var fe=f?f.isConcatSpreadable:void 0;function ce(t){return _(t)||E(t)||!!(fe&&t&&t[fe])}function de(t,r,e,n,o){var i=-1,u=t.length;for(e||(e=ce),o||(o=[]);++i<u;){var a=t[i];r>0&&e(a)?r>1?de(a,r-1,e,n,o):Ir(o,a):n||(o[o.length]=a)}return o}function he(t,r){if(t!==r){var e=void 0!==t,n=null===t,o=t==t,i=ot(t),u=void 0!==r,a=null===r,s=r==r,l=ot(r);if(!a&&!l&&!i&&t>r||i&&u&&s&&!a&&!l||n&&u&&s||!e&&s||!o)return 1;if(!n&&!i&&!l&&t<r||l&&e&&o&&!n&&!i||a&&e&&o||!u&&o||!s)return-1}return 0}function pe(t,r,e){r=r.length?It(r,function(t){return _(t)?function(r){return Jt(r,1===t.length?t[0]:t)}:t}):[rt];var n=-1;return r=It(r,D(ae)),function(t,r){var e=t.length;for(t.sort(r);e--;)t[e]=t[e].value;return t}(se(t,function(t,e,o){return{criteria:It(r,function(r){return r(t)}),index:++n,value:t}}),function(t,r){return function(t,r,e){for(var n=-1,o=t.criteria,i=r.criteria,u=o.length,a=e.length;++n<u;){var s=he(o[n],i[n]);if(s)return n>=a?s:s*("desc"==e[n]?-1:1)}return t.index-r.index}(t,r,e)})}var me=Math.max;var ye=function(){try{var t=wt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),ve=ye,be=ve?function(t,r){return ve(t,"toString",{configurable:!0,enumerable:!1,value:(e=r,function(){return e}),writable:!0});var e}:rt,ge=be,we=Date.now;var Oe=function(t){var r=0,e=0;return function(){var n=we(),o=16-(n-e);if(e=n,o>0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(ge),Se=Oe;function je(t,r,e){if(!V(e))return!1;var n=typeof r;return!!("number"==n?K(e)&&M(r,e.length):"string"==n&&r in e)&&_t(e[r],t)}var Ee=function(t,r){return Se(function(t,r,e){return r=me(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,i=me(n.length-r,0),u=Array(i);++o<i;)u[o]=n[r+o];o=-1;for(var a=Array(r+1);++o<r;)a[o]=n[o];return a[r]=e(u),function(t,r,e){switch(e.length){case 0:return t.call(r);case 1:return t.call(r,e[0]);case 2:return t.call(r,e[0],e[1]);case 3:return t.call(r,e[0],e[1],e[2])}return t.apply(r,e)}(t,this,a)}}(t,r,rt),t+"")}(function(t,r){if(null==t)return[];var e=r.length;return e>1&&je(t,r[0],r[1])?r=[]:e>2&&je(r[0],r[1],r[2])&&(r=[r[0]]),pe(t,de(r,1),[])}),_e=Ee;function $e(t,r,e){"__proto__"==r&&ve?ve(t,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):t[r]=e}var Te=Object.prototype.hasOwnProperty;function Pe(t,r,e){var n=t[r];Te.call(t,r)&&_t(n,e)&&(void 0!==e||r in t)||$e(t,r,e)}function Le(t,r,e,n){var o=!e;e||(e={});for(var i=-1,u=r.length;++i<u;){var a=r[i],s=n?n(e[a],t[a],a,e,t):void 0;void 0===s&&(s=t[a]),o?$e(e,a,s):Pe(e,a,s)}return e}var Ae=Object.prototype.hasOwnProperty;function Me(t){if(!V(t))return function(t){var r=[];if(null!=t)for(var e in Object(t))r.push(e);return r}(t);var r=U(t),e=[];for(var n in t)("constructor"!=n||!r&&Ae.call(t,n))&&e.push(n);return e}function ke(t){return K(t)?z(t,!0):Me(t)}var Fe="object"==typeof exports&&exports&&!exports.nodeType&&exports,De=Fe&&"object"==typeof module&&module&&!module.nodeType&&module,xe=De&&De.exports===Fe?l.Buffer:void 0,Ce=xe?xe.allocUnsafe:void 0;var Re=B(Object.getPrototypeOf,Object),Ye=Object.getOwnPropertySymbols?function(t){for(var r=[];t;)Ir(r,Wr(t)),t=Re(t);return r}:Hr,Ne=Ye;function Ie(t){return qr(t,ke,Ne)}var qe=Object.prototype.hasOwnProperty;function ze(t){var r=new t.constructor(t.byteLength);return new xr(r).set(new xr(t)),r}var He=/\w*$/;var Ue=f?f.prototype:void 0,Be=Ue?Ue.valueOf:void 0;function We(t,r,e){var n,o=t.constructor;switch(r){case"[object ArrayBuffer]":return ze(t);case"[object Boolean]":case"[object Date]":return new o(+t);case"[object DataView]":return function(t,r){var e=r?ze(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)}(t,e);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(t,r){var e=r?ze(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)}(t,e);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(t);case"[object RegExp]":return function(t){var r=new t.constructor(t.source,He.exec(t));return r.lastIndex=t.lastIndex,r}(t);case"[object Symbol]":return n=t,Be?Object(Be.call(n)):{}}}var Je=Object.create,Ge=function(){function t(){}return function(r){if(!V(r))return{};if(Je)return Je(r);t.prototype=r;var e=new t;return t.prototype=void 0,e}}(),Ve=Ge;var Ze=Y&&Y.isMap,Ke=Ze?D(Ze):function(t){return b(t)&&"[object Map]"==cr(t)};var Xe=Y&&Y.isSet,Qe=Xe?D(Xe):function(t){return b(t)&&"[object Set]"==cr(t)},tn="[object Arguments]",rn="[object Function]",en="[object Object]",nn={};function on(t,r,e,n,i,u){var a,s=1&r,l=2&r,f=4&r;if(e&&(a=i?e(t,n,i,u):e(t)),void 0!==a)return a;if(!V(t))return t;var c=_(t);if(c){if(a=function(t){var r=t.length,e=new t.constructor(r);return r&&"string"==typeof t[0]&&qe.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!s)return function(t,r){var e=-1,n=t.length;for(r||(r=Array(n));++e<n;)r[e]=t[e];return r}(t,a)}else{var d=cr(t),h=d==rn||"[object GeneratorFunction]"==d;if(L(t))return function(t,r){if(r)return t.slice();var e=t.length,n=Ce?Ce(e):new t.constructor(e);return t.copy(n),n}(t,s);if(d==en||d==tn||h&&!i){if(a=l||h?{}:function(t){return"function"!=typeof t.constructor||U(t)?{}:Ve(Re(t))}(t),!s)return l?function(t,r){return Le(t,Ne(t),r)}(t,function(t,r){return t&&Le(r,ke(r),t)}(a,t)):function(t,r){return Le(t,Wr(t),r)}(t,function(t,r){return t&&Le(r,X(r),t)}(a,t))}else{if(!nn[d])return i?t:{};a=We(t,d,s)}}u||(u=new Ar);var p=u.get(t);if(p)return p;u.set(t,a),Qe(t)?t.forEach(function(n){a.add(on(n,r,e,n,t,u))}):Ke(t)&&t.forEach(function(n,o){a.set(o,on(n,r,e,o,t,u))});var m=c?void 0:(f?l?Ie:Jr:l?ke:X)(t);return o(m||t,function(n,o){m&&(n=t[o=n]),Pe(a,o,on(n,r,e,o,t,u))}),a}nn[tn]=nn["[object Array]"]=nn["[object ArrayBuffer]"]=nn["[object DataView]"]=nn["[object Boolean]"]=nn["[object Date]"]=nn["[object Float32Array]"]=nn["[object Float64Array]"]=nn["[object Int8Array]"]=nn["[object Int16Array]"]=nn["[object Int32Array]"]=nn["[object Map]"]=nn["[object Number]"]=nn[en]=nn["[object RegExp]"]=nn["[object Set]"]=nn["[object String]"]=nn["[object Symbol]"]=nn["[object Uint8Array]"]=nn["[object Uint8ClampedArray]"]=nn["[object Uint16Array]"]=nn["[object Uint32Array]"]=!0,nn["[object Error]"]=nn[rn]=nn["[object WeakMap]"]=!1;function un(t){return"[object Array]"===Object.prototype.toString.call(t)}function an(t){return"[object Object]"===Object.prototype.toString.call(t)}function sn(t){return"[object String]"===Object.prototype.toString.call(t)}function ln(t){return t!=t}function fn(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!function(t){if(an(t)){for(let r in t)return!1;return!0}return!1}(t)||(!!function(t){return!(!sn(t)||""!==t)}(t)||(!!function(t){return!!un(t)&&0===t.length}(t)||!!ln(t)))))}function cn(t){return!!un(t)&&(0!==t.length&&(1!==t.length||!fn(t[0])))}function dn(t){return!(!sn(t)||""===t)}function hn(t){return!0===(r=t)||!1===r||b(r)&&"[object Boolean]"==v(r);var r}function pn(t){let r=!1;if(dn(t))r=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(ln(t))return!1;r=!0}return r}var mn=/\s/;var yn=/^\s+/;function vn(t){return t?t.slice(0,function(t){for(var r=t.length;r--&&mn.test(t.charAt(r)););return r}(t)+1).replace(yn,""):t}var bn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,wn=/^0o[0-7]+$/i,On=parseInt;function Sn(t){if("number"==typeof t)return t;if(ot(t))return NaN;if(V(t)){var r="function"==typeof t.valueOf?t.valueOf():t;t=V(r)?r+"":r}if("string"!=typeof t)return 0===t?t:+t;t=vn(t);var e=gn.test(t);return e||wn.test(t)?On(t.slice(2),e?2:8):bn.test(t)?NaN:+t}var jn=1/0;function En(t){return t?(t=Sn(t))===jn||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function _n(t){if(!pn(t))return 0;return En(t)}function $n(t){if(!(dn(t)||pn(t)||ot(t)||function(t){return"[object BigInt]"===Object.prototype.toString.call(t)}(t)))return"";let r="";try{r=String(t)}catch(t){}try{r=t.toString()}catch(t){}return r}function Tn(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+r];return i}function Pn(t,r,e){var n=t.length;return e=void 0===e?n:e,!r&&e>=n?t:Tn(t,r,e)}function Ln(t,r,e,n){for(var o=t.length,i=e+(n?1:-1);n?i--:++i<o;)if(r(t[i],i,t))return i;return-1}function An(t){return t!=t}function Mn(t,r,e){return r==r?function(t,r,e){for(var n=e-1,o=t.length;++n<o;)if(t[n]===r)return n;return-1}(t,r,e):Ln(t,An,e)}var kn="\\ud800-\\udfff",Fn="["+kn+"]",Dn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",xn="\\ud83c[\\udffb-\\udfff]",Cn="[^"+kn+"]",Rn="(?:\\ud83c[\\udde6-\\uddff]){2}",Yn="[\\ud800-\\udbff][\\udc00-\\udfff]",Nn="(?:"+Dn+"|"+xn+")"+"?",In="[\\ufe0e\\ufe0f]?",qn=In+Nn+("(?:\\u200d(?:"+[Cn,Rn,Yn].join("|")+")"+In+Nn+")*"),zn="(?:"+[Cn+Dn+"?",Dn,Rn,Yn,Fn].join("|")+")",Hn=RegExp(xn+"(?="+xn+")|"+zn+qn,"g");function Un(t){return mr(t)?function(t){return t.match(Hn)||[]}(t):function(t){return t.split("")}(t)}function Bn(t,r,e){if((t=Ut(t))&&(e||void 0===r))return vn(t);if(!t||!(r=Ht(r)))return t;var n=Un(t),o=Un(r),i=function(t,r){for(var e=-1,n=t.length;++e<n&&Mn(r,t[e],0)>-1;);return e}(n,o),u=function(t,r){for(var e=t.length;e--&&Mn(r,t[e],0)>-1;);return e}(n,o)+1;return Pn(n,i,u).join("")}function Wn(t){var r=En(t),e=r%1;return r==r?e?r-e:r:0}function Jn(t,r,e){var n=null==t?0:t.length;return n?Tn(t,(r=e||void 0===r?1:Wn(r))<0?0:r,n):[]}var Gn=Array.prototype.reverse;function Vn(t,r={}){let e=Gt(r,"useLimitSafe",null);return hn(e)||(e=!1),!!pn(t)&&(t=_n(t),e?Number.isSafeInteger(t):"number"==typeof(n=t)&&n==Wn(n));var n}var Zn=l.isFinite,Kn=Math.min;var Xn=function(t){var r=Math[t];return function(t,e){if(t=Sn(t),(e=null==e?0:Kn(Wn(e),292))&&Zn(t)){var n=(Ut(t)+"e").split("e");return+((n=(Ut(r(n[0]+"e"+(+n[1]+e)))+"e").split("e"))[0]+"e"+(+n[1]-e))}return r(t)}}("round"),Qn=Xn;function to(t,r={}){let e=Gt(r,"useClampSafe",null);hn(e)||(e=!1);let n=Gt(r,"useLimitSafe",null);hn(n)||(n=!1);let o=Gt(r,"returnWithStateAndMsg",null);hn(o)||(o=!1);let i=t=>o?{state:"success",msg:t}:t,u=t=>{if(o)return{state:"error",msg:t};throw new Error(t)};if(!pn(t))return i(0);let a=null;try{t=_n(t),a=Qn(t),e&&(a>Number.MAX_SAFE_INTEGER?a=Number.MAX_SAFE_INTEGER:a<Number.MIN_SAFE_INTEGER&&(a=Number.MIN_SAFE_INTEGER))}catch(t){return u(t.toString())}return n&&!Number.isSafeInteger(Number(a))?u(`v[${t}] is not a safe integer`):("0"===String(a)&&(a=0),i(a))}function ro(t,r={}){if(!Vn(t,r))return!1;return to(t)>=0}function eo(t,r){if(!dn(t))return"";if(!ro(r))return"";if(0===(r=to(r)))return"";let e=t.length-r;return e<0&&(e=0),t.substring(e,e+r)}function no(t,r){return dn(t)&&ro(r)?0===(r=to(r))?t:eo(t,t.length-r):""}function oo(t,r){return dn(t)&&ro(r)?0===(r=to(r))?t:function(t,r){return dn(t)&&ro(r)?0===(r=to(r))?"":t.substring(0,r):""}(t,t.length-r):""}function io(t,r={}){let e=Gt(r,"excludeString");if(hn(e)||(e=!1),!dn(t))return"";let n=t=>t>="0"&&t<="9"||"."===t||"-"===t||"+"===t,o=Bn(t);if(e){let t=o.split("");for(let r=0;r<t.length;r++)if(n(t[r])){o=no(o,r),t=Jn(t,r);break}t=null==(i=t)?i:Gn.call(i);for(let r=0;r<t.length;r++)if(n(t[r])){o=oo(o,r);break}}var i;return o}function uo(t){let r=0,e=0,n=0,o=Lr(t);et(t,t=>{pn(t)?r+=1:sn(t)?e+=1:an(t)&&(n+=1)});let i="";return r===o?i="num":e===o?i="str":n===o?i="obj":r+e===o?i="str":console.log("eles in array are non-homogeneous",t),i}function ao(t,r,e={}){let n=[];if("num"!==r&&"str"!==r&&"files"!==r)throw new Error(`invalid type[${r}]`);if("num"===r)n=le(t,(t,r)=>({key:r,payload:t,value:_n(t)}));else if("files"===r)n=le(t,(t,r)=>({key:r,payload:t,value:$n(t)}));else if("str"===r){let r=le(t,t=>io(t,{excludeString:!0})),e=0;et(r,t=>{pn(t)&&e++});let o=e===Lr(r);n=le(t,(t,e)=>{let n=t;return o?(n=r[e],n=_n(n)):n=$n(n),{key:e,payload:t,value:n}})}return n}function so(t,r){let e=on(t,5);return e.sort((t,e)=>t[r].localeCompare(e[r],"standard",{numeric:!0})),e}function lo(t,r){let e=_e(t,"value");return le(e,r?"key":"payload")}function fo(t,r){let e=so(t,"value");return le(e,r?"key":"payload")}function co(t,r){return!!an(t)&&(!(!dn(r)&&!pn(r))&&r in t)}function ho(t){if(an(t)){for(let r in t)return!0;return!1}return!1}function po(t){let r=Object.prototype.toString.call(t);return"[object Function]"===r||"[object AsyncFunction]"===r}function mo(t,r){let e=function(){let t,r,e=new Promise(function(){t=arguments[0],r=arguments[1]});return e.resolve=t,e.reject=r,e}();if(!un(t)&&!an(t))return e.reject("rs is not an array or object"),e;let n=!1;if(an(t)){n=!0;let r=[];et(t,(t,e)=>{r.push({k:e,v:t})}),t=r}po(r)||(r=function(t){return t});let o=-1,i=[];return t.reduce(function(t,e){return t.then(function(t){i.push(t),o+=1;let u=o,a=e;return n&&(u=e.k,a=e.v),po(r)?r(a,u):a})},Promise.resolve()).then(function(t){i.push(t),i=Jn(i),e.resolve(i)}).catch(function(t){e.reject(t)}),e}function yo(t,r=0){if(!pn(t))return"";if(!ro(r))return"";return t=_n(t),Qn(t,r).toFixed(r)}let vo=async(t,r,e={})=>{r=_e(r,"timeStart");let n=Gt(e,"uIni",1e3),o={};et(t,t=>{o[t.time]=t});let i={},u=n,a=0;et(r,(t,r)=>{et(o,e=>{if(e.time<=t.timeStart)return delete o[e.time],!0;if("long"===t.mode){if(e.Low<=t.priceStopLoss)return t.timeEnd=e.time,t.priceEnd=t.priceStopLoss,t.uProfitOrLoss=t.uTrade*(t.priceEnd/t.priceStart)-t.uTrade-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1;if(e.High>=t.priceTakeProfit)return t.timeEnd=e.time,t.priceEnd=t.priceTakeProfit,t.uProfitOrLoss=t.uTrade*(t.priceEnd/t.priceStart)-t.uTrade-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1}else{if(e.High>=t.priceStopLoss)return t.timeEnd=e.time,t.priceEnd=t.priceStopLoss,t.uProfitOrLoss=(t.priceStart-t.priceEnd)*(t.uTrade/t.priceStart)-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1;if(e.Low<=t.priceTakeProfit)return t.timeEnd=e.time,t.priceEnd=t.priceTakeProfit,t.uProfitOrLoss=(t.priceStart-t.priceEnd)*(t.uTrade/t.priceStart)-2*t.uFee,t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/n*100,2)+"%",u+=t.uProfitOrLoss,t.uEquity=u,t.modeResult=t.uProfitOrLoss<0?"loss":"profit",i[r]=t,!1}})});{let t=[];et(r,(r,e)=>{let n=null;n=co(i,e)?i[e]:r,t.push(n)}),r=t}return r},bo=(t,r)=>r=le(r,r=>{if(!dn(r.modeResult))return r;let e=t(r.timeStart),n=t(r.timeEnd),o=e.format("YYYY-MM-DD"),i=n.format("YYYY-MM-DD"),u=t(o,"YYYY-MM-DD"),a=t(i,"YYYY-MM-DD").diff(u,"day")+1;r.dayHold=a;let s=0;return 1+r.rProfitOrLoss>=0&&(s=Math.pow(1+r.rProfitOrLoss,1/r.dayHold)-1),r.rProfitOrLossDay=s,r});function go(t,r){var e=[];return tt(t,function(t,n,o){r(t,n,o)&&e.push(t)}),e}function wo(t,r){return(_(t)?zr:go)(t,ae(r))}function Oo(t){return"number"==typeof t||b(t)&&"[object Number]"==v(t)}function So(t){if(!pn(t))return!1;return _n(t)>0}let jo=(t,r,e,n,o)=>{if(!So(r))throw new Error(`uIni[${r}] is not a positive number`);if(!dn(n))throw new Error(`invalid timeOhlcStart[${n}]`);if(!dn(o))throw new Error(`invalid timeOhlcEnd[${o}]`);e=_e(e,"timeStart");let i=[],u=[];et(e,t=>{dn(t.modeResult)?i.push(t):u.push(t)});let a=Lr(e),s=Lr(i),l=Lr(u),f=yo(Lr(wo(e,{modeResult:"profit"}))/s*100,2)+"%",c=0,d="",h="",p=0,m="",y="",v="",b=0,g="",w=0,O=0,S=r,j=r,E={},_={};et(e,t=>{if(dn(t.modeResult)){S=Math.max(S,t.uEquity);let r=S-t.uEquity,e=yo(r/S*100,2)+"%";r>c&&(c=r,j=S,d=e)}{let r=null;r=1,dn(t.timeStart)&&(co(E,t.timeStart)||(E[t.timeStart]=0),E[t.timeStart]+=r*t.uTrade,co(_,t.timeStart)||(_[t.timeStart]=0),_[t.timeStart]+=1),dn(t.timeEnd)&&(co(E,t.timeEnd)||(E[t.timeEnd]=0),E[t.timeEnd]-=r*t.uTrade,co(_,t.timeEnd)||(_[t.timeEnd]=0),_[t.timeEnd]-=1)}});{let t=[];et(E,(r,e)=>{if(!Oo(r))throw console.log("time",e),new Error(`invalid uTradeAll[${r}]`);t.push({time:e,uTradeAll:r})}),t=_e(t,"time");let r=0,e=le(t,t=>(r+=t.uTradeAll,{...t,uAccm:r})),n={};et(e,t=>{n[t.time]=t.uAccm}),E=n}{let t=[];et(_,(r,e)=>{if(!Oo(r))throw console.log("time",e),new Error(`invalid numTradeAll[${r}]`);t.push({time:e,numTradeAll:r})}),t=_e(t,"time");let r=0,e=le(t,t=>(r+=t.numTradeAll,{...t,nAccm:r})),n={};et(e,t=>{n[t.time]=t.nAccm}),_=n}e=le(e,t=>{let e=Gt(E,t.timeStart,null);if(!Oo(e))throw new Error("invalid uTradeAll");e=Math.abs(e),t.uTradeAll=e;let n=yo(t.uTradeAll/r*100,2)+"%";t.rTradeAll=n,b<t.uTradeAll&&(b=t.uTradeAll,g=t.rTradeAll);let o=Gt(_,t.timeStart,null);if(!Oo(o))throw new Error("invalid numTradeAll");return t.numTradeAll=o,w<t.numTradeAll&&(w=t.numTradeAll),t});{let t=Lr(i)-1;p=Gt(i,`${t}.uEquity`,""),m=Gt(i,`${t}.uCumuProfitOrLoss`,""),y=Gt(i,`${t}.rCumuProfitOrLoss`,"")}{let t;t=j-r+b>0?c/(j-r+b):0,h=yo(100*t,2)+"%"}v=b>0&&Oo(m)?m/b:0,v=yo(100*v,2)+"%";{let t=0,r=0,e=0,n=0;et(i,t=>{let r=t.rProfitOrLossDay*t.dayHold;e+=r;let o=t.dayHold;n+=o}),n>0&&(t=e/n);let o=0;et(i,r=>{let e=r.rProfitOrLossDay-t,n=r.dayHold*(e*e);o+=n}),n>1&&(r=Math.sqrt(o/(n-1))),r>0&&(O=t/r*Math.sqrt(252)),O<-10&&(O=-10),O>10&&(O=10)}let $=t(n),T=t(o).diff($,"day"),P=T/365,L="";{let t;t=0===r||0===P?0:(p-r)/r/P,L=`${yo(100*t,2)}%`}let A="";{let t;t=0===b||0===P?0:(p-r)/b/P,A=`${yo(100*t,2)}%`}return{btDays:T,btYears:yo(P,1),numTrade:a,numTradeFin:s,numTradeUnsettled:l,uTradeAllMax:b,rTradeAllMax:g,numTradeAllMax:w,uDrawdownMax:c,rDrawdownMax:d,rEquivalentDrawdownMax:h,rSharpe:O,rWin:f,uEquityFinal:p,uCumuProfitOrLossFinal:m,rCumuProfitOrLossFinal:y,rCumuProfitOrLossFinalNormYear:L,rEquivalentCumuProfitOrLossFinal:v,rEquivalentCumuProfitOrLossFinalNormYear:A}},Eo=async(t,r,e,n={})=>{let o=Gt(r,"mode","");if("long"!==o&&"short"!==o)throw new Error(`invalid strategy.mode[${o}] not 'long' or 'short'`);let i=Gt(r,"keyOhlc","");if(!dn(i))throw new Error("invalid strategy.keyOhlc");let u=Gt(r,"conds",[]);if(!cn(u))throw new Error("invalid strategy.conds");let a=Lr(u),s=Gt(r,"settings",{});if(ho(s)||(s={uIni:1e3,uTrade:1,rTakeProfit:.05,rStopLoss:.03,rFee:5e-4}),!po(e))throw new Error("funGetSeries is not a function");let l=Gt(n,"withCalcOrderProfitOrLoss",!0),f=Gt(n,"withSummary",!0),c=await e(i),d={},h={};await mo(u,async t=>{let r=await e(t.key);co(h,t.key)||(h[t.key]={}),et(r,r=>{h[t.key][r.time]=r.param,co(d,r.time)||(d[r.time]=0),d[r.time]+=1})});let p=[];et(d,(t,r)=>{t===a&&p.push(r)}),p=function(t,r={}){if(!cn(t))return[];if(1===Lr(t))return t;let e=Gt(r,"localeCompare");hn(e)||(e=!1);let n=Gt(r,"returnIndex");hn(n)||(n=!1);let o=Gt(r,"compareKey",null),i=null;i=e?fo:lo;let u,a=uo(t);if(""===a)return[];if("obj"===a){if(!dn(o))return[];let a=le(t,(t,r)=>Gt(t,o,"")),s=uo(a);if("num"!==s&&"str"!==s)return[];{e&&(s="files");let o=i(ao(a,s,r),!0);u=n?o:le(o,r=>t[r])}}else"num"!==a&&"str"!==a||(e&&(a="files"),u=i(ao(t,a,r),n));return u}(p);let m={};et(p,t=>{m[t]=!0});let y={};et(p,t=>{y[t]={},et(u,r=>{y[t][r.key]=h[r.key][t]})});let v=Gt(nt(c),"time",""),b=Gt(Vt(c),"time",""),g=[];await mo(c,async t=>{let r=Gt(t,"time");if(!co(m,r))return!0;let e=!0;{let t=[];et(u,(e,n)=>{let o=y[r][e.key],i=Gt(e,"sym",">"),u=Gt(e,"th",0),a=Gt(e,"opr",null);"and"!==a&&"or"!==a&&(a="and");let s=!1;s=">"===i?o>u:o<u,t.push({opr:a,b:s})});let n=t.filter(t=>"and"===t.opr).every(t=>t.b),o=t.filter(t=>"or"===t.opr),i=0===o.length||o.some(t=>t.b);e=n&&i}let n=!1,i=!1;if(e&&("long"===o?n=!0:i=!0),n){let e={mode:"long",timeStart:r,priceStart:t.Close,uTrade:s.uTrade,rTakeProfit:s.rTakeProfit,priceTakeProfit:(1+s.rTakeProfit)*t.Close,rStopLoss:s.rStopLoss,priceStopLoss:(1-s.rStopLoss)*t.Close,timeEnd:"",priceEnd:"",modeResult:"",rFee:s.rFee,uFee:s.rFee*s.uTrade,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""};g.push(e)}else if(i){let e={mode:"short",timeStart:r,priceStart:t.Close,uTrade:s.uTrade,rTakeProfit:s.rTakeProfit,priceTakeProfit:(1-s.rTakeProfit)*t.Close,rStopLoss:s.rStopLoss,priceStopLoss:(1+s.rStopLoss)*t.Close,timeEnd:"",priceEnd:"",modeResult:"",rFee:s.rFee,uFee:s.rFee*s.uTrade,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""};g.push(e)}}),l&&(g=await vo(c,g,{uIni:s.uIni}));let w={timeTest:t().format("YYYY-MM-DDTHH:mm:ssZ"),timeOhlcStart:v,timeOhlcEnd:b,uIni:Gt(s,"uIni","")};if(f){g=bo(t,g);let r=jo(t,s.uIni,g,v,b);w={...w,...r}}return{orders:g,summary:w}};let _o=async(t,r,e,n,o,i={})=>{if(!So(r))throw new Error(`uIni[${r}] is not a positive number`);if(!dn(n))throw new Error(`invalid timeOhlcStart[${n}]`);if(!dn(o))throw new Error(`invalid timeOhlcEnd[${o}]`);e=_e(e,"timeStart");let u=r,a=0;e=le(e,t=>dn(t.modeResult)?(u+=t.uProfitOrLoss,t.uEquity=u,a+=t.uProfitOrLoss,t.uCumuProfitOrLoss=a,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/r*100,2)+"%",t):t),e=bo(t,e);let s=jo(t,r,e,n,o);return{timeTest:t().format("YYYY-MM-DDTHH:mm:ssZ"),timeOhlcStart:n,timeOhlcEnd:o,uIni:r,...s}},$o=async(t,r,e,n={})=>{let o=Gt(n,"withCalcOrderProfitOrLoss",!0),i=Gt(n,"withSummary",!0),u=0,a=[],s=null;var l;await mo(r,async(r,n)=>{try{s=await Eo(t,r,e,{withCalcOrderProfitOrLoss:o,withSummary:!1});let n=Gt(r,"settings.uIni","");if(!Oo(n))throw new Error(`uIni[${n}] is not a number`);u+=n,Lr(s.orders)>=1&&(s.orders=le(s.orders,t=>(t.sid=r.sid,t)),a.push(s.orders))}catch(t){}}),a=null!=(l=a)&&l.length?de(l,1):[],Lr(a)>=2&&(a=_e(a,"timeStart"));let f=Gt(s,"summary.timeOhlcStart",""),c=Gt(s,"summary.timeOhlcEnd","");if(!dn(f))throw new Error("invalid timeOhlcStart");if(!dn(c))throw new Error("invalid timeOhlcEnd");let d={timeTest:t().format("YYYY-MM-DDTHH:mm:ssZ"),timeOhlcStart:f,timeOhlcEnd:c};return i&&(d=await _o(t,u,a,f,c)),{orders:a,summary:d}};function To(t,r={}){let e=Gt(r,"fs"),n=!1;try{e.statSync(t),n=!0}catch{n=!1}return n}function Po(t,r={}){let e=Gt(r,"fs");if(!To(t,{fs:e}))return!1;let n=e.lstatSync(t);return!n.isFile()&&!n.isSymbolicLink()}function Lo(t){return Po(t,{fs:r})}function Ao(t){if(!dn(t))return{path:"",isRoot:!1};for(;t.indexOf("\\\\")>=0;)t=t.replace("\\\\","\\");for(;t.indexOf("//")>=0;)t=t.replace("//","/");if(":"===eo(t,1))return{path:`${t}\\`,isRoot:!0};if("\\"===eo(t,1)){let r=oo(t,1);return":"===eo(r,1)?{path:t,isRoot:!0}:{path:r,isRoot:!1}}if("/"===eo(t,1)){let r=oo(t,1);return 0===r.length?{path:t,isRoot:!0}:{path:r,isRoot:!1}}return{path:t,isRoot:!1}}function Mo(t){if(!dn(t))return"";let r=Ao(t);if(r.isRoot)return r.path;let e=r.path;try{e=e.split("\\").pop().split("/").pop()}catch(t){}return e}function ko(t,r={}){let e=Gt(r,"fs");if(Po(t,{fs:e}))return{success:"input folder is already exists: "+t};if(To(t,{fs:e}))return{error:"input path already exists: "+t};try{e.mkdirSync(t,{recursive:!0})}catch(t){return{error:t}}return{success:"done: "+t}}function Fo(t,r,e={}){let n=null,o=Gt(e,"fs"),i=function(t){if(!dn(t))return"";let r=Ao(t);if(r.isRoot)return r.path;let e=Mo(t=r.path);if(!dn(e))return t;let n=Ao(t=oo(t,e.length));return n.isRoot,n.path}(t);Po(i,{fs:o})||ko(i,{fs:o});try{o.writeFileSync(t,r,"utf8")}catch(t){n=t}return null!==n?{error:n}:{success:t}}function Do(t,e,n={}){let o=null;if(!an(e)&&!un(e))return{error:"inp is not an object or array"};let i=Gt(n,"useFormat",null);hn(i)||(i=!1);let u="";try{u=i?JSON.stringify(e,null,2):JSON.stringify(e)}catch(t){o=t}return null!==o?{error:o}:Fo(t,u,{fs:r})}function xo(t){return function(t,r={}){let e=Gt(r,"fs");return!!To(t,{fs:e})&&!e.lstatSync(t).isDirectory()&&!e.lstatSync(t).isSymbolicLink()}(t,{fs:r})}function Co(t){let e=null,n=function(t,r={}){let e=null,n=Gt(r,"fs"),o="";try{o=n.readFileSync(t,"utf8")}catch(t){e=t}return null!==e?{error:e}:{success:o}}(t,{fs:r});if(n.error)return n;let o=n.success,i=null;try{i=JSON.parse(o)}catch(t){e=t}return null!==e?{error:e}:{success:i}}function Ro(t,r=1,e={}){let n=1,o=Gt(e,"path"),i=Gt(e,"fs");if(!Po(t,{fs:i}))throw new Error(`fd[${t}] is not a folder`);return null!==r&&function(t,r={}){return!!Vn(t,r)&&to(t)>0}(r)&&(r=to(r))<1&&(r=1),function t(e){let u=[];return Po(e,{fs:i})?(et(i.readdirSync(e),function(a){let s=o.resolve(e,a),l=null;try{l=i.statSync(s)}catch(t){}l&&l.isDirectory()?(u.push({isFolder:!0,level:n,path:s,name:o.basename(s)}),n+=1,(n<=r||null===r)&&(u=u.concat(t(s))),n-=1):u.push({isFolder:!1,level:n,path:s,name:o.basename(s)})}),u):u}(t)}function Yo(e,n=1){return Ro(e,n,{path:t,fs:r})}var No=Y&&Y.isRegExp,Io=No?D(No):function(t){return b(t)&&"[object RegExp]"==v(t)};function qo(t,r,e){return e&&"number"!=typeof e&&je(t,r,e)&&(r=e=void 0),(e=void 0===e?4294967295:e>>>0)?(t=Ut(t))&&("string"==typeof r||null!=r&&!Io(r))&&!(r=Ht(r))&&mr(t)?Pn(Un(t),0,e):t.split(r,e):[]}var zo=Array.prototype.join;function Ho(t){if(!dn(t))return"";let r=Mo(t),e=qo(r,".");if(Lr(e)<=1)return r;let n="";try{e=(a=null==(o=e)?0:o.length)?Tn(o,0,(i=a-(i=u||void 0===i?1:Wn(i)))<0?0:i):[],n=function(t,r){return null==t?"":zo.call(t,r)}(e,".")}catch(t){}var o,i,u,a;return n}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Uo(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Bo={exports:{}};!function(t){t.exports=function(){var t=1e3,r=6e4,e=36e5,n="millisecond",o="second",i="minute",u="hour",a="day",s="week",l="month",f="quarter",c="year",d="date",h="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var r=["th","st","nd","rd"],e=t%100;return"["+t+(r[(e-20)%10]||r[e]||r[0])+"]"}},v=function(t,r,e){var n=String(t);return!n||n.length>=r?t:""+Array(r+1-n.length).join(e)+t},b={s:v,z:function(t){var r=-t.utcOffset(),e=Math.abs(r),n=Math.floor(e/60),o=e%60;return(r<=0?"+":"-")+v(n,2,"0")+":"+v(o,2,"0")},m:function t(r,e){if(r.date()<e.date())return-t(e,r);var n=12*(e.year()-r.year())+(e.month()-r.month()),o=r.clone().add(n,l),i=e-o<0,u=r.clone().add(n+(i?-1:1),l);return+(-(n+(e-o)/(i?o-u:u-o))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:c,w:s,d:a,D:d,h:u,m:i,s:o,ms:n,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",w={};w[g]=y;var O="$isDayjsObject",S=function(t){return t instanceof $||!(!t||!t[O])},j=function t(r,e,n){var o;if(!r)return g;if("string"==typeof r){var i=r.toLowerCase();w[i]&&(o=i),e&&(w[i]=e,o=i);var u=r.split("-");if(!o&&u.length>1)return t(u[0])}else{var a=r.name;w[a]=r,o=a}return!n&&o&&(g=o),o||!n&&g},E=function(t,r){if(S(t))return t.clone();var e="object"==typeof r?r:{};return e.date=t,e.args=arguments,new $(e)},_=b;_.l=j,_.i=S,_.w=function(t,r){return E(t,{locale:r.$L,utc:r.$u,x:r.$x,$offset:r.$offset})};var $=function(){function y(t){this.$L=j(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[O]=!0}var v=y.prototype;return v.parse=function(t){this.$d=function(t){var r=t.date,e=t.utc;if(null===r)return new Date(NaN);if(_.u(r))return new Date;if(r instanceof Date)return new Date(r);if("string"==typeof r&&!/Z$/i.test(r)){var n=r.match(p);if(n){var o=n[2]-1||0,i=(n[7]||"0").substring(0,3);return e?new Date(Date.UTC(n[1],o,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)):new Date(n[1],o,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)}}return new Date(r)}(t),this.init()},v.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},v.$utils=function(){return _},v.isValid=function(){return!(this.$d.toString()===h)},v.isSame=function(t,r){var e=E(t);return this.startOf(r)<=e&&e<=this.endOf(r)},v.isAfter=function(t,r){return E(t)<this.startOf(r)},v.isBefore=function(t,r){return this.endOf(r)<E(t)},v.$g=function(t,r,e){return _.u(t)?this[r]:this.set(e,t)},v.unix=function(){return Math.floor(this.valueOf()/1e3)},v.valueOf=function(){return this.$d.getTime()},v.startOf=function(t,r){var e=this,n=!!_.u(r)||r,f=_.p(t),h=function(t,r){var o=_.w(e.$u?Date.UTC(e.$y,r,t):new Date(e.$y,r,t),e);return n?o:o.endOf(a)},p=function(t,r){return _.w(e.toDate()[t].apply(e.toDate("s"),(n?[0,0,0,0]:[23,59,59,999]).slice(r)),e)},m=this.$W,y=this.$M,v=this.$D,b="set"+(this.$u?"UTC":"");switch(f){case c:return n?h(1,0):h(31,11);case l:return n?h(1,y):h(0,y+1);case s:var g=this.$locale().weekStart||0,w=(m<g?m+7:m)-g;return h(n?v-w:v+(6-w),y);case a:case d:return p(b+"Hours",0);case u:return p(b+"Minutes",1);case i:return p(b+"Seconds",2);case o:return p(b+"Milliseconds",3);default:return this.clone()}},v.endOf=function(t){return this.startOf(t,!1)},v.$set=function(t,r){var e,s=_.p(t),f="set"+(this.$u?"UTC":""),h=(e={},e[a]=f+"Date",e[d]=f+"Date",e[l]=f+"Month",e[c]=f+"FullYear",e[u]=f+"Hours",e[i]=f+"Minutes",e[o]=f+"Seconds",e[n]=f+"Milliseconds",e)[s],p=s===a?this.$D+(r-this.$W):r;if(s===l||s===c){var m=this.clone().set(d,1);m.$d[h](p),m.init(),this.$d=m.set(d,Math.min(this.$D,m.daysInMonth())).$d}else h&&this.$d[h](p);return this.init(),this},v.set=function(t,r){return this.clone().$set(t,r)},v.get=function(t){return this[_.p(t)]()},v.add=function(n,f){var d,h=this;n=Number(n);var p=_.p(f),m=function(t){var r=E(h);return _.w(r.date(r.date()+Math.round(t*n)),h)};if(p===l)return this.set(l,this.$M+n);if(p===c)return this.set(c,this.$y+n);if(p===a)return m(1);if(p===s)return m(7);var y=(d={},d[i]=r,d[u]=e,d[o]=t,d)[p]||1,v=this.$d.getTime()+n*y;return _.w(v,this)},v.subtract=function(t,r){return this.add(-1*t,r)},v.format=function(t){var r=this,e=this.$locale();if(!this.isValid())return e.invalidDate||h;var n=t||"YYYY-MM-DDTHH:mm:ssZ",o=_.z(this),i=this.$H,u=this.$m,a=this.$M,s=e.weekdays,l=e.months,f=e.meridiem,c=function(t,e,o,i){return t&&(t[e]||t(r,n))||o[e].slice(0,i)},d=function(t){return _.s(i%12||12,t,"0")},p=f||function(t,r,e){var n=t<12?"AM":"PM";return e?n.toLowerCase():n};return n.replace(m,function(t,n){return n||function(t){switch(t){case"YY":return String(r.$y).slice(-2);case"YYYY":return _.s(r.$y,4,"0");case"M":return a+1;case"MM":return _.s(a+1,2,"0");case"MMM":return c(e.monthsShort,a,l,3);case"MMMM":return c(l,a);case"D":return r.$D;case"DD":return _.s(r.$D,2,"0");case"d":return String(r.$W);case"dd":return c(e.weekdaysMin,r.$W,s,2);case"ddd":return c(e.weekdaysShort,r.$W,s,3);case"dddd":return s[r.$W];case"H":return String(i);case"HH":return _.s(i,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return p(i,u,!0);case"A":return p(i,u,!1);case"m":return String(u);case"mm":return _.s(u,2,"0");case"s":return String(r.$s);case"ss":return _.s(r.$s,2,"0");case"SSS":return _.s(r.$ms,3,"0");case"Z":return o}return null}(t)||o.replace(":","")})},v.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},v.diff=function(n,d,h){var p,m=this,y=_.p(d),v=E(n),b=(v.utcOffset()-this.utcOffset())*r,g=this-v,w=function(){return _.m(m,v)};switch(y){case c:p=w()/12;break;case l:p=w();break;case f:p=w()/3;break;case s:p=(g-b)/6048e5;break;case a:p=(g-b)/864e5;break;case u:p=g/e;break;case i:p=g/r;break;case o:p=g/t;break;default:p=g}return h?p:_.a(p)},v.daysInMonth=function(){return this.endOf(l).$D},v.$locale=function(){return w[this.$L]},v.locale=function(t,r){if(!t)return this.$L;var e=this.clone(),n=j(t,r,!0);return n&&(e.$L=n),e},v.clone=function(){return _.w(this.$d,this)},v.toDate=function(){return new Date(this.valueOf())},v.toJSON=function(){return this.isValid()?this.toISOString():null},v.toISOString=function(){return this.$d.toISOString()},v.toString=function(){return this.$d.toUTCString()},y}(),T=$.prototype;return E.prototype=T,[["$ms",n],["$s",o],["$m",i],["$H",u],["$W",a],["$M",l],["$y",c],["$D",d]].forEach(function(t){T[t[1]]=function(r){return this.$g(r,t[0],t[1])}}),E.extend=function(t,r){return t.$i||(t(r,$,E),t.$i=!0),E},E.locale=j,E.isDayjs=S,E.unix=function(t){return E(1e3*t)},E.en=w[g],E.Ls=w,E.p={},E}()}(Bo);var Wo=Uo(Bo.exports);function Jo(t){if(!dn(t))return!1;let r="YYYY-MM-DDTHH:mm:ss";return t===Wo(t,r).format(r)}let Go=(r,e)=>{let n={},o=async o=>{if(co(n,o))return n[o];let i=await(async n=>{let o=t.resolve(e,`${n}.json`),i=t.resolve(r,`${n}.json`),u="";if(xo(o))u=o;else{if(!xo(i))throw console.log(`fpParam[${o}] or fpOhlc[${i}] do not exist`),new Error(`invalid key[${n}]`);u=i}let a=Gt(Co(u),"success",null);if(!cn(a))throw new Error(`fp[${u}] no data`);return a})(o);return n[o]=i,i},i=[],u=async()=>{if(Lr(i)>0)return i;let t=t=>{let r=Yo(t);return r=wo(r,t=>"json"===function(t){if(!dn(t))return"";let r=qo(Mo(t),".");if(Lr(r)<=1)return"";let e="";try{e=Vt(r)}catch(t){}return e}(t.name)),r},n=[],u=t(r);await mo(u,async t=>{let r=Ho(t.name),e=await o(r);n.push({type:"ohlc",key:r,arr:e})});let a=t(e);return await mo(a,async t=>{let r=Ho(t.name),e=await o(r);n.push({type:"param",key:r,arr:e})}),i=n,n},a={},s=async(t,r)=>{if(!Jo(t))throw new Error("invalid timeStart");if(!Jo(r))throw new Error("invalid timeEnd");let e=`${t}:${r}`;if(co(a,e))return a[e];let n=await u(),o="1000-01-01T00:00:00",i="9999-01-01T00:00:00";if(et(n,t=>{let r=nt(t.arr),e=Vt(t.arr),n=Gt(r,"time",""),u=Gt(e,"time","");"ohlc"===t.type&&o<n&&(o=n),i>u&&(i=u)}),t<o)throw new Error(`timeStart[${t}] < timeStartData[${o}]`);if(r>i)throw new Error(`timeEnd[${r}] > timeEndData[${i}]`);let s=[];return et(n,e=>{let n=wo(e.arr,e=>e.time>=t&&e.time<=r);s.push({key:e.key,arr:n})}),a[e]=s,s},l={getKeysParam:()=>le(Yo(e),t=>Ho(t.name)),getTimeSeries:o,getTimeSeriesByTimeRange:async(t,r,e)=>{let n=await o(t);return n=wo(n,t=>t.time>=r&&t.time<=e),n},getTimeSeriesFull:u,getTimeSeriesFullByTimeRange:s,buildGetTimeSeriesByTimeRange:async(t,r)=>{let e=await s(t,r),n={};et(e,t=>{n[t.key]=t.arr});return async e=>{let o=Gt(n,e,[]);if(!cn(o))throw new Error(`can not get series by key[${e}] bewteen timeStart[${t}] and timeEnd[${r}]`);return o}},buildGetTimeValueByTimeRange:async(t,r)=>{let e=await s(t,r),n={};et(e,t=>{et(t.arr,r=>{let e=`${t.key}_${r.time}`;n[e]=r})});return async(e,o)=>{let i=Gt(n,`${e}_${o}`,{});if(!ho(i))throw new Error(`can not get value by key[${e}] and time[${o}] bewteen timeStart[${t}] and timeEnd[${r}]`);return i}}};return l};let Vo=t.dirname(e.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:n&&"SCRIPT"===n.tagName.toUpperCase()&&n.src||new URL("w-trade-backtest.umd.js",document.baseURI).href)),Zo=(e,n)=>{let o=e=>{let n=t.resolve(Vo,e);return r.readFileSync(n,"utf8")},i=o("tmp.html"),u=o("renderProfitPlot.js"),a=o("renderOrdersTable.js"),s=o("renderOrdersTimeline.js"),l=o("renderSummary.js");i=i.replace("{renderProfitPlot}",u),i=i.replace("{renderOrdersTable}",a),i=i.replace("{renderOrdersTimeline}",s),i=i.replace("{renderSummary}",l),i=i.replace("{name}",e.name),i=i.replace("{orders}",JSON.stringify(e.orders)),i=i.replace("{summary}",JSON.stringify(e.summary)),Fo(n,i,{fs:r})},Ko=(t,r,e,n,o,i={})=>{i&&i.skipSort||(e=e.slice().sort((t,r)=>t.timeStart<r.timeStart?-1:t.timeStart>r.timeStart?1:0));let u=e.length,a=0,s=0,l="",f=new Map;for(let t of e)dn(t.modeResult)&&(a++,"profit"===t.modeResult&&s++,l=t.uEquity),f.set(t.timeStart,(f.get(t.timeStart)||0)+t.uTrade),dn(t.timeEnd)&&f.set(t.timeEnd,(f.get(t.timeEnd)||0)-t.uTrade);let c=[...f.keys()].sort(),d=0,h=new Map;for(let t of c)d+=f.get(t),h.set(t,d);let p=0,m="";for(let t of e){let e=Math.abs(h.get(t.timeStart));e>p&&(p=e,m=yo(p/r*100,2)+"%")}let y,v=yo(s/a*100,2)+"%",b=t(o).diff(t(n),"day"),g=b/365;y=`${yo(100*(0===p||0===g?0:(l-r)/p/g),2)}%`;return{numTrade:u,numTradeFin:a,rWin:v,uTradeAllMax:p,rTradeAllMax:m,uEquityFinal:l,btDays:b,btYears:yo(g,1),rEquivalentCumuProfitOrLossFinalNormYear:y,timeOhlcStart:n,timeOhlcEnd:o}};var Xo=Math.max;var Qo,ti=(Qo=function(t,r,e){var n=null==t?0:t.length;if(!n)return-1;var o=null==e?0:Wn(e);return o<0&&(o=Xo(n+o,0)),Ln(t,ae(r),o)},function(t,r,e){var n=Object(t);if(!K(t)){var o=ae(r);t=X(t),r=function(t){return o(n[t],t,n)}}var i=Qo(t,r,e);return i>-1?n[o?t[i]:i]:void 0});function ri(t,r,e){for(var n=-1,o=t.length;++n<o;){var i=t[n],u=r(i);if(null!=u&&(void 0===a?u==u&&!ot(u):e(u,a)))var a=u,s=i}return s}function ei(t,r){return t>r}function ni(t,r){return t<r}let oi=(t,r={})=>{let e=r.tp,n=r.sl,o=r.mode||"long";if(!(e>0&&n>0))throw new Error(`genKLinesTpSl: invalid tp[${e}] / sl[${n}]`);let i=t.length,u=new Array(i),a=new Float64Array(i),s=new Float64Array(i),l=new Float64Array(i);for(let r=0;r<i;r++){let e=t[r];u[r]=e.time,a[r]=e.Close,s[r]=e.High,l[r]=e.Low}let f=new Float64Array(i).fill(NaN),c=new Int8Array(i).fill(-1),d=new Float64Array(i).fill(NaN);for(let t=0;t<i-1;t++){let r=a[t];if(!(r>0))continue;let u=r*(1+e),h=r*(1-n);for(let a=t+1;a<i;a++)if("long"===o){if(l[a]<=h){f[t]=-n,c[t]=0,d[t]=a-t;break}if(s[a]>=u){f[t]=e,c[t]=1,d[t]=a-t;break}}else{let o=r*(1+n),i=r*(1-e);if(s[a]>=o){f[t]=-n,c[t]=0,d[t]=a-t;break}if(l[a]<=i){f[t]=e,c[t]=1,d[t]=a-t;break}}}return{time:u,pnl:f,win:c,hold:d}};let ii=(t,r,e,n,o)=>"long"===t?r*(n/e)-r-2*o:r/e*(e-n)-2*o,ui={runStrategy:Eo,runStrategies:$o,runStrategiesAndBacktest:async(r,e,n,o,i,u,a,s={})=>{if(!Lo(e))throw new Error(`fdOhlc[${e}] is not a forder`);if(!Lo(n))throw new Error(`fdParam[${n}] is not a forder`);if(!cn(o))throw new Error("invalid strategies");let l=Gt(s,"writeOrders",!0),f=Gt(s,"writeSummary",!0),c=Gt(s,"writeReport",!0),d=Go(e,n),h=await d.buildGetTimeSeriesByTimeRange(i,u),p=await $o(r,o,h,{});if(p.name="全部策略",l){let r="orders.json";Do(t.resolve(a,r),p.orders,{useFormat:!0})}if(f){let r="summary.json";Do(t.resolve(a,r),{name:p.name,summary:p.summary},{useFormat:!0}),console.log("summary",p.summary,Lr(p.orders))}if(c){let r="report.html",e=t.resolve(a,r);Zo(p,e)}return p},calcOrders:vo,calcOrdersRatio:bo,calcOrdersSummary:jo,calcOrdersSummarySimple:Ko,calcSummary:_o,closeAndSummaryOrders:async(r,e,n,o,i,u,a,s,l,f={})=>{if(!Lo(e))throw new Error(`fdOhlc[${e}] is not a forder`);if(!Lo(n))throw new Error(`fdParam[${n}] is not a forder`);if(!So(o))throw new Error(`uIni[${o}] is not a positive number`);if(!dn(i))throw new Error(`invalid timeOhlcStart[${i}]`);if(!dn(u))throw new Error(`invalid timeOhlcEnd[${u}]`);if(!dn(a))throw new Error(`invalid keyOhlc[${a}]`);if(!un(s))throw new Error(`invalid ordersSubmit[${s}]`);if(!dn(l))throw new Error(`invalid fdTest[${l}]`);let c=Gt(f,"writeOrders",!0),d=Gt(f,"writeSummary",!0),h=Gt(f,"writeReport",!0),p=Go(e,n),m=r(i),y=r(u).diff(m,"hour")/4;if(y!==to(y))throw new Error(`timeOhlcStart[${i}] to timeOhlcEnd[${u}] are not hour intervals`);let v=await p.buildGetTimeSeriesByTimeRange(i,u),b=await v(a),g=await vo(b,s,{uIni:o}),w=await _o(r,o,g,i,u);console.log("summary",w,Lr(g));let O={name:"全部策略",orders:g,summary:w};if(c){let r="orders.json";Do(t.resolve(l,r),O.orders,{useFormat:!0})}if(d){let r="summary.json";Do(t.resolve(l,r),{name:O.name,summary:O.summary},{useFormat:!0}),console.log("summary",O.summary,Lr(O.orders))}if(h){let r="report.html",e=t.resolve(l,r);Zo(O,e)}},genReport:async(r,e,n={})=>{if(!dn(e))throw new Error("invalid fpOrders");if(!xo(e))throw new Error(`fpOrders[${e}] is not a file`);let o=Gt(Co(e),"success",null);if(!cn(o))throw new Error(`orders in fpOrders[${e}] is not an effective array`);let i=Gt(n,"fpOut","");dn(i)||(i=t.resolve(t.dirname(e),"report.html"));let u=Gt(n,"name","");dn(u)||(u=t.basename(t.dirname(t.resolve(e))));let a=Gt(n,"uIni",null);if(!pn(a)){let t=ti(o,t=>pn(t.uEquity)&&pn(t.uCumuProfitOrLoss));a=t?t.uEquity-t.uCumuProfitOrLoss:1e3}let s=Gt(n,"timeOhlcStart","");var l;dn(s)||(s=(l=le(o,"timeStart"))&&l.length?ri(l,rt,ni):void 0);let f=Gt(n,"timeOhlcEnd","");dn(f)||(f=function(t){return t&&t.length?ri(t,rt,ei):void 0}(le(o,t=>dn(t.timeEnd)?t.timeEnd:t.timeStart)));let c=Gt(n,"withWriteSummary",!1),d=await _o(r,a,o,s,f);return c&&Do(t.resolve(t.dirname(i),"summary.json"),{name:u,summary:d},{useFormat:!0}),Zo({name:u,orders:o,summary:d},i),{orders:o,summary:d,fpOut:i}},genReportCore:Zo,genKLinesTpSl:oi,buildKLinesTpSl:async(e,n,o,i={})=>{if(!Lo(e))throw new Error(`fdOhlc[${e}] is not a folder`);if(!Lo(n))throw new Error(`fdParam[${n}] is not a folder`);if(!dn(o))throw new Error("invalid fpJson");let u=Go(e,n),{keyOhlc:a,ts:s,te:l,tps:f=[4,5,6,7,8,9,10],modes:c=["long","short"]}=i;if(!dn(a))throw new Error("invalid opt.keyOhlc");if(!Jo(s))throw new Error("invalid opt.ts");if(!Jo(l))throw new Error("invalid opt.te");let d=await u.getTimeSeriesByTimeRange(a,s,l),h=d.length,p=d.map(t=>t.time),m={};for(let t=0;t<h;t++)m[p[t]]={close:d[t].Close};for(let t of c)for(let r of f){let{win:e,hold:n}=oi(d,{tp:r/100,sl:r/100,mode:t}),o=`${t}_${r}`;for(let t=0;t<h;t++){let r=e[t],i=r>=0&&Number.isFinite(n[t])?p[t+n[t]]:null;m[p[t]][o]={win:r,timeEnd:i}}}let y={meta:{keyOhlc:a,ts:s,te:l,tps:f,modes:c,nBars:h},bars:m},v=t.resolve(o),b=t.dirname(v);return Lo(b)||ko(b,{fs:r}),r.writeFileSync(v,JSON.stringify(y)),y},loadKLinesTpSl:e=>{if(!dn(e))throw new Error("invalid fpJson");if(!xo(e))throw new Error(`fpJson[${e}] is not a file`);let n=JSON.parse(r.readFileSync(t.resolve(e),"utf8")),o=n.meta,i=n.bars;return{meta:o,bars:i,ordersFromBars:(t,r,e,n={})=>{let{uTrade:o=1,uIni:u=1e3,rFee:a=5e-4,maxExitTime:s=null,skipSort:l=!1}=n,f=`${t}_${r}`,c=r/100,d=a*o,h=(l?e:[...e].sort()).filter(t=>i[t]).map(r=>{let e=i[r].close;return{mode:t,timeStart:r,priceStart:e,uTrade:o,rTakeProfit:c,priceTakeProfit:"long"===t?(1+c)*e:(1-c)*e,rStopLoss:c,priceStopLoss:"long"===t?(1-c)*e:(1+c)*e,timeEnd:"",priceEnd:"",modeResult:"",rFee:a,uFee:d,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""}}),p=u,m=0;for(let t of h){let r=i[t.timeStart][f];!r||r.win<0||!r.timeEnd||(s&&r.timeEnd>=s||(t.timeEnd=r.timeEnd,t.priceEnd=1===r.win?t.priceTakeProfit:t.priceStopLoss,t.uProfitOrLoss=ii(t.mode,t.uTrade,t.priceStart,t.priceEnd,t.uFee),t.rProfitOrLoss=t.uProfitOrLoss/t.uTrade,m+=t.uProfitOrLoss,t.uCumuProfitOrLoss=m,t.rCumuProfitOrLoss=yo(t.uCumuProfitOrLoss/u*100,2)+"%",p+=t.uProfitOrLoss,t.uEquity=p,t.modeResult=t.uProfitOrLoss<0?"loss":"profit"))}return h}}},buildStrategyFastSession:(t,r={})=>{let e=Gt(r,"mode","");if("long"!==e&&"short"!==e)throw new Error(`invalid opt.mode[${e}] not 'long' or 'short'`);let n=Gt(r,"arrOhlc",null);if(!cn(n))throw new Error("invalid opt.arrOhlc");let o=Gt(r,"serieses",null);if(!ho(o))throw new Error("invalid opt.serieses");let i=n.length,u=new Array(i),a=new Float64Array(i),s=new Map;for(let t=0;t<i;t++){let r=n[t];u[t]=r.time,a[t]=r.Close,s.set(r.time,t)}let l=i>0?u[0]:"",f=i>0?u[i-1]:"",c={};for(let t of Object.keys(o)){let r=new Float64Array(i).fill(NaN);for(let e of o[t]){let t=s.get(e.time);void 0!==t&&(r[t]=e.param)}c[t]=r}let d=new Map,h=(t,r)=>{let o=`${t}_${r}`,i=d.get(o);return i||(i=oi(n,{tp:t,sl:r,mode:e}),d.set(o,i)),i},p=Gt(r,"tpsls",[]);if(cn(p))for(let t of p)h(t.tp,t.sl);return{evaluate:(r={},n={})=>{let o=Gt(r,"conds",[]);if(!cn(o))throw new Error("invalid conds");let s=Gt(r,"tp",null),d=Gt(r,"sl",null),p=Gt(r,"settings",{}),m=Gt(p,"uIni",1e3),y=Gt(p,"uTrade",1),v=Gt(p,"rFee",5e-4),b=v*y,g=Gt(n,"withOrders",!1),w=h(s,d),O=w.win,S=w.hold,j=o.map(t=>{let r=Gt(t,"key",""),e=c[r];if(!e)throw new Error(`invalid cond.key[${r}] not in opt.serieses`);let n=Gt(t,"sym",">"),o=Gt(t,"th",0),i=Gt(t,"opr",null);return"and"!==i&&"or"!==i&&(i="and"),{arr:e,gt:">"===n,th:o,isOr:"or"===i}}),E=[],_=m,$=0;for(let t=0;t<i;t++){let r=!1,n=!0,o=!1,i=!1;for(let e of j){let u=e.arr[t];if(Number.isNaN(u)){r=!0;break}let a=e.gt?u>e.th:u<e.th;e.isOr?(o=!0,i=i||a):n=n&&a}if(r||!n||o&&!i)continue;let l,f=a[t],c=O[t];if(l=g?{mode:e,timeStart:u[t],priceStart:f,uTrade:y,rTakeProfit:s,priceTakeProfit:"long"===e?(1+s)*f:(1-s)*f,rStopLoss:d,priceStopLoss:"long"===e?(1-d)*f:(1+d)*f,timeEnd:"",priceEnd:"",modeResult:"",rFee:v,uFee:b,uProfitOrLoss:"",rProfitOrLoss:"",uCumuProfitOrLoss:"",rCumuProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradeAll:""}:{timeStart:u[t],timeEnd:"",uTrade:y,uProfitOrLoss:"",uEquity:"",modeResult:""},c>=0){let r;r=1===c?"long"===e?(1+s)*f:(1-s)*f:"long"===e?(1-d)*f:(1+d)*f;let n=ii(e,y,f,r,b);$+=n,_+=n,l.timeEnd=u[t+S[t]],l.uProfitOrLoss=n,l.uEquity=_,l.modeResult=n<0?"loss":"profit",g&&(l.priceEnd=r,l.rProfitOrLoss=n/y,l.uCumuProfitOrLoss=$,l.rCumuProfitOrLoss=yo($/m*100,2)+"%")}E.push(l)}let T=Ko(t,m,E,l,f,{skipSort:!0});return g?{orders:E,summary:T}:T}}}};return ui});
|
|
7
7
|
//# sourceMappingURL=w-trade-backtest.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"w-trade-backtest.umd.js","sources":["../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/forEach.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/head.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/last.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_asciiSize.js","../node_modules/lodash-es/_hasUnicode.js","../node_modules/lodash-es/_unicodeSize.js","../node_modules/lodash-es/_stringSize.js","../node_modules/lodash-es/size.js","../node_modules/lodash-es/isString.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/lodash-es/_isFlattenable.js","../node_modules/lodash-es/_baseFlatten.js","../node_modules/lodash-es/_compareAscending.js","../node_modules/lodash-es/_baseOrderBy.js","../node_modules/lodash-es/_baseSortBy.js","../node_modules/lodash-es/_compareMultiple.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/sortBy.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/wsemi/src/isarr.mjs","../node_modules/wsemi/src/isobj.mjs","../node_modules/wsemi/src/isstr.mjs","../node_modules/wsemi/src/isnan.mjs","../node_modules/wsemi/src/iser.mjs","../node_modules/wsemi/src/isundefined.mjs","../node_modules/wsemi/src/isnull.mjs","../node_modules/wsemi/src/isobj0.mjs","../node_modules/wsemi/src/isstr0.mjs","../node_modules/wsemi/src/isarr0.mjs","../node_modules/wsemi/src/isearr.mjs","../node_modules/wsemi/src/isestr.mjs","../node_modules/wsemi/src/isbol.mjs","../node_modules/lodash-es/isBoolean.js","../node_modules/wsemi/src/isnum.mjs","../node_modules/wsemi/src/isnbr.mjs","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/wsemi/src/cdbl.mjs","../node_modules/wsemi/src/cstr.mjs","../node_modules/wsemi/src/isbigint.mjs","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/_castSlice.js","../node_modules/lodash-es/_baseFindIndex.js","../node_modules/lodash-es/_baseIsNaN.js","../node_modules/lodash-es/_baseIndexOf.js","../node_modules/lodash-es/_strictIndexOf.js","../node_modules/lodash-es/_unicodeToArray.js","../node_modules/lodash-es/_stringToArray.js","../node_modules/lodash-es/_asciiToArray.js","../node_modules/lodash-es/trim.js","../node_modules/lodash-es/_charsStartIndex.js","../node_modules/lodash-es/_charsEndIndex.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/drop.js","../node_modules/lodash-es/reverse.js","../node_modules/wsemi/src/isint.mjs","../node_modules/lodash-es/isInteger.js","../node_modules/lodash-es/_createRound.js","../node_modules/lodash-es/round.js","../node_modules/wsemi/src/cint.mjs","../node_modules/wsemi/src/isp0int.mjs","../node_modules/wsemi/src/strright.mjs","../node_modules/wsemi/src/strdelleft.mjs","../node_modules/wsemi/src/strdelright.mjs","../node_modules/wsemi/src/strleft.mjs","../node_modules/wsemi/src/trim.mjs","../node_modules/wsemi/src/arrSort.mjs","../node_modules/lodash-es/cloneDeep.js","../node_modules/wsemi/src/haskey.mjs","../node_modules/wsemi/src/iseobj.mjs","../node_modules/wsemi/src/isfun.mjs","../node_modules/wsemi/src/pmSeries.mjs","../node_modules/wsemi/src/genPm.mjs","../node_modules/wsemi/src/dig.mjs","../src/calcOrders.mjs","../src/calcOrdersRatio.mjs","../node_modules/lodash-es/_baseFilter.js","../node_modules/lodash-es/filter.js","../node_modules/lodash-es/isNumber.js","../node_modules/wsemi/src/ispnum.mjs","../src/calcOrdersSummary.mjs","../src/runStrategy.mjs","../src/calcSummary.mjs","../src/runStrategies.mjs","../node_modules/lodash-es/flatten.js","../node_modules/wsemi/src/fsExistsCore.mjs","../node_modules/wsemi/src/fsIsFolderCore.mjs","../node_modules/wsemi/src/fsIsFolder.mjs","../node_modules/wsemi/src/getClearPathName.mjs","../node_modules/wsemi/src/getFileName.mjs","../node_modules/wsemi/src/fsCreateFolderCore.mjs","../node_modules/wsemi/src/fsWriteTextCore.mjs","../node_modules/wsemi/src/getPathParent.mjs","../node_modules/wsemi/src/fsWriteJson.mjs","../node_modules/wsemi/src/fsIsFile.mjs","../node_modules/wsemi/src/fsIsFileCore.mjs","../node_modules/wsemi/src/fsReadJson.mjs","../node_modules/wsemi/src/fsReadTextCore.mjs","../node_modules/wsemi/src/fsTreeFolderCore.mjs","../node_modules/wsemi/src/ispint.mjs","../node_modules/wsemi/src/fsTreeFolder.mjs","../node_modules/lodash-es/isRegExp.js","../node_modules/lodash-es/_baseIsRegExp.js","../node_modules/lodash-es/split.js","../node_modules/lodash-es/join.js","../node_modules/wsemi/src/getFileTrueName.mjs","../node_modules/lodash-es/dropRight.js","../node_modules/dayjs/dayjs.min.js","../node_modules/wsemi/src/istime.mjs","../node_modules/w-data-tdprovide/src/WDataTdprovide.mjs","../node_modules/wsemi/src/getFileNameExt.mjs","../src/genReportCore.mjs","../node_modules/wsemi/src/fsWriteText.mjs","../src/calcOrdersSummarySimple.mjs","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/find.js","../node_modules/lodash-es/_createFind.js","../node_modules/lodash-es/_baseExtremum.js","../node_modules/lodash-es/_baseGt.js","../node_modules/lodash-es/_baseLt.js","../src/genReport.mjs","../src/genKLinesTpSl.mjs","../src/buildKLinesTpSl.mjs","../src/settleOrderPnl.mjs","../src/WTradeBacktest.mjs","../src/runStrategiesAndBacktest.mjs","../src/closeAndSummaryOrders.mjs","../node_modules/lodash-es/min.js","../node_modules/lodash-es/max.js","../node_modules/wsemi/src/fsCreateFolder.mjs","../src/loadKLinesTpSl.mjs","../src/buildStrategyFastSession.mjs"],"sourcesContent":null,"names":["arrayEach","array","iteratee","index","length","fromRight","baseFor$1","object","keysFunc","iterable","Object","props","key","freeGlobal$1","global","freeSelf","self","root$1","freeGlobal","Function","Symbol$1","root","Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","baseGetTag","value","isOwn","call","tag","unmasked","e","result","getRawTag","objectToString","isObjectLike","baseIsArguments","propertyIsEnumerable","isArguments","arguments","isArguments$1","isArray$1","Array","isArray","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer$1","isBuffer","reIsUint","isIndex","type","test","isLength","typedArrayTags","baseUnary","func","freeProcess","process","nodeUtil$1","types","require","binding","nodeIsTypedArray","nodeUtil","isTypedArray","isTypedArray$1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","n","baseTimes","String","push","isPrototype","Ctor","constructor","overArg","transform","arg","nativeKeys$1","keys","baseKeys","nativeKeys","isObject","isFunction","isArrayLike","baseEach","eachFunc","collection","createBaseEach","baseFor","baseEach$1","identity","forEach","head","isSymbol","reIsDeepProp","reIsPlainProp","isKey","uid","coreJsData$1","maskSrcKey","exec","coreJsData","IE_PROTO","funcToString","toSource","reIsHostCtor","funcProto","reIsNative","RegExp","replace","baseIsNative","getNative","getValue","nativeCreate$1","Hash","entries","this","clear","entry","set","eq","other","assocIndexOf","__data__","nativeCreate","size","has","get","data","splice","ListCache","pop","Map$2","getMapData","map","MapCache","hash","Map","string","memoize","resolver","TypeError","memoized","args","apply","cache","Cache","rePropName","reEscapeChar","stringToPath","charCodeAt","match","number","quote","subString","stringToPath$1","arrayMap","symbolProto","symbolToString","baseToString","castPath","toKey","baseGet","path","defaultValue","last","DataView$1","Promise$2","Set$1","WeakMap$1","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","DataView","mapCtorString","promiseCtorString","Promise","setCtorString","Set","weakMapCtorString","WeakMap","getTag","ArrayBuffer","resolve","ctorString","getTag$1","baseProperty","asciiSize$1","reHasUnicode","hasUnicode","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","stringSize","lastIndex","unicodeSize","asciiSize","Stack","pairs","LARGE_ARRAY_SIZE","SetCache","values","add","arraySome","predicate","cacheHas","equalArrays","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","Uint8Array$1","Uint8Array","mapToArray","setToArray","symbolValueOf","valueOf","arrayPush","offset","baseGetAllKeys","symbolsFunc","arrayFilter","resIndex","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols$1","symbol","getAllKeys","getSymbols","argsTag","arrayTag","objectTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","byteLength","byteOffset","buffer","name","message","convert","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","equalObjects","baseIsEqual","isStrictComparable","matchesStrictComparable","srcValue","baseMatches","source","matchData","getMatchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsMatch","baseHasIn","hasIn","hasFunc","hasPath","property","basePropertyDeep","baseIteratee","baseMatchesProperty","baseMap","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","depth","isStrict","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","baseOrderBy","iteratees","orders","comparer","sort","baseSortBy","criteria","objCriteria","othCriteria","ordersLength","compareMultiple","nativeMax","Math","max","defineProperty","defineProperty$1","baseSetToString","configurable","enumerable","writable","baseSetToString$1","nativeNow","Date","now","setToString","count","lastCalled","stamp","remaining","shortOut","setToString$1","isIterateeCall","sortBy","start","otherArgs","thisArg","overRest","baseRest","sortBy$1","baseAssignValue","assignValue","copyObject","isNew","newValue","baseKeysIn","nativeKeysIn","isProto","keysIn","allocUnsafe","getPrototype$1","getPrototypeOf","getSymbolsIn","getPrototype","getSymbolsIn$1","getAllKeysIn","cloneArrayBuffer","arrayBuffer","reFlags","initCloneByTag","isDeep","dataView","cloneDataView","typedArray","cloneTypedArray","regexp","cloneRegExp","objectCreate","create","baseCreate","proto","baseCreate$1","nodeIsMap","isMap","isMap$1","nodeIsSet","isSet","isSet$1","funcTag","cloneableTags","baseClone","isFlat","isFull","input","initCloneArray","copyArray","isFunc","slice","copy","cloneBuffer","initCloneObject","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","subValue","isarr","v","isobj","isstr","isnan","iser","isundefined","isnull","k","isobj0","isstr0","isarr0","isearr","isestr","isbol","isnum","b","isNaN","Number","isnbr","reWhitespace","reTrimStart","baseTrim","charAt","trimmedEndIndex","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","isBinary","INFINITY","toFinite","cdbl","cstr","isbigint","r","err","baseSlice","end","castSlice","baseFindIndex","fromIndex","baseIsNaN","baseIndexOf","strictIndexOf","stringToArray","unicodeToArray","split","asciiToArray","trim","chars","guard","strSymbols","chrSymbols","charsStartIndex","charsEndIndex","toInteger","remainder","drop","nativeReverse","reverse","isint","nativeIsFinite","isFinite","nativeMin","min","round","methodName","precision","pair","createRound","round$1","cint","isp0int","strright","c","i","substring","strdelleft","strdelright","strleft","opt","excludeString","isCharNum","lotrim","ss","getInputType","vs","inum","istr","iobj","each","console","log","getVirArr","ts","Error","payload","vst","bAllNum","t","lcSortByKey","CLONE_DEEP_FLAG","a","localeCompare","numeric","sortObjArr","returnIndex","rs","sortObjArrWithLocaleCompare","haskey","obj","iseobj","isfun","pmSeries","fun","pm","reject","p","genPm","useObj","_rs","reduce","pmm","then","uk","uv","catch","dig","idig","toFixed","calcOrders","async","arrOhlc","uIni","kpOhlc","kpOrders","uEquity","uCumuProfitOrLoss","o","ko","g","timeStart","mode","Low","priceStopLoss","timeEnd","priceEnd","uProfitOrLoss","uTrade","priceStart","uFee","rProfitOrLoss","rCumuProfitOrLoss","modeResult","High","priceTakeProfit","_orders","oo","calcOrdersRatio","ott","te","ds","format","de","tcs","dayHold","diff","rProfitOrLossDay","pow","baseFilter","filter","isNumber","ispnum","calcOrdersSummary","ordersAll","timeOhlcStart","timeOhlcEnd","ordersFin","ordersUnsettled","numTrade","numTradeFin","numTradeUnsettled","rWin","uDrawdownMax","rDrawdownMax","rEquivalentDrawdownMax","uEquityFinal","uCumuProfitOrLossFinal","rCumuProfitOrLossFinal","rEquivalentCumuProfitOrLossFinal","uTradeAllMax","rTradeAllMax","numTradeAllMax","rSharpe","uMax","uMaxMax","kpTrade","kpCount","uDrawdown","rDrawdown","dir","trades","uTradeAll","time","uAccm","_trades","item","_kpTrade","counts","numTradeAll","nAccm","_counts","_kpCount","abs","rTradeAll","ind","rAvgProfitOrLossDay","rStdProfitOrLossDay","rrW","rrD","rW","rD","rtW","sqrt","tStart","btDays","btYears","rCumuProfitOrLossFinalNormYear","rEquivalentCumuProfitOrLossFinalNormYear","runStrategy","strategy","funGetSeries","keyOhlc","conds","nps","st","rTakeProfit","rStopLoss","rFee","withCalcOrderProfitOrLoss","withSummary","kpTimeNum","kpArrParams","arr","param","timeEff","vall","compareKey","sortArr","vallTrans","typeTrans","inds","arrSort","kpTimeEff","kpParams","first","bTrigger","bs","cond","kcond","y","sym","th","opr","okAnd","every","bsOr","okOr","some","bLong","bShort","Close","summary","timeTest","_summary","calcSummary","runStrategies","strategies","uIniAll","sid","fsExistsCore","pah","fs","statSync","fsIsFolderCore","s","lstatSync","isFile","isSymbolicLink","fsIsFolder","getClearPathName","str","isRoot","indexOf","getFileName","fsCreateFolderCore","success","error","mkdirSync","recursive","fsWriteTextCore","fp","errTemp","fd","getPathParent","writeFileSync","fsWriteJson","inp","useFormat","j","JSON","stringify","fsIsFile","isDirectory","fsIsFileCore","fsReadJson","rj","readFileSync","fsReadTextCore","parse","fsTreeFolderCore","levelLimit","level","tree","readdirSync","stat","isFolder","basename","concat","fsTreeFolder","nodeIsRegExp","isRegExp","isRegExp$1","separator","limit","nativeJoin","getFileTrueName","u","f","h","d","l","$","M","weekdays","months","ordinal","m","z","utcOffset","floor","date","year","month","clone","ceil","w","D","ms","Q","toLowerCase","S","_","O","locale","$L","utc","$u","x","$x","$offset","$d","NaN","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","toJSON","toISOString","toUTCString","Y","extend","$i","isDayjs","en","Ls","istime","ft","ot","WDataTdprovide","fdOhlc","fdParam","kp","getTimeSeries","fpParam","fpOhlc","_getTimeSeries","vsFull","getTimeSeriesFull","getVfpsJson","vfps","getFileNameExt","vfpsOhlc","vfpsParam","kpVst","getTimeSeriesFullByTimeRange","_ts","_te","_arr","getKeysParam","getTimeSeriesByTimeRange","buildGetTimeSeriesByTimeRange","buildGetTimeValueByTimeRange","keyTime","dirname","fileURLToPath","import","genReportCore","fpOut","rd","fn","hPlot","hTable","hTimeline","hSummary","calcOrdersSummarySimple","skipSort","nWin","delta","times","cum","cumAt","findIndexFunc","find$1","baseExtremum","comparator","current","computed","baseGt","baseLt","genKLinesTpSl","tp","sl","C","Float64Array","H","L","pnl","fill","win","Int8Array","hold","up","dn","upS","dnS","settleOrderPnl","runStrategiesAndBacktest","fdTest","writeOrders","writeSummary","writeReport","wdp","fnOrders","fnSummary","fnHtml","fpHtml","closeAndSummaryOrders","ordersSubmit","ordersClose","genReport","fpOrders","find","withWriteSummary","buildKLinesTpSl","fpJson","provideData","tps","modes","bars","close","tpsl","wn","out","meta","nBars","jp","loadKLinesTpSl","ordersFromBars","entryTimes","maxExitTime","tpr","c0","uCumu","buildStrategyFastSession","serieses","kpTimeInd","kpAligned","kpFirstTouch","getFirstTouch","tpsls","evaluate","optEv","withOrders","cs","gt","isOr","bSkip","hasOr"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,236,237,238,239,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,272,274,275,276,277,278,279,287,288,289]}
|
|
1
|
+
{"version":3,"file":"w-trade-backtest.umd.js","sources":["../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/forEach.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/head.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/last.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_asciiSize.js","../node_modules/lodash-es/_hasUnicode.js","../node_modules/lodash-es/_unicodeSize.js","../node_modules/lodash-es/_stringSize.js","../node_modules/lodash-es/size.js","../node_modules/lodash-es/isString.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/lodash-es/_isFlattenable.js","../node_modules/lodash-es/_baseFlatten.js","../node_modules/lodash-es/_compareAscending.js","../node_modules/lodash-es/_baseOrderBy.js","../node_modules/lodash-es/_baseSortBy.js","../node_modules/lodash-es/_compareMultiple.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/sortBy.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/wsemi/src/isarr.mjs","../node_modules/wsemi/src/isobj.mjs","../node_modules/wsemi/src/isstr.mjs","../node_modules/wsemi/src/isnan.mjs","../node_modules/wsemi/src/iser.mjs","../node_modules/wsemi/src/isundefined.mjs","../node_modules/wsemi/src/isnull.mjs","../node_modules/wsemi/src/isobj0.mjs","../node_modules/wsemi/src/isstr0.mjs","../node_modules/wsemi/src/isarr0.mjs","../node_modules/wsemi/src/isearr.mjs","../node_modules/wsemi/src/isestr.mjs","../node_modules/wsemi/src/isbol.mjs","../node_modules/lodash-es/isBoolean.js","../node_modules/wsemi/src/isnum.mjs","../node_modules/wsemi/src/isnbr.mjs","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/wsemi/src/cdbl.mjs","../node_modules/wsemi/src/cstr.mjs","../node_modules/wsemi/src/isbigint.mjs","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/_castSlice.js","../node_modules/lodash-es/_baseFindIndex.js","../node_modules/lodash-es/_baseIsNaN.js","../node_modules/lodash-es/_baseIndexOf.js","../node_modules/lodash-es/_strictIndexOf.js","../node_modules/lodash-es/_unicodeToArray.js","../node_modules/lodash-es/_stringToArray.js","../node_modules/lodash-es/_asciiToArray.js","../node_modules/lodash-es/trim.js","../node_modules/lodash-es/_charsStartIndex.js","../node_modules/lodash-es/_charsEndIndex.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/drop.js","../node_modules/lodash-es/reverse.js","../node_modules/wsemi/src/isint.mjs","../node_modules/lodash-es/isInteger.js","../node_modules/lodash-es/_createRound.js","../node_modules/lodash-es/round.js","../node_modules/wsemi/src/cint.mjs","../node_modules/wsemi/src/isp0int.mjs","../node_modules/wsemi/src/strright.mjs","../node_modules/wsemi/src/strdelleft.mjs","../node_modules/wsemi/src/strdelright.mjs","../node_modules/wsemi/src/strleft.mjs","../node_modules/wsemi/src/trim.mjs","../node_modules/wsemi/src/arrSort.mjs","../node_modules/lodash-es/cloneDeep.js","../node_modules/wsemi/src/haskey.mjs","../node_modules/wsemi/src/iseobj.mjs","../node_modules/wsemi/src/isfun.mjs","../node_modules/wsemi/src/pmSeries.mjs","../node_modules/wsemi/src/genPm.mjs","../node_modules/wsemi/src/dig.mjs","../src/calcOrders.mjs","../src/calcOrdersRatio.mjs","../node_modules/lodash-es/_baseFilter.js","../node_modules/lodash-es/filter.js","../node_modules/lodash-es/isNumber.js","../node_modules/wsemi/src/ispnum.mjs","../src/calcOrdersSummary.mjs","../src/runStrategy.mjs","../src/calcSummary.mjs","../src/runStrategies.mjs","../node_modules/lodash-es/flatten.js","../node_modules/wsemi/src/fsExistsCore.mjs","../node_modules/wsemi/src/fsIsFolderCore.mjs","../node_modules/wsemi/src/fsIsFolder.mjs","../node_modules/wsemi/src/getClearPathName.mjs","../node_modules/wsemi/src/getFileName.mjs","../node_modules/wsemi/src/fsCreateFolderCore.mjs","../node_modules/wsemi/src/fsWriteTextCore.mjs","../node_modules/wsemi/src/getPathParent.mjs","../node_modules/wsemi/src/fsWriteJson.mjs","../node_modules/wsemi/src/fsIsFile.mjs","../node_modules/wsemi/src/fsIsFileCore.mjs","../node_modules/wsemi/src/fsReadJson.mjs","../node_modules/wsemi/src/fsReadTextCore.mjs","../node_modules/wsemi/src/fsTreeFolderCore.mjs","../node_modules/wsemi/src/ispint.mjs","../node_modules/wsemi/src/fsTreeFolder.mjs","../node_modules/lodash-es/isRegExp.js","../node_modules/lodash-es/_baseIsRegExp.js","../node_modules/lodash-es/split.js","../node_modules/lodash-es/join.js","../node_modules/wsemi/src/getFileTrueName.mjs","../node_modules/lodash-es/dropRight.js","../node_modules/dayjs/dayjs.min.js","../node_modules/wsemi/src/istime.mjs","../node_modules/w-data-tdprovide/src/WDataTdprovide.mjs","../node_modules/wsemi/src/getFileNameExt.mjs","../src/genReportCore.mjs","../node_modules/wsemi/src/fsWriteText.mjs","../src/calcOrdersSummarySimple.mjs","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/find.js","../node_modules/lodash-es/_createFind.js","../node_modules/lodash-es/_baseExtremum.js","../node_modules/lodash-es/_baseGt.js","../node_modules/lodash-es/_baseLt.js","../src/genReport.mjs","../src/genKLinesTpSl.mjs","../src/buildKLinesTpSl.mjs","../src/settleOrderPnl.mjs","../src/WTradeBacktest.mjs","../src/runStrategiesAndBacktest.mjs","../src/closeAndSummaryOrders.mjs","../node_modules/lodash-es/min.js","../node_modules/lodash-es/max.js","../node_modules/wsemi/src/fsCreateFolder.mjs","../src/loadKLinesTpSl.mjs","../src/buildStrategyFastSession.mjs"],"sourcesContent":null,"names":["arrayEach","array","iteratee","index","length","fromRight","baseFor$1","object","keysFunc","iterable","Object","props","key","freeGlobal$1","global","freeSelf","self","root$1","freeGlobal","Function","Symbol$1","root","Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","baseGetTag","value","isOwn","call","tag","unmasked","e","result","getRawTag","objectToString","isObjectLike","baseIsArguments","propertyIsEnumerable","isArguments","arguments","isArguments$1","isArray$1","Array","isArray","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer$1","isBuffer","reIsUint","isIndex","type","test","isLength","typedArrayTags","baseUnary","func","freeProcess","process","nodeUtil$1","types","require","binding","nodeIsTypedArray","nodeUtil","isTypedArray","isTypedArray$1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","n","baseTimes","String","push","isPrototype","Ctor","constructor","overArg","transform","arg","nativeKeys$1","keys","baseKeys","nativeKeys","isObject","isFunction","isArrayLike","baseEach","eachFunc","collection","createBaseEach","baseFor","baseEach$1","identity","forEach","head","isSymbol","reIsDeepProp","reIsPlainProp","isKey","uid","coreJsData$1","maskSrcKey","exec","coreJsData","IE_PROTO","funcToString","toSource","reIsHostCtor","funcProto","reIsNative","RegExp","replace","baseIsNative","getNative","getValue","nativeCreate$1","Hash","entries","this","clear","entry","set","eq","other","assocIndexOf","__data__","nativeCreate","size","has","get","data","splice","ListCache","pop","Map$2","getMapData","map","MapCache","hash","Map","string","memoize","resolver","TypeError","memoized","args","apply","cache","Cache","rePropName","reEscapeChar","stringToPath","charCodeAt","match","number","quote","subString","stringToPath$1","arrayMap","symbolProto","symbolToString","baseToString","castPath","toKey","baseGet","path","defaultValue","last","DataView$1","Promise$2","Set$1","WeakMap$1","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","DataView","mapCtorString","promiseCtorString","Promise","setCtorString","Set","weakMapCtorString","WeakMap","getTag","ArrayBuffer","resolve","ctorString","getTag$1","baseProperty","asciiSize$1","reHasUnicode","hasUnicode","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","stringSize","lastIndex","unicodeSize","asciiSize","Stack","pairs","LARGE_ARRAY_SIZE","SetCache","values","add","arraySome","predicate","cacheHas","equalArrays","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","Uint8Array$1","Uint8Array","mapToArray","setToArray","symbolValueOf","valueOf","arrayPush","offset","baseGetAllKeys","symbolsFunc","arrayFilter","resIndex","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols$1","symbol","getAllKeys","getSymbols","argsTag","arrayTag","objectTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","byteLength","byteOffset","buffer","name","message","convert","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","equalObjects","baseIsEqual","isStrictComparable","matchesStrictComparable","srcValue","baseMatches","source","matchData","getMatchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsMatch","baseHasIn","hasIn","hasFunc","hasPath","property","basePropertyDeep","baseIteratee","baseMatchesProperty","baseMap","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","depth","isStrict","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","baseOrderBy","iteratees","orders","comparer","sort","baseSortBy","criteria","objCriteria","othCriteria","ordersLength","compareMultiple","nativeMax","Math","max","defineProperty","defineProperty$1","baseSetToString","configurable","enumerable","writable","baseSetToString$1","nativeNow","Date","now","setToString","count","lastCalled","stamp","remaining","shortOut","setToString$1","isIterateeCall","sortBy","start","otherArgs","thisArg","overRest","baseRest","sortBy$1","baseAssignValue","assignValue","copyObject","isNew","newValue","baseKeysIn","nativeKeysIn","isProto","keysIn","allocUnsafe","getPrototype$1","getPrototypeOf","getSymbolsIn","getPrototype","getSymbolsIn$1","getAllKeysIn","cloneArrayBuffer","arrayBuffer","reFlags","initCloneByTag","isDeep","dataView","cloneDataView","typedArray","cloneTypedArray","regexp","cloneRegExp","objectCreate","create","baseCreate","proto","baseCreate$1","nodeIsMap","isMap","isMap$1","nodeIsSet","isSet","isSet$1","funcTag","cloneableTags","baseClone","isFlat","isFull","input","initCloneArray","copyArray","isFunc","slice","copy","cloneBuffer","initCloneObject","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","subValue","isarr","v","isobj","isstr","isnan","iser","isundefined","isnull","k","isobj0","isstr0","isarr0","isearr","isestr","isbol","isnum","b","isNaN","Number","isnbr","reWhitespace","reTrimStart","baseTrim","charAt","trimmedEndIndex","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","isBinary","INFINITY","toFinite","cdbl","cstr","isbigint","r","err","baseSlice","end","castSlice","baseFindIndex","fromIndex","baseIsNaN","baseIndexOf","strictIndexOf","stringToArray","unicodeToArray","split","asciiToArray","trim","chars","guard","strSymbols","chrSymbols","charsStartIndex","charsEndIndex","toInteger","remainder","drop","nativeReverse","reverse","isint","opt","useLimitSafe","isSafeInteger","nativeIsFinite","isFinite","nativeMin","min","round","methodName","precision","pair","createRound","round$1","cint","useClampSafe","returnWithStateAndMsg","retSuccess","state","msg","retError","Error","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","isp0int","strright","c","i","substring","strdelleft","strdelright","strleft","excludeString","isCharNum","lotrim","ss","getInputType","vs","inum","istr","iobj","each","console","log","getVirArr","ts","payload","vst","bAllNum","t","lcSortByKey","CLONE_DEEP_FLAG","a","localeCompare","numeric","sortObjArr","returnIndex","rs","sortObjArrWithLocaleCompare","haskey","obj","iseobj","isfun","pmSeries","fun","pm","reject","p","genPm","useObj","_rs","reduce","pmm","then","uk","uv","catch","dig","idig","toFixed","calcOrders","async","arrOhlc","uIni","kpOhlc","kpOrders","uEquity","uCumuProfitOrLoss","o","ko","g","timeStart","mode","Low","priceStopLoss","timeEnd","priceEnd","uProfitOrLoss","uTrade","priceStart","uFee","rProfitOrLoss","rCumuProfitOrLoss","modeResult","High","priceTakeProfit","_orders","oo","calcOrdersRatio","ott","te","ds","format","de","tcs","dayHold","diff","rProfitOrLossDay","pow","baseFilter","filter","isNumber","ispnum","calcOrdersSummary","ordersAll","timeOhlcStart","timeOhlcEnd","ordersFin","ordersUnsettled","numTrade","numTradeFin","numTradeUnsettled","rWin","uDrawdownMax","rDrawdownMax","rEquivalentDrawdownMax","uEquityFinal","uCumuProfitOrLossFinal","rCumuProfitOrLossFinal","rEquivalentCumuProfitOrLossFinal","uTradeAllMax","rTradeAllMax","numTradeAllMax","rSharpe","uMax","uMaxMax","kpTrade","kpCount","uDrawdown","rDrawdown","dir","trades","uTradeAll","time","uAccm","_trades","item","_kpTrade","counts","numTradeAll","nAccm","_counts","_kpCount","abs","rTradeAll","ind","rAvgProfitOrLossDay","rStdProfitOrLossDay","rrW","rrD","rW","rD","rtW","sqrt","tStart","btDays","btYears","rCumuProfitOrLossFinalNormYear","rEquivalentCumuProfitOrLossFinalNormYear","runStrategy","strategy","funGetSeries","keyOhlc","conds","nps","st","rTakeProfit","rStopLoss","rFee","withCalcOrderProfitOrLoss","withSummary","kpTimeNum","kpArrParams","arr","param","timeEff","vall","compareKey","sortArr","vallTrans","typeTrans","inds","arrSort","kpTimeEff","kpParams","first","bTrigger","bs","cond","kcond","y","sym","th","opr","okAnd","every","bsOr","okOr","some","bLong","bShort","Close","summary","timeTest","_summary","calcSummary","runStrategies","strategies","uIniAll","sid","fsExistsCore","pah","fs","statSync","fsIsFolderCore","s","lstatSync","isFile","isSymbolicLink","fsIsFolder","getClearPathName","str","isRoot","indexOf","getFileName","fsCreateFolderCore","success","error","mkdirSync","recursive","fsWriteTextCore","fp","errTemp","fd","getPathParent","writeFileSync","fsWriteJson","inp","useFormat","j","JSON","stringify","fsIsFile","isDirectory","fsIsFileCore","fsReadJson","rj","readFileSync","fsReadTextCore","parse","fsTreeFolderCore","levelLimit","level","ispint","tree","readdirSync","stat","isFolder","basename","concat","fsTreeFolder","nodeIsRegExp","isRegExp","isRegExp$1","separator","limit","nativeJoin","getFileTrueName","u","f","h","d","l","$","M","weekdays","months","ordinal","m","z","utcOffset","floor","date","year","month","clone","ceil","w","D","ms","Q","toLowerCase","S","_","O","locale","$L","utc","$u","x","$x","$offset","$d","NaN","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","toJSON","toISOString","toUTCString","Y","extend","$i","isDayjs","en","Ls","istime","ft","ot","WDataTdprovide","fdOhlc","fdParam","kp","getTimeSeries","fpParam","fpOhlc","_getTimeSeries","vsFull","getTimeSeriesFull","getVfpsJson","vfps","getFileNameExt","vfpsOhlc","vfpsParam","kpVst","getTimeSeriesFullByTimeRange","_ts","_te","_arr","getKeysParam","getTimeSeriesByTimeRange","buildGetTimeSeriesByTimeRange","buildGetTimeValueByTimeRange","keyTime","dirname","fileURLToPath","import","genReportCore","fpOut","rd","fn","hPlot","hTable","hTimeline","hSummary","calcOrdersSummarySimple","skipSort","nWin","delta","times","cum","cumAt","findIndexFunc","find$1","baseExtremum","comparator","current","computed","baseGt","baseLt","genKLinesTpSl","tp","sl","C","Float64Array","H","L","pnl","fill","win","Int8Array","hold","up","dn","upS","dnS","settleOrderPnl","runStrategiesAndBacktest","fdTest","writeOrders","writeSummary","writeReport","wdp","fnOrders","fnSummary","fnHtml","fpHtml","closeAndSummaryOrders","ordersSubmit","ordersClose","genReport","fpOrders","find","withWriteSummary","buildKLinesTpSl","fpJson","provideData","tps","modes","bars","close","tpsl","wn","out","meta","nBars","jp","loadKLinesTpSl","ordersFromBars","entryTimes","maxExitTime","tpr","c0","uCumu","buildStrategyFastSession","serieses","kpTimeInd","kpAligned","kpFirstTouch","getFirstTouch","tpsls","evaluate","optEv","withOrders","cs","gt","isOr","bSkip","hasOr"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,236,237,238,239,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,272,274,275,276,277,278,279,287,288,289]}
|
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
209
209
|
</footer>
|
|
210
210
|
|
|
211
211
|
<script>prettyPrint();</script>
|
|
@@ -352,7 +352,7 @@ export default buildStrategyFastSession
|
|
|
352
352
|
<br class="clear">
|
|
353
353
|
|
|
354
354
|
<footer>
|
|
355
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
355
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
356
356
|
</footer>
|
|
357
357
|
|
|
358
358
|
<script>prettyPrint();</script>
|
package/docs/calcOrders.mjs.html
CHANGED
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
269
269
|
</footer>
|
|
270
270
|
|
|
271
271
|
<script>prettyPrint();</script>
|
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
137
137
|
</footer>
|
|
138
138
|
|
|
139
139
|
<script>prettyPrint();</script>
|
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
497
497
|
</footer>
|
|
498
498
|
|
|
499
499
|
<script>prettyPrint();</script>
|
|
@@ -197,7 +197,7 @@ export default calcOrdersSummarySimple
|
|
|
197
197
|
<br class="clear">
|
|
198
198
|
|
|
199
199
|
<footer>
|
|
200
|
-
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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
201
201
|
</footer>
|
|
202
202
|
|
|
203
203
|
<script>prettyPrint();</script>
|
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
192
192
|
</footer>
|
|
193
193
|
|
|
194
194
|
<script>prettyPrint();</script>
|
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
256
256
|
</footer>
|
|
257
257
|
|
|
258
258
|
<script>prettyPrint();</script>
|
|
@@ -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 Fri Sep 18 2026 15:23:37 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
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
194
194
|
</footer>
|
|
195
195
|
|
|
196
196
|
<script>prettyPrint();</script>
|
|
@@ -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 Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
119
119
|
</footer>
|
|
120
120
|
|
|
121
121
|
<script>prettyPrint();</script>
|
package/docs/global.html
CHANGED
|
@@ -6580,7 +6580,7 @@ console.log(r.summary.numTrade, r.summary.rWin, r.summary.uEquityFinal)
|
|
|
6580
6580
|
<br class="clear">
|
|
6581
6581
|
|
|
6582
6582
|
<footer>
|
|
6583
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
6583
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
6584
6584
|
</footer>
|
|
6585
6585
|
|
|
6586
6586
|
<script>prettyPrint();</script>
|
package/docs/index.html
CHANGED
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<br class="clear">
|
|
72
72
|
|
|
73
73
|
<footer>
|
|
74
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
74
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
75
75
|
</footer>
|
|
76
76
|
|
|
77
77
|
<script>prettyPrint();</script>
|
|
@@ -175,7 +175,7 @@ export default loadKLinesTpSl
|
|
|
175
175
|
<br class="clear">
|
|
176
176
|
|
|
177
177
|
<footer>
|
|
178
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
178
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
179
179
|
</footer>
|
|
180
180
|
|
|
181
181
|
<script>prettyPrint();</script>
|
|
@@ -231,7 +231,7 @@ export default runStrategies
|
|
|
231
231
|
<br class="clear">
|
|
232
232
|
|
|
233
233
|
<footer>
|
|
234
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
234
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
235
235
|
</footer>
|
|
236
236
|
|
|
237
237
|
<script>prettyPrint();</script>
|
|
@@ -211,7 +211,7 @@ export default runStrategiesAndBacktest
|
|
|
211
211
|
<br class="clear">
|
|
212
212
|
|
|
213
213
|
<footer>
|
|
214
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
214
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
215
215
|
</footer>
|
|
216
216
|
|
|
217
217
|
<script>prettyPrint();</script>
|
|
@@ -442,7 +442,7 @@ export default runStrategy
|
|
|
442
442
|
<br class="clear">
|
|
443
443
|
|
|
444
444
|
<footer>
|
|
445
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
445
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
446
446
|
</footer>
|
|
447
447
|
|
|
448
448
|
<script>prettyPrint();</script>
|
|
@@ -87,7 +87,7 @@ export default settleOrderPnl
|
|
|
87
87
|
<br class="clear">
|
|
88
88
|
|
|
89
89
|
<footer>
|
|
90
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
90
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Fri Sep 18 2026 15:23:37 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
91
91
|
</footer>
|
|
92
92
|
|
|
93
93
|
<script>prettyPrint();</script>
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "w-trade-backtest",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.13",
|
|
4
4
|
"main": "dist/w-trade-backtest.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"w-data-tdprovide": "^1.0.
|
|
7
|
-
"wsemi": "^1.
|
|
6
|
+
"w-data-tdprovide": "^1.0.18",
|
|
7
|
+
"wsemi": "^1.9.0"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
|
-
"w-package-tools": "^1.1.
|
|
10
|
+
"w-package-tools": "^1.1.16"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
-
"test": "mocha \"test
|
|
13
|
+
"test": "mocha --parallel \"test/*.test.mjs\" --timeout 180000",
|
|
14
14
|
"deploy": "gh-pages -d docs"
|
|
15
15
|
},
|
|
16
16
|
"repository": {
|