{"version":3,"sources":["jsdelivr-header.js","/npm/@debut/plugin-grid@1.5.12/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;AACA;AACA","file":"/npm/@debut/plugin-grid@1.5.12/dist/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/@debut/plugin-grid@1.5.12/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import t from\"/npm/@debut/plugin-utils@2.0.1/+esm\";var e={};Object.defineProperty(e,\"__esModule\",{value:!0});var i=e.gridPlugin=void 0;const s=t;i=e.gridPlugin=function(t){let e,i,o,n,d,a,u=!1,l=0,p=t.takeProfit;return t.stopLoss||(t.stopLoss=1/0),t.levelsCount||(t.levelsCount=6),{name:\"grid\",api:{createGrid:(i,s)=>(e=new r(i,t,s),p=t.takeProfit,o=n.debut.opts.amount*(n.debut.opts.equityLevel||1),e),getGrid:()=>e,disposeGrid(){e=null}},onInit(){if(n=this,i=this.debut.opts.lotsMultiplier||1,d=(this.debut.opts.fee||.02)/100,t.trailing){if(a=this.findPlugin(\"takes\"),!a)throw new Error(\"@debut/plugin-virtual-takes is required for trailing\");if(!t.trailingDistance)throw new Error(\"@debut/plugin-grid trailing option requires trailingDistance parameter\");a.api.updateUpts({trailing:t.trailing,manual:!0})}},async onOpen(i){e?l=Date.now():(e=new r(i.price,t,t.trend?void 0:i.type),o=n.debut.opts.amount*(n.debut.opts.equityLevel||1),p=t.takeProfit)},async onClose(){0===this.debut.ordersCount&&(this.debut.opts.lotsMultiplier=i,e=null,u=!1,p=t.takeProfit)},async onCandle(){e&&t.reduceTakeOnTime&&(p-=t.reduceTakeOnTime)},async onTick(i){if(u)return;if(this.debut.ordersCount){const e=s.orders.getCurrencyBatchComissions(this.debut.orders,i.c,d),r=(s.orders.getCurrencyBatchProfit(this.debut.orders,i.c)-e)/o*100;if(r<=-t.stopLoss)return void await this.debut.closeAll(!t.trend&&t.collapse&&this.debut.ordersCount>1);if(r>=p){if(t.reduceEquity&&(this.debut.opts.equityLevel||(this.debut.opts.equityLevel=1),this.debut.opts.equityLevel*=.97,this.debut.opts.equityLevel<.002&&(console.log(this.debut.getName(),\"Grid Disposed\",(new Date).toLocaleDateString()),this.debut.dispose())),t.trailing&&this.debut.ordersCount>1){const e=this.debut.orders[this.debut.orders.length-1];await this.debut.closeAll(!t.trend,(t=>t!==e));const s=\"BUY\"===e.type?1:-1,r=i.c*(1+t.trailingDistance/100*s),o=i.c*(1-t.trailingDistance/100*s);a.api.setTrailingForOrder(e.cid,r,o),t.trailingAndReduce&&await this.debut.reduceOrder(e,.5),u=!0}else await this.debut.closeAll(!t.trend&&t.collapse);return}}const r=n.debut.learning||!t.timePause||Date.now()-l>t.timePause;if(e&&r){if((!e.nextUpIdx||t.trend)&&i.c<=e.getNextLow()?.price){e.activateLow();const i=t.martingale**e.nextLowIdx;this.debut.opts.lotsMultiplier=i,await this.debut.createOrder(t.trend?\"SELL\":\"BUY\")}if((!e?.nextLowIdx||t.trend)&&i.c>=e.getNextUp()?.price){e.activateUp();const i=t.martingale**e.nextUpIdx;this.debut.opts.lotsMultiplier=i,await this.debut.createOrder(t.trend?\"BUY\":\"SELL\")}}}}};class r{constructor(t,e,i){this.nextUpIdx=0,this.nextLowIdx=0,this.upLevels=[],this.lowLevels=[],this.paused=!1;let s=t*(e.step/100),r=t,o=t;for(let n=1;n<=e.levelsCount;n++){let d,a;e.fibo?(r+=s,o-=s,d={price:r,activated:!1},a={price:o,activated:!1},s*=e.fibo):(d={price:t+s*n,activated:!1},a={price:t-s*n,activated:!1}),i?\"BUY\"===i?this.lowLevels.push(a):this.upLevels.push(d):(this.upLevels.push(d),this.lowLevels.push(a))}}activateUp(){const t=this.upLevels[this.nextUpIdx];t&&(t.activated=!0),this.nextUpIdx++}activateLow(){const t=this.lowLevels[this.nextLowIdx];t&&(t.activated=!0),this.nextLowIdx++}getNextUp(){return this.upLevels[this.nextUpIdx]}getNextLow(){return this.lowLevels[this.nextLowIdx]}}var o=e.__esModule;export{o as __esModule,e as default,i as gridPlugin};\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwbHVnaW5fdXRpbHNfMSIsInJlcXVpcmUkJDAiLCJncmlkUGx1Z2luXzEiLCJkaXN0IiwiZ3JpZFBsdWdpbiIsIm9wdHMiLCJncmlkIiwic3RhcnRNdWx0aXBsaWVyIiwiYW1vdW50IiwiY3R4IiwiZmVlIiwidGFrZXNQbHVnaW4iLCJ0cmFpbGluZ1NldHRlZCIsImxhc3RPcGVuaW5nVGltZSIsInRha2VQcm9maXQiLCJzdG9wTG9zcyIsIkluZmluaXR5IiwibGV2ZWxzQ291bnQiLCJuYW1lIiwiYXBpIiwiY3JlYXRlR3JpZCIsInByaWNlIiwidHlwZSIsIkdyaWRDbGFzcyIsImRlYnV0IiwiZXF1aXR5TGV2ZWwiLCJnZXRHcmlkIiwiZGlzcG9zZUdyaWQiLCJvbkluaXQiLCJ0aGlzIiwibG90c011bHRpcGxpZXIiLCJ0cmFpbGluZyIsImZpbmRQbHVnaW4iLCJFcnJvciIsInRyYWlsaW5nRGlzdGFuY2UiLCJ1cGRhdGVVcHRzIiwibWFudWFsIiwib25PcGVuIiwib3JkZXIiLCJEYXRlIiwibm93IiwidHJlbmQiLCJ1bmRlZmluZWQiLCJvbkNsb3NlIiwib3JkZXJzQ291bnQiLCJvbkNhbmRsZSIsInJlZHVjZVRha2VPblRpbWUiLCJvblRpY2siLCJ0aWNrIiwiY2xvc2luZ0NvbWlzc2lvbiIsIm9yZGVycyIsImdldEN1cnJlbmN5QmF0Y2hDb21pc3Npb25zIiwiYyIsInBlcmNlbnRQcm9maXQiLCJnZXRDdXJyZW5jeUJhdGNoUHJvZml0IiwiY2xvc2VBbGwiLCJjb2xsYXBzZSIsInJlZHVjZUVxdWl0eSIsImNvbnNvbGUiLCJsb2ciLCJnZXROYW1lIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiZGlzcG9zZSIsImxhc3RPcmRlciIsImxlbmd0aCIsInJldiIsInRha2UiLCJzdG9wIiwic2V0VHJhaWxpbmdGb3JPcmRlciIsImNpZCIsInRyYWlsaW5nQW5kUmVkdWNlIiwicmVkdWNlT3JkZXIiLCJjYW5UcmFkZSIsImxlYXJuaW5nIiwidGltZVBhdXNlIiwibmV4dFVwSWR4IiwiZ2V0TmV4dExvdyIsImFjdGl2YXRlTG93IiwibG90c011bHRpIiwibWFydGluZ2FsZSIsIm5leHRMb3dJZHgiLCJjcmVhdGVPcmRlciIsImdldE5leHRVcCIsImFjdGl2YXRlVXAiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJ1cExldmVscyIsImxvd0xldmVscyIsInBhdXNlZCIsInN0ZXAiLCJmUHJldlVwIiwiZlByZXZMb3ciLCJpIiwidXBMZXZlbCIsImxvd0xldmVsIiwiZmlibyIsImFjdGl2YXRlZCIsInB1c2giXSwic291cmNlcyI6WyIvbnBtL0BkZWJ1dC9wbHVnaW4tZ3JpZEAxLjUuMTIvaW5kZXgudHMiXSwibWFwcGluZ3MiOiJ1SUFDQSxNQUE2Q0EsRUFBQUMsRUFvQzdDQyxFQW1MQ0MsRUFBQUMsV0FuTEQsU0FBMkJDLEdBQ3ZCLElBQUlDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEdBQWlCLEVBQ2pCQyxFQUFrQixFQUNsQkMsRUFBYVQsRUFBS1MsV0FVdEIsT0FSS1QsRUFBS1UsV0FDTlYsRUFBS1UsU0FBV0MsS0FHZlgsRUFBS1ksY0FDTlosRUFBS1ksWUFBYyxHQUdoQixDQUNIQyxLQUFNLE9BRU5DLElBQUssQ0FJREMsV0FBVSxDQUFDQyxFQUFlQyxLQUN0QmhCLEVBQU8sSUFBSWlCLEVBQVVGLEVBQU9oQixFQUFNaUIsR0FDbENSLEVBQWFULEVBQUtTLFdBRWxCTixFQUFTQyxFQUFJZSxNQUFNbkIsS0FBS0csUUFBVUMsRUFBSWUsTUFBTW5CLEtBQUtvQixhQUFlLEdBQ3pEbkIsR0FNWG9CLFFBQU8sSUFDSXBCLEVBTVgsV0FBQXFCLEdBQ0lyQixFQUFPLEksR0FHZixNQUFBc0IsR0FLSSxHQUpBbkIsRUFBTW9CLEtBQ050QixFQUFrQnNCLEtBQUtMLE1BQU1uQixLQUFLeUIsZ0JBQWtCLEVBQ3BEcEIsR0FBT21CLEtBQUtMLE1BQU1uQixLQUFLSyxLQUFPLEtBQVEsSUFFbENMLEVBQUswQixTQUFVLENBR2YsR0FGQXBCLEVBQWNrQixL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"]}