openalgo-charts 2.3.2 → 2.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -39
- package/dist/draw/index.d.ts +18 -2
- package/dist/index.d.ts +2541 -1758
- package/dist/indicators/index.d.ts +103 -8
- package/dist/openalgo-charts.draw.mjs +1 -1
- package/dist/openalgo-charts.draw.mjs.map +1 -1
- package/dist/openalgo-charts.indicators.mjs +1 -1
- package/dist/openalgo-charts.indicators.mjs.map +1 -1
- package/dist/openalgo-charts.mjs +1 -1
- package/dist/openalgo-charts.mjs.map +1 -1
- package/dist/openalgo-charts.standalone.js +1 -1
- package/dist/openalgo-charts.standalone.js.map +1 -1
- package/dist/openalgo-charts.trade.mjs +1 -1
- package/dist/openalgo-charts.trade.mjs.map +1 -1
- package/dist/openalgo-charts.transform.mjs +1 -1
- package/dist/openalgo-charts.transform.mjs.map +1 -1
- package/dist/openalgo-charts.webgl.mjs +1 -1
- package/dist/openalgo-charts.webgl.mjs.map +1 -1
- package/dist/openalgo-charts.widget.mjs +1 -1
- package/dist/openalgo-charts.widget.mjs.map +1 -1
- package/dist/openalgo-charts.workspace.mjs +2 -0
- package/dist/openalgo-charts.workspace.mjs.map +1 -0
- package/dist/profile/index.d.ts +31 -0
- package/dist/trade/index.d.ts +15 -4
- package/dist/transform/index.d.ts +41 -2
- package/dist/webgl/index.d.ts +39 -0
- package/dist/widget/index.d.ts +96 -8
- package/dist/workspace/index.d.ts +170 -0
- package/package.json +8 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e){return"pending"===e.status||"working"===e.status||"partial"===e.status}function t(e,t){return(t-e.avgPrice)*e.netQty}function r(e,t){if(0===e.avgPrice||0===e.netQty)return 0;const r=e.netQty>0?1:-1;return(t-e.avgPrice)/e.avgPrice*100*r}function i(e,t=0){if(0===e.netQty)return e.avgPrice;const r=e.netQty>0?1:-1;return e.avgPrice+r*t}function s(e,t,r){const i=Math.abs(e-t);return 0===i?null:Math.abs(r-e)/i}function o(e,t,r,i){return"BUY"===e?r<t&&i>t:r>t&&i<t}function n(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const[t,r,i,s]=[...e].map(e=>parseInt(e+e,16));return[t,r,i].some(Number.isNaN)?null:{r:t,g:r,b:i,a:4===e.length?s/255:1}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,6),16);if(Number.isNaN(t))return null;const r=8===e.length?parseInt(e.slice(6,8),16)/255:1;return{r:t>>16&255,g:t>>8&255,b:255&t,a:Number.isNaN(r)?1:r}}return null}const r=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);return null===r?null:{r:Number(r[1]),g:Number(r[2]),b:Number(r[3]),a:void 0===r[4]?1:Number(r[4])}}function a(e){return function(e){const t=n(e);if(null===t)return.5;const r=e=>{const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)};return.2126*r(t.r)+.7152*r(t.g)+.0722*r(t.b)}(e)>.45?"#10131a":"#ffffff"}function l(e,t){const r=n(e);return null===r?e:`rgba(${r.r},${r.g},${r.b},${t})`}function c(e,t){const r=n(e);if(null===r)return e;const i=t>=0?255:0,s=Math.min(1,Math.abs(t)),o=e=>Math.round(e+(i-e)*s);return`rgba(${o(r.r)},${o(r.g)},${o(r.b)},${r.a})`}function d(e,t,r,i,s,o){const n=e.roundRect;"function"==typeof n?n.call(e,t,r,i,s,Math.max(0,Math.min(o,i/2,s/2))):e.rect(t,r,i,s)}function h(e,t,r,i,s,o,n){const a=e.measureText(i).width+2*o;return e.beginPath(),d(e,t,r-s/2,a,s,n.radius),void 0!==n.backplate&&(e.fillStyle=n.backplate,e.fill()),e.fillStyle=n.fill,e.fill(),void 0!==n.border&&(e.strokeStyle=n.border,e.lineWidth=1,e.stroke()),e.fillStyle=n.text,e.textAlign="left",e.textBaseline="middle",e.fillText(i,t+o,r),a}function u(e,t,r,i,s){const{height:o,padX:n,radius:a,gap:l,dpr:c}=s,h=i.map(t=>!0===t.close?20*c:e.measureText(t.text??"").width+2*n),u=h.reduce((e,t)=>e+t,0)+l*Math.max(0,i.length-1);void 0!==s.backplate&&(e.beginPath(),d(e,t,r-o/2,u,o,a),e.fillStyle=s.backplate,e.fill());let p=Number.POSITIVE_INFINITY,f=t;for(let t=0;t<i.length;t++){const s=i[t],u=h[t];if(e.beginPath(),d(e,f,r-o/2,u,o,a),e.fillStyle=s.fill,e.fill(),void 0!==s.border&&(e.strokeStyle=s.border,e.lineWidth=Math.max(1,Math.round(c)),e.stroke()),!0===s.close){p=f,e.strokeStyle=s.textColor,e.lineWidth=Math.max(1,Math.round(1.4*c));const t=f+u/2,i=3.5*c;e.beginPath(),e.moveTo(t-i,r-i),e.lineTo(t+i,r+i),e.moveTo(t+i,r-i),e.lineTo(t-i,r+i),e.stroke()}else e.fillStyle=s.textColor,e.textAlign="left",e.textBaseline="middle",e.fillText(s.text??"",f+n,r);f+=u+l}return{x0:t/c,x1:(f-l)/c,closeX0:p/c}}class p{constructor(e,t={}){Object.defineProperty(this,"_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_group",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_extent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ghost",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._order=e,this._extent=Math.max(.1,Math.min(1,t.extentFromRight??.5))}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}get order(){return this._order}update(e){this._order=e,this._host?.requestUpdate()}setLtp(e){this._ltp=e,this._host?.requestUpdate()}autoscaleInfo(){const e=this._order.triggerPrice??this._order.price;return{min:e,max:e}}_price(){return this._order.triggerPrice??this._order.price}draw(e,t){this._group=null;const r=this._price(),i=t.dpr,s=Math.round(t.priceScale.priceToY(r)*i)+.5;if(s<0||s>t.plotHeight*i)return;const o="BUY"===this._order.side?t.theme.buy:t.theme.sell,n=t.hoverId===`order:${this._order.id}`||t.hoverId===`order:${this._order.id}::close`||t.dragId===`order:${this._order.id}`,d="pending"===this._order.status,h=d?l(o,.55):n?c(o,.1):o,p=Math.round(t.plotWidth*i),f=Math.round(t.plotWidth*(1-this._extent)*i),b=t.dragId===`order:${this._order.id}`;if(b&&null===this._ghost?this._ghost=r:b||null===this._ghost||(this._ghost=null),e.save(),null!==this._ghost&&Math.abs(this._ghost-r)>1e-9){const r=Math.round(t.priceScale.priceToY(this._ghost)*i)+.5;r>=0&&r<=t.plotHeight*i&&(e.strokeStyle=l(o,.35),e.lineWidth=Math.max(1,Math.round(i)),e.setLineDash([2*i,3*i]),e.beginPath(),e.moveTo(f,r),e.lineTo(p,r),e.stroke(),e.setLineDash([]))}b&&(e.strokeStyle=l(o,.18),e.lineWidth=5*i,e.beginPath(),e.moveTo(f,s),e.lineTo(p,s),e.stroke()),e.strokeStyle=h;const _=Math.max(1,Math.round(i));e.lineWidth=n?_+Math.round(i):_,e.setLineDash([6*i,4*i]),e.beginPath(),e.moveTo(f,s),e.lineTo(p,s),e.stroke(),e.setLineDash([]),e.font=`500 ${11*i}px system-ui, sans-serif`,e.textBaseline="middle",e.textAlign="left";const g=18*i,m=6*i,y=3*i,v=t.priceScale.format(r);e.fillStyle=d?l(o,.7):o,e.fillRect(p+1,s-g/2,e.measureText(v).width+2*m,g),e.fillStyle=a(o),e.fillText(v,p+1+m,s);const k="transparent"===t.theme.background?l(o,.14):t.theme.background,M="transparent"===t.theme.background?t.theme.axisText:a(t.theme.background),x=l(t.theme.axisText,n?.75:.5),w=t.hoverId===`order:${this._order.id}::close`;d&&(e.globalAlpha=.75);const P=this._order.filledQty>0?`${this._order.filledQty}/${this._order.qty}`:String(this._order.qty-this._order.filledQty);let O=`${this._order.type} ${v}`;if(!Number.isNaN(this._ltp)){const e=r-this._ltp;O+=` ${e>=0?"+":""}${t.priceScale.format(e)}`}this._group=u(e,f,s,[{text:this._order.side,fill:n?c(o,.12):o,textColor:a(o),border:c(o,-.25)},{text:P,fill:k,textColor:M,border:x},{text:O,fill:k,textColor:M,border:x},{close:!0,fill:w?o:k,textColor:w?a(o):M,border:w?o:x}],{height:g,padX:m,radius:y,gap:2*i,backplate:"transparent"===t.theme.background?void 0:t.theme.background,dpr:i}),e.restore()}hitTest(e,t,r){if(e<0||e>r.plotWidth)return null;const i=r.priceScale.priceToY(this._price()),s=Math.abs(t-i),o=this._group;return null!==o&&s<=10&&e>=o.x0&&e<=o.x1?e>=o.closeX0?{externalId:`order:${this._order.id}::close`,zOrder:"normal",distance:s,cursor:"pointer"}:{externalId:`order:${this._order.id}`,zOrder:"normal",distance:s,cursor:"ns-resize"}:s>4||e<r.plotWidth*(1-this._extent)-8?null:{externalId:`order:${this._order.id}`,zOrder:"normal",distance:s,cursor:"ns-resize"}}}class f{constructor(e,t={}){Object.defineProperty(this,"_position",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_group",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_extent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._position=e,this._extent=Math.max(.1,Math.min(1,t.extentFromRight??.5))}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}get position(){return this._position}update(e){this._position=e,this._host?.requestUpdate()}setLtp(e){this._ltp=e,this._host?.requestUpdate()}autoscaleInfo(){return{min:this._position.avgPrice,max:this._position.avgPrice}}draw(e,i){if(this._group=null,0===this._position.netQty)return;const s=i.dpr,o=Math.round(i.priceScale.priceToY(this._position.avgPrice)*s)+.5;if(o<0||o>i.plotHeight*s)return;const n=Math.round(i.plotWidth*s),d=Number.isNaN(this._ltp)?0:t(this._position,this._ltp),h=d>=0?i.theme.profit:i.theme.loss,p=this._position.netQty>0,f=p?i.theme.buy:i.theme.sell,b=`position:${this._position.symbol}`,_=i.hoverId===b||i.hoverId===`${b}::close`,g=Math.round(i.plotWidth*(1-this._extent)*s);if(e.save(),e.strokeStyle=_?f:i.theme.axisText,e.lineWidth=Math.max(1,Math.round(s))+(_?Math.round(s):0),e.beginPath(),e.moveTo(g,o),e.lineTo(n,o),e.stroke(),!Number.isNaN(this._ltp)){const t=Math.round(i.priceScale.priceToY(this._ltp)*s);e.fillStyle=l(h,.1),e.fillRect(g,Math.min(o,t),n-g,Math.abs(t-o))}e.font=`500 ${11*s}px system-ui, sans-serif`,e.textBaseline="middle",e.textAlign="left";const m=18*s,y=6*s,v=3*s,k=i.priceScale.format(this._position.avgPrice);e.fillStyle=h,e.fillRect(n+1,o-m/2,e.measureText(k).width+2*y,m),e.fillStyle=a(h),e.fillText(k,n+1+y,o);const M="transparent"===i.theme.background?l(f,.14):i.theme.background,x="transparent"===i.theme.background?i.theme.axisText:a(i.theme.background),w=l(i.theme.axisText,_?.75:.5),P=i.hoverId===`${b}::close`,O=Number.isNaN(this._ltp)?0:r(this._position,this._ltp),S=p?"LONG":"SHORT",T=String(Math.abs(this._position.netQty)),I=`${d>=0?"+":""}${d.toFixed(2)} (${O>=0?"+":""}${O.toFixed(2)}%)`;this._group=u(e,g,o,[{text:S,fill:_?c(f,.12):f,textColor:a(f),border:c(f,-.25)},{text:T,fill:M,textColor:x,border:w},{text:I,fill:M,textColor:h,border:l(h,.65)},{close:!0,fill:P?f:M,textColor:P?a(f):x,border:P?f:w}],{height:m,padX:y,radius:v,gap:2*s,backplate:"transparent"===i.theme.background?void 0:i.theme.background,dpr:s}),e.restore()}hitTest(e,t,r){if(0===this._position.netQty||e<0||e>r.plotWidth)return null;const i=r.priceScale.priceToY(this._position.avgPrice),s=Math.abs(t-i),o=`position:${this._position.symbol}`,n=this._group;return null!==n&&s<=10&&e>=n.x0&&e<=n.x1?e>=n.closeX0?{externalId:`${o}::close`,zOrder:"normal",distance:s,cursor:"pointer"}:{externalId:o,zOrder:"normal",distance:s,cursor:"pointer"}:s>4||e<r.plotWidth*(1-this._extent)-8?null:{externalId:o,zOrder:"normal",distance:s,cursor:"pointer"}}}class b{constructor(e){Object.defineProperty(this,"_state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._state=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"bottom"}get state(){return this._state}update(e){this._state=e,this._host?.requestUpdate()}autoscaleInfo(){return{min:Math.min(this._state.stop,this._state.target,this._state.entry),max:Math.max(this._state.stop,this._state.target,this._state.entry)}}draw(e,t){const{entry:r,stop:i,target:o}=this._state,n=t.dpr,a=Math.round(t.plotWidth*n),c=t.priceScale.priceToY(r)*n,d=t.priceScale.priceToY(i)*n,u=t.priceScale.priceToY(o)*n;e.save(),e.fillStyle=l(t.theme.loss,.09),e.fillRect(0,Math.min(c,d),a,Math.abs(d-c)),e.fillStyle=l(t.theme.profit,.09),e.fillRect(0,Math.min(c,u),a,Math.abs(u-c)),e.font=`500 ${10*n}px system-ui, sans-serif`,e.textBaseline="middle";for(const[r,s,c,p,f]of[[d,t.theme.loss,"SL",i,`bracket-sl:${this._state.symbol}`],[u,t.theme.profit,"TP",o,`bracket-tp:${this._state.symbol}`]]){const i=Math.round(r)+.5,o=t.hoverId===f||t.dragId===f;e.strokeStyle=s;const d=Math.max(1,Math.round(n));e.lineWidth=o?d+Math.round(n):d,e.setLineDash([4*n,4*n]),e.beginPath(),e.moveTo(0,i),e.lineTo(a,i),e.stroke(),e.setLineDash([]),h(e,4*n,i,`${c} ${t.priceScale.format(p)}`,16*n,6*n,{fill:l(s,o?.28:.16),text:s,border:l(s,.55),radius:3*n,backplate:"transparent"===t.theme.background?void 0:t.theme.background})}const p=s(r,i,o);null!==p&&h(e,4*n,Math.round(c)-12*n,`R:R ${p.toFixed(2)}`,16*n,6*n,{fill:l(t.theme.axisText,.16),text:t.theme.axisText,radius:3*n,backplate:"transparent"===t.theme.background?void 0:t.theme.background}),e.restore()}hitTest(e,t,r){if(e<0||e>r.plotWidth)return null;const i=r.priceScale.priceToY(this._state.stop),s=r.priceScale.priceToY(this._state.target),o=Math.abs(t-i),n=Math.abs(t-s);return o<=4?{externalId:`bracket-sl:${this._state.symbol}`,zOrder:"bottom",distance:o,cursor:"ns-resize"}:n<=4?{externalId:`bracket-tp:${this._state.symbol}`,zOrder:"bottom",distance:n,cursor:"ns-resize"}:null}}class _{constructor(e){Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_orderLines",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_markers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_brackets",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this._host=e}reconcile(e,t){const r=this._planBrackets(e,t);this._reconcileOrderLines(e,r.covered),this._reconcilePositions(t),this._applyBrackets(r.states)}_reconcileOrderLines(t,r){const i=new Set;for(const s of t){if(!e(s)||r.has(s.id))continue;i.add(s.id);const t=this._orderLines.get(s.id);if(t)t.update(s);else{const e=new p(s),t=this._ltp.get(s.symbol);void 0!==t&&e.setLtp(t),this._orderLines.set(s.id,e),this._host.addPrimitive(e)}}for(const[e,t]of this._orderLines)i.has(e)||(this._host.removePrimitive(t),this._orderLines.delete(e))}_reconcilePositions(e){const t=new Set;for(const r of e){if(0===r.netQty)continue;t.add(r.symbol);const e=this._markers.get(r.symbol);if(e)e.update(r);else{const e=new f(r),t=this._ltp.get(r.symbol);void 0!==t&&e.setLtp(t),this._markers.set(r.symbol,e),this._host.addPrimitive(e)}}for(const[e,r]of this._markers)t.has(e)||(this._host.removePrimitive(r),this._markers.delete(e))}_planBrackets(t,r){const i=new Map,s=new Map;for(const r of t)e(r)&&("sl"===r.role?i.set(r.symbol,r):"tp"===r.role&&s.set(r.symbol,r));const o=new Map(r.map(e=>[e.symbol,e])),n=new Map,a=new Set;for(const e of new Set([...i.keys(),...s.keys()])){const t=i.get(e),r=s.get(e);if(void 0===t||void 0===r)continue;const l=o.get(e);void 0!==l&&0!==l.netQty&&(n.set(e,{symbol:e,side:l.netQty>0?"BUY":"SELL",entry:l.avgPrice,stop:t.triggerPrice??t.price,target:r.price}),a.add(t.id),a.add(r.id))}return{states:n,covered:a}}_applyBrackets(e){for(const[t,r]of e){const e=this._brackets.get(t);if(e)e.update(r);else{const e=new b(r);this._brackets.set(t,e),this._host.addPrimitive(e)}}for(const[t,r]of this._brackets)e.has(t)||(this._host.removePrimitive(r),this._brackets.delete(t))}onLtp(e,t){this._ltp.set(e,t);for(const r of this._orderLines.values())r.order.symbol===e&&r.setLtp(t);const r=this._markers.get(e);r&&r.setLtp(t)}orderLineCount(){return this._orderLines.size}positionCount(){return this._markers.size}bracketCount(){return this._brackets.size}}class g{constructor(){Object.defineProperty(this,"_orders",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_bookListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_ltpListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_depthListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_idCounter",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"rejectNextPlace",{enumerable:!0,configurable:!0,writable:!0,value:null})}onBook(e){this._bookListeners.push(e)}onLtp(e){this._ltpListeners.push(e)}setBook(e,t){this._orders=e.map(e=>({...e})),this._positions=t.map(e=>({...e}));for(const e of this._bookListeners)e(this._orders,this._positions)}emitLtp(e,t){for(const r of this._ltpListeners)r(e,t)}onDepth(e){this._depthListeners.push(e)}emitDepth(e,t){for(const r of this._depthListeners)r(e,t)}static makeDepth(e,t,r=.05){const i=[],s=[];for(let o=1;o<=t;o++)i.push({price:e-o*r,qty:100+37*o%900}),s.push({price:e+o*r,qty:100+53*o%900});return{bids:i,asks:s,ltp:e}}orders(){return this._orders}positions(){return this._positions}async place(e){if(null!==this.rejectNextPlace){const e=this.rejectNextPlace;throw this.rejectNextPlace=null,new Error(e)}const t="B"+ ++this._idCounter;return this._orders.push({id:t,symbol:e.symbol,side:e.side,type:e.type,qty:e.qty,filledQty:0,price:e.price??0,triggerPrice:e.triggerPrice,status:"MARKET"===e.type?"filled":"working",role:void 0}),this._notify(),{orderId:t}}async modify(e,t){const r=this._orders.find(t=>t.id===e);if(void 0===r)throw new Error("unknown order");void 0!==t.price&&(r.price=t.price),void 0!==t.triggerPrice&&(r.triggerPrice=t.triggerPrice),void 0!==t.qty&&(r.qty=t.qty),this._notify()}async cancel(e){this._orders=this._orders.filter(t=>t.id!==e),this._notify()}fill(e){const t=this._orders.find(t=>t.id===e);void 0!==t&&(t.filledQty=t.qty,t.status="filled",this._orders=this._orders.filter(t=>t.id!==e),this._notify())}_notify(){for(const e of this._bookListeners)e(this._orders,this._positions)}}const m=new Set(["filled","cancelled","rejected","stale"]);function y(e){return m.has(e)}const v={pending_place:{ack:"working",partialFill:"partial",fill:"filled",reject:"rejected",reconnectAbsent:"stale"},working:{partialFill:"partial",fill:"filled",reject:"rejected",submitModify:"modify_pending",submitCancel:"cancel_pending",cancelled:"cancelled",reconnectAbsent:"stale"},partial:{partialFill:"partial",fill:"filled",reject:"rejected",submitModify:"modify_pending",submitCancel:"cancel_pending",cancelled:"cancelled",reconnectAbsent:"stale"},modify_pending:{ack:"working",reject:"working",fill:"filled",partialFill:"partial",cancelled:"cancelled",reconnectAbsent:"stale"},cancel_pending:{cancelled:"cancelled",reject:"working",fill:"filled",reconnectAbsent:"stale"},filled:{},cancelled:{},rejected:{},stale:{}};function k(e,t){return void 0!==v[e][t]}function M(e,t){return v[e][t]??e}function x(e,t){return e>=t.lower&&e<=t.upper}function w(e,t){if(!Number.isFinite(e))return{ok:!1,code:"QTY_INVALID",reason:"quantity must be a finite number"};if(e<=0)return{ok:!1,code:"QTY_INVALID",reason:"quantity must be positive"};const r=t.lotSize??(!0===t.allowFractionalQty?void 0:1);return void 0!==r&&function(e,t){if(!Number.isFinite(t)||t<=0)return!1;const r=e/t;return Math.abs(r-Math.round(r))>1e-6*Math.max(1,Math.abs(r))}(e,r)?{ok:!1,code:"QTY_STEP",reason:void 0!==t.lotSize?`quantity ${e} is not a multiple of lot size ${t.lotSize}`:`quantity ${e} must be a whole number`}:void 0!==t.freezeQty&&e>t.freezeQty?{ok:!1,code:"QTY_FREEZE_LIMIT",reason:`quantity ${e} exceeds freeze limit ${t.freezeQty}`}:{ok:!0}}function P(e,t){if(!Number.isFinite(e))return{ok:!1,code:"PRICE_INVALID",reason:"price must be a finite number"};const r=(i=e,(s=t.tickSize)<=0?i:Math.round(i/s)*s);var i,s;return t.priceBand&&!x(r,t.priceBand)?{ok:!1,code:"PRICE_OUT_OF_BAND",reason:`price ${r} outside band ${t.priceBand.lower} to ${t.priceBand.upper}`}:{ok:!0,price:r}}function O(e,t,r){const i=w(t,r);return i.ok?void 0===e?{ok:!0}:P(e,r):i}function S(e){return"object"==typeof e&&null!==e&&!0===e.preflight}const T={pending:void 0,working:"ack",partial:"partialFill",filled:"fill",cancelled:"cancelled",rejected:"reject"},I=new Set(["filled","cancelled","rejected"]);class j{constructor(e){Object.defineProperty(this,"_feed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_constraints",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_mode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_armed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_gate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_minModifyMs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_now",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_idGen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_onValidationError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_maxSettled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_orders",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_byBroker",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_sentTokens",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_lastModifyAt",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_pendingModify",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_settledIds",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_counter",{enumerable:!0,configurable:!0,writable:!0,value:0}),this._feed=e.feed,this._constraints=e.constraints,this._mode=e.mode??"live",this._armed=e.armed??!1,this._gate=e.gate,this._minModifyMs=e.minModifyIntervalMs??150,this._now=e.now??(()=>"undefined"!=typeof performance?performance.now():0),this._idGen=e.idGen??(()=>"c"+ ++this._counter),this._onValidationError=e.onValidationError,this._maxSettled=Math.max(0,e.maxSettledOrders??500)}get mode(){return this._mode}state(e){return this._orders.get(e)?.state}intentState(e){return this._orders.get(e)?.intent}brokerStatus(e){return this._orders.get(e)?.brokerStatus}async placeOrder(e){const t=O(e.price,e.qty,this._constraints);if(!t.ok)return{ok:!1,reason:t.reason,intent:"BLOCKED"};const r=void 0===e.price?void 0:t.price;let i=e.triggerPrice;if(void 0!==e.triggerPrice){const t=O(e.triggerPrice,e.qty,this._constraints);if(!t.ok)return{ok:!1,reason:`trigger: ${t.reason}`,intent:"BLOCKED"};i=t.price}const s=e.clientToken??this._idGen();if(this._sentTokens.has(s)){const e=this._orders.get(s);return{ok:!1,reason:"AMBIGUOUS"===e?.intent?"duplicate clientToken: the first attempt was never confirmed and may be live":"duplicate clientToken (idempotent skip)",clientId:s,state:e?.state,intent:e?.intent}}if(this._sentTokens.add(s),!this._armed){let t=!1;try{t=await(this._gate?this._gate(e):Promise.resolve(!1))}catch(e){throw this._sentTokens.delete(s),e}if(!t)return this._sentTokens.delete(s),{ok:!1,reason:"not confirmed",intent:"BLOCKED"}}const o={...e,price:r,triggerPrice:i,clientToken:s},n={clientId:s,state:"pending_place",intent:"SUBMITTING",req:o};this._orders.set(s,n);try{const{orderId:e}=await this._feed.place({...o,mode:this._mode});return n.brokerId=e,this._byBroker.set(e,s),n.state=M(n.state,"ack"),n.intent="SUBMITTED",{ok:!0,clientId:s,state:n.state,intent:n.intent}}catch(e){const t=S(e);n.state=M(n.state,"reject"),n.intent=t?"BLOCKED":"AMBIGUOUS",t&&this._sentTokens.delete(s);const r=String(e.message??e);return this._settle(n),{ok:!1,clientId:s,state:n.state,intent:n.intent,reason:t?r:`${r} (may have reached the broker; check the order book before retrying)`}}}placeMarket(e,t,r,i){return this.placeOrder({symbol:e,side:t,type:"MARKET",qty:r,exchange:i?.exchange,product:i?.product,clientToken:i?.clientToken})}linkOco(e,t){const r=this._orders.get(e),i=this._orders.get(t);r&&i&&(r.ocoPeer=t,i.ocoPeer=e)}requestModify(e,t,r){const i=this._orders.get(e);if(void 0===i||y(i.state))return;const s=this._buildModifyPatch(i,t,r?.triggerPrice);if(!s.ok)return void this._onValidationError?.(s.reason);this._pendingModify.set(e,s.patch);const o=this._lastModifyAt.get(e)??-1/0;this._now()-o>=this._minModifyMs&&this._flushModify(e)}commitModify(e){return this._flushModify(e)}_buildModifyPatch(e,t,r){const i=O(t,e.req.qty,this._constraints);if(!i.ok)return{ok:!1,reason:i.reason??"invalid modify price"};const s=i.price??t;if("SL-M"===e.req.type){const t=r??s,i=this._validateTrigger(t,e.req.qty);return i.ok?{ok:!0,patch:{triggerPrice:i.price}}:i}if("SL"===e.req.type){const t=void 0!==e.req.triggerPrice&&void 0!==e.req.price?e.req.triggerPrice-e.req.price:0,i=r??s+t,o=this._validateTrigger(i,e.req.qty);return o.ok?{ok:!0,patch:{price:s,triggerPrice:o.price}}:o}if(void 0!==r){const t=this._validateTrigger(r,e.req.qty);return t.ok?{ok:!0,patch:{price:s,triggerPrice:t.price}}:t}return{ok:!0,patch:{price:s}}}_validateTrigger(e,t){const r=O(e,t,this._constraints);return r.ok?{ok:!0,price:r.price??e}:{ok:!1,reason:`trigger: ${r.reason??"invalid"}`}}async _flushModify(e){const t=this._pendingModify.get(e),r=this._orders.get(e);if(void 0!==t&&void 0!==r&&void 0!==r.brokerId){this._pendingModify.delete(e),this._lastModifyAt.set(e,this._now()),r.state=M(r.state,"submitModify"),r.intent="MODIFY_SUBMITTING";try{await this._feed.modify(r.brokerId,t),r.state=M(r.state,"ack"),r.intent="ACKNOWLEDGED",void 0!==t.price&&(r.req={...r.req,price:t.price}),void 0!==t.triggerPrice&&(r.req={...r.req,triggerPrice:t.triggerPrice})}catch(e){r.state=M(r.state,"reject"),r.intent=S(e)?"ACKNOWLEDGED":"AMBIGUOUS"}}}async cancelOrder(e){const t=this._orders.get(e);if(void 0!==t&&void 0!==t.brokerId&&!y(t.state)){t.state=M(t.state,"submitCancel"),t.intent="CANCEL_SUBMITTING";try{await this._feed.cancel(t.brokerId),t.state=M(t.state,"cancelled"),t.intent="ACKNOWLEDGED",this._cancelOcoPeer(t),this._settle(t)}catch(e){t.state=M(t.state,"reject"),t.intent=S(e)?"ACKNOWLEDGED":"AMBIGUOUS"}}}onFill(e,t){this.onBrokerUpdate(e,t?"filled":"partial")}onBrokerUpdate(e,t){const r=this._byBroker.get(e);if(void 0===r)return;const i=this._orders.get(r);if(void 0===i)return;i.brokerStatus=t;const s=T[t];void 0!==s&&(i.state=M(i.state,s)),i.intent=I.has(t)?"SETTLED":"ACKNOWLEDGED","filled"===t&&this._cancelOcoPeer(i),this._settle(i)}_cancelOcoPeer(e){if(void 0===e.ocoPeer)return;const t=this._orders.get(e.ocoPeer);t&&!y(t.state)&&this.cancelOrder(t.clientId)}beginReconcile(){for(const e of this._orders.values())y(e.state)||"AMBIGUOUS"===e.intent||(e.intent="RECONCILING")}onReconnect(e){for(const t of this._orders.values())y(t.state)||(void 0!==t.brokerId&&e.has(t.brokerId)?t.intent="ACKNOWLEDGED":(t.state=M(t.state,"reconnectAbsent"),t.intent="AMBIGUOUS"))}_settle(e){if(!0!==e.pruned&&y(e.state)&&"AMBIGUOUS"!==e.intent&&"RECONCILING"!==e.intent)for(e.pruned=!0,this._lastModifyAt.delete(e.clientId),this._pendingModify.delete(e.clientId),this._settledIds.push(e.clientId);this._settledIds.length>this._maxSettled;){const e=this._settledIds.shift();if(void 0===e)break;const t=this._orders.get(e);void 0!==t&&!0===t.pruned&&(this._orders.delete(e),void 0!==t.brokerId&&this._byBroker.delete(t.brokerId),this._lastModifyAt.delete(e),this._pendingModify.delete(e))}}}function $(e){const t=Math.max(e.bids.length,e.asks.length);return 0===t?"none":t<=5?"compact":"deep"}function L(e,t,r=1){const i=t*Math.max(1,r),s=new Map,o=(e,t,r)=>{const o=(n=e,Math.round(Math.round(n/i)*i*1e8)/1e8);var n;let a=s.get(o);void 0===a&&(a={price:o,bidQty:0,askQty:0},s.set(o,a)),"bid"===r?a.bidQty+=t:a.askQty+=t};for(const t of e.bids)o(t.price,t.qty,"bid");for(const t of e.asks)o(t.price,t.qty,"ask");return Array.from(s.values()).sort((e,t)=>t.price-e.price)}function N(e,t,r,i,s){const o=e.filter(e=>{const s=t(e.price);return s>=-i&&s<=r+i});if(o.length<=s)return o;const n=r/2;return o.map(e=>({r:e,d:Math.abs(t(e.price)-n)})).sort((e,t)=>e.d-t.d).slice(0,s).map(e=>e.r).sort((e,t)=>t.price-e.price)}const q={tickSize:.05,width:96,groupBy:1,maxRows:60,rowHeight:14};class B{constructor(e={}){Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_depth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_rowHits",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._opts={...q,...e}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"top"}setDepth(e){this._depth=e,this._host?.requestUpdate()}tier(){return null===this._depth?"none":$(this._depth)}draw(e,t){if(this._rowHits=[],null===this._depth)return;const r=N(L(this._depth,this._opts.tickSize,this._opts.groupBy),e=>t.priceScale.priceToY(e),t.plotHeight,this._opts.rowHeight,this._opts.maxRows);if(0===r.length)return;const i=t.dpr,s=this._opts.width*i,o=(t.plotWidth-this._opts.width)*i,c=o+s/2,d=this._opts.rowHeight*i;let h=1;for(const e of r)h=Math.max(h,e.bidQty,e.askQty);const u=n(t.theme.buy)??{r:38,g:166,b:154},p=n(t.theme.sell)??{r:239,g:83,b:80},f=l(a("transparent"===t.theme.background?"#808080":t.theme.background),.9);e.save(),e.strokeStyle=l(t.theme.axisLine,.6),e.lineWidth=Math.max(1,Math.round(i)),e.beginPath(),e.moveTo(Math.round(o)+.5,0),e.lineTo(Math.round(o)+.5,Math.round(t.plotHeight*i)),e.stroke(),e.font=9*i+"px system-ui, sans-serif",e.textBaseline="middle";for(const n of r){const r=t.priceScale.priceToY(n.price)*i,a=t.hoverId===`ladder-bid:${n.price}`,b=t.hoverId===`ladder-ask:${n.price}`;if(n.bidQty>0){e.fillStyle=`rgba(${u.r},${u.g},${u.b},${.15+n.bidQty/h*.5+(a?.15:0)})`;const l=s/2*(n.bidQty/h);e.fillRect(c-l,r-d/2,l,d-1),e.fillStyle=f,e.textAlign="left",e.fillText(String(n.bidQty),o+2*i,r),this._rowHits.push({price:n.price,y:t.priceScale.priceToY(n.price),side:"bid"})}if(n.askQty>0){e.fillStyle=`rgba(${p.r},${p.g},${p.b},${.15+n.askQty/h*.5+(b?.15:0)})`;const a=s/2*(n.askQty/h);e.fillRect(c,r-d/2,a,d-1),e.fillStyle=f,e.textAlign="right",e.fillText(String(n.askQty),o+s-2*i,r),this._rowHits.push({price:n.price,y:t.priceScale.priceToY(n.price),side:"ask"})}(a||b)&&(e.strokeStyle=l(a?t.theme.buy:t.theme.sell,.9),e.lineWidth=Math.max(1,Math.round(i)),e.strokeRect(a?o+.5:c+.5,r-d/2+.5,s/2-1,d-2))}e.restore()}hitTest(e,t,r){if(null===this._depth)return null;if(e<r.plotWidth-this._opts.width||e>r.plotWidth)return null;let i=null;for(const e of this._rowHits){const r=Math.abs(e.y-t);r<=this._opts.rowHeight/2&&(null===i||r<i.d)&&(i={price:e.price,side:e.side,d:r})}return null===i?null:{externalId:`ladder-${i.side}:${i.price}`,zOrder:"top",distance:i.d,cursor:"pointer"}}}const A="trade";export{b as BracketGroup,q as DEFAULT_DOM_LADDER_OPTIONS,B as DomLadder,g as FakeBroker,j as OrderEngine,f as PositionMarker,A as TRADE_TIER,_ as TradeController,p as WorkingOrderLine,o as bracketValid,i as breakeven,L as buildRows,k as canTransition,S as isPreflightFailure,y as isTerminal,e as isWorking,$ as ladderCapability,s as riskReward,M as transition,t as unrealizedPnl,r as unrealizedPnlPercent,O as validateOrder,P as validatePrice,w as validateQuantity,N as visibleRows,x as withinPriceBand};
|
|
1
|
+
import{checkTradingCapability as e}from"./openalgo-charts.mjs";export{TradingCapabilityError,assertTradingCapability,checkTradingCapability}from"./openalgo-charts.mjs";function t(e){return"pending"===e.status||"working"===e.status||"partial"===e.status}function i(e,t){return(t-e.avgPrice)*e.netQty}function r(e,t){if(0===e.avgPrice||0===e.netQty)return 0;const i=e.netQty>0?1:-1;return(t-e.avgPrice)/e.avgPrice*100*i}function o(e,t=0){if(0===e.netQty)return e.avgPrice;const i=e.netQty>0?1:-1;return e.avgPrice+i*t}function s(e,t,i){const r=Math.abs(e-t);return 0===r?null:Math.abs(i-e)/r}function n(e,t,i,r){return"BUY"===e?i<t&&r>t:i>t&&r<t}function a(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const[t,i,r,o]=[...e].map(e=>parseInt(e+e,16));return[t,i,r].some(Number.isNaN)?null:{r:t,g:i,b:r,a:4===e.length?o/255:1}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,6),16);if(Number.isNaN(t))return null;const i=8===e.length?parseInt(e.slice(6,8),16)/255:1;return{r:t>>16&255,g:t>>8&255,b:255&t,a:Number.isNaN(i)?1:i}}return null}const i=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);return null===i?null:{r:Number(i[1]),g:Number(i[2]),b:Number(i[3]),a:void 0===i[4]?1:Number(i[4])}}function l(e){return function(e){const t=a(e);if(null===t)return.5;const i=e=>{const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)};return.2126*i(t.r)+.7152*i(t.g)+.0722*i(t.b)}(e)>.45?"#10131a":"#ffffff"}function c(e,t){const i=a(e);return null===i?e:`rgba(${i.r},${i.g},${i.b},${t})`}function d(e,t){const i=a(e);if(null===i)return e;const r=t>=0?255:0,o=Math.min(1,Math.abs(t)),s=e=>Math.round(e+(r-e)*o);return`rgba(${s(i.r)},${s(i.g)},${s(i.b)},${i.a})`}function h(e,t,i,r,o,s){const n=e.roundRect;"function"==typeof n?n.call(e,t,i,r,o,Math.max(0,Math.min(s,r/2,o/2))):e.rect(t,i,r,o)}function u(e,t,i,r,o,s,n){const a=e.measureText(r).width+2*s;return e.beginPath(),h(e,t,i-o/2,a,o,n.radius),void 0!==n.backplate&&(e.fillStyle=n.backplate,e.fill()),e.fillStyle=n.fill,e.fill(),void 0!==n.border&&(e.strokeStyle=n.border,e.lineWidth=1,e.stroke()),e.fillStyle=n.text,e.textAlign="left",e.textBaseline="middle",e.fillText(r,t+s,i),a}function p(e,t,i,r,o){const{height:s,padX:n,radius:a,gap:l,dpr:c}=o,d=r.map(t=>!0===t.close?20*c:e.measureText(t.text??"").width+2*n),u=d.reduce((e,t)=>e+t,0)+l*Math.max(0,r.length-1);void 0!==o.backplate&&(e.beginPath(),h(e,t,i-s/2,u,s,a),e.fillStyle=o.backplate,e.fill());let p=Number.POSITIVE_INFINITY,f=t;for(let t=0;t<r.length;t++){const o=r[t],u=d[t];if(e.beginPath(),h(e,f,i-s/2,u,s,a),e.fillStyle=o.fill,e.fill(),void 0!==o.border&&(e.strokeStyle=o.border,e.lineWidth=Math.max(1,Math.round(c)),e.stroke()),!0===o.close){p=f,e.strokeStyle=o.textColor,e.lineWidth=Math.max(1,Math.round(1.4*c));const t=f+u/2,r=3.5*c;e.beginPath(),e.moveTo(t-r,i-r),e.lineTo(t+r,i+r),e.moveTo(t+r,i-r),e.lineTo(t-r,i+r),e.stroke()}else e.fillStyle=o.textColor,e.textAlign="left",e.textBaseline="middle",e.fillText(o.text??"",f+n,i);f+=u+l}return{x0:t/c,x1:(f-l)/c,closeX0:p/c}}class f{constructor(e,t={}){Object.defineProperty(this,"_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_group",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_extent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ghost",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._order=e,this._extent=Math.max(.1,Math.min(1,t.extentFromRight??.5))}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}get order(){return this._order}update(e){this._order=e,this._host?.requestUpdate()}setLtp(e){this._ltp=e,this._host?.requestUpdate()}autoscaleInfo(){const e=this._order.triggerPrice??this._order.price;return{min:e,max:e}}_price(){return this._order.triggerPrice??this._order.price}draw(e,t){this._group=null;const i=this._price(),r=t.dpr,o=Math.round(t.priceScale.priceToY(i)*r)+.5;if(o<0||o>t.plotHeight*r)return;const s="BUY"===this._order.side?t.theme.buy:t.theme.sell,n=t.hoverId===`order:${this._order.id}`||t.hoverId===`order:${this._order.id}::close`||t.dragId===`order:${this._order.id}`,a="pending"===this._order.status,h=a?c(s,.55):n?d(s,.1):s,u=Math.round(t.plotWidth*r),f=Math.round(t.plotWidth*(1-this._extent)*r),b=t.dragId===`order:${this._order.id}`;if(b&&null===this._ghost?this._ghost=i:b||null===this._ghost||(this._ghost=null),e.save(),null!==this._ghost&&Math.abs(this._ghost-i)>1e-9){const i=Math.round(t.priceScale.priceToY(this._ghost)*r)+.5;i>=0&&i<=t.plotHeight*r&&(e.strokeStyle=c(s,.35),e.lineWidth=Math.max(1,Math.round(r)),e.setLineDash([2*r,3*r]),e.beginPath(),e.moveTo(f,i),e.lineTo(u,i),e.stroke(),e.setLineDash([]))}b&&(e.strokeStyle=c(s,.18),e.lineWidth=5*r,e.beginPath(),e.moveTo(f,o),e.lineTo(u,o),e.stroke()),e.strokeStyle=h;const _=Math.max(1,Math.round(r));e.lineWidth=n?_+Math.round(r):_,e.setLineDash([6*r,4*r]),e.beginPath(),e.moveTo(f,o),e.lineTo(u,o),e.stroke(),e.setLineDash([]),e.font=`500 ${11*r}px system-ui, sans-serif`,e.textBaseline="middle",e.textAlign="left";const g=18*r,m=6*r,y=3*r,v=t.priceScale.format(i);e.fillStyle=a?c(s,.7):s,e.fillRect(u+1,o-g/2,e.measureText(v).width+2*m,g),e.fillStyle=l(s),e.fillText(v,u+1+m,o);const k="transparent"===t.theme.background?c(s,.14):t.theme.background,M="transparent"===t.theme.background?t.theme.axisText:l(t.theme.background),w=c(t.theme.axisText,n?.75:.5),x=t.hoverId===`order:${this._order.id}::close`;a&&(e.globalAlpha=.75);const P=this._order.filledQty>0?`${this._order.filledQty}/${this._order.qty}`:String(this._order.qty-this._order.filledQty);let S=`${this._order.type} ${v}`;if(!Number.isNaN(this._ltp)){const e=i-this._ltp;S+=` ${e>=0?"+":""}${t.priceScale.format(e)}`}this._group=p(e,f,o,[{text:this._order.side,fill:n?d(s,.12):s,textColor:l(s),border:d(s,-.25)},{text:P,fill:k,textColor:M,border:w},{text:S,fill:k,textColor:M,border:w},{close:!0,fill:x?s:k,textColor:x?l(s):M,border:x?s:w}],{height:g,padX:m,radius:y,gap:2*r,backplate:"transparent"===t.theme.background?void 0:t.theme.background,dpr:r}),e.restore()}hitTest(e,t,i){if(e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._price()),o=Math.abs(t-r),s=this._group;return null!==s&&o<=10&&e>=s.x0&&e<=s.x1?e>=s.closeX0?{externalId:`order:${this._order.id}::close`,zOrder:"normal",distance:o,cursor:"pointer"}:{externalId:`order:${this._order.id}`,zOrder:"normal",distance:o,cursor:"ns-resize"}:o>4||e<i.plotWidth*(1-this._extent)-8?null:{externalId:`order:${this._order.id}`,zOrder:"normal",distance:o,cursor:"ns-resize"}}}class b{constructor(e,t={}){Object.defineProperty(this,"_position",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_group",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_extent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._position=e,this._extent=Math.max(.1,Math.min(1,t.extentFromRight??.5))}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}get position(){return this._position}update(e){this._position=e,this._host?.requestUpdate()}setLtp(e){this._ltp=e,this._host?.requestUpdate()}autoscaleInfo(){return{min:this._position.avgPrice,max:this._position.avgPrice}}draw(e,t){if(this._group=null,0===this._position.netQty)return;const o=t.dpr,s=Math.round(t.priceScale.priceToY(this._position.avgPrice)*o)+.5;if(s<0||s>t.plotHeight*o)return;const n=Math.round(t.plotWidth*o),a=Number.isNaN(this._ltp)?0:i(this._position,this._ltp),h=a>=0?t.theme.profit:t.theme.loss,u=this._position.netQty>0,f=u?t.theme.buy:t.theme.sell,b=`position:${this._position.symbol}`,_=t.hoverId===b||t.hoverId===`${b}::close`,g=Math.round(t.plotWidth*(1-this._extent)*o);if(e.save(),e.strokeStyle=_?f:t.theme.axisText,e.lineWidth=Math.max(1,Math.round(o))+(_?Math.round(o):0),e.beginPath(),e.moveTo(g,s),e.lineTo(n,s),e.stroke(),!Number.isNaN(this._ltp)){const i=Math.round(t.priceScale.priceToY(this._ltp)*o);e.fillStyle=c(h,.1),e.fillRect(g,Math.min(s,i),n-g,Math.abs(i-s))}e.font=`500 ${11*o}px system-ui, sans-serif`,e.textBaseline="middle",e.textAlign="left";const m=18*o,y=6*o,v=3*o,k=t.priceScale.format(this._position.avgPrice);e.fillStyle=h,e.fillRect(n+1,s-m/2,e.measureText(k).width+2*y,m),e.fillStyle=l(h),e.fillText(k,n+1+y,s);const M="transparent"===t.theme.background?c(f,.14):t.theme.background,w="transparent"===t.theme.background?t.theme.axisText:l(t.theme.background),x=c(t.theme.axisText,_?.75:.5),P=t.hoverId===`${b}::close`,S=Number.isNaN(this._ltp)?0:r(this._position,this._ltp),T=u?"LONG":"SHORT",O=String(Math.abs(this._position.netQty)),I=`${a>=0?"+":""}${a.toFixed(2)} (${S>=0?"+":""}${S.toFixed(2)}%)`;this._group=p(e,g,s,[{text:T,fill:_?d(f,.12):f,textColor:l(f),border:d(f,-.25)},{text:O,fill:M,textColor:w,border:x},{text:I,fill:M,textColor:h,border:c(h,.65)},{close:!0,fill:P?f:M,textColor:P?l(f):w,border:P?f:x}],{height:m,padX:y,radius:v,gap:2*o,backplate:"transparent"===t.theme.background?void 0:t.theme.background,dpr:o}),e.restore()}hitTest(e,t,i){if(0===this._position.netQty||e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._position.avgPrice),o=Math.abs(t-r),s=`position:${this._position.symbol}`,n=this._group;return null!==n&&o<=10&&e>=n.x0&&e<=n.x1?e>=n.closeX0?{externalId:`${s}::close`,zOrder:"normal",distance:o,cursor:"pointer"}:{externalId:s,zOrder:"normal",distance:o,cursor:"pointer"}:o>4||e<i.plotWidth*(1-this._extent)-8?null:{externalId:s,zOrder:"normal",distance:o,cursor:"pointer"}}}class _{constructor(e){Object.defineProperty(this,"_state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._state=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"bottom"}get state(){return this._state}update(e){this._state=e,this._host?.requestUpdate()}autoscaleInfo(){return{min:Math.min(this._state.stop,this._state.target,this._state.entry),max:Math.max(this._state.stop,this._state.target,this._state.entry)}}draw(e,t){const{entry:i,stop:r,target:o}=this._state,n=t.dpr,a=Math.round(t.plotWidth*n),l=t.priceScale.priceToY(i)*n,d=t.priceScale.priceToY(r)*n,h=t.priceScale.priceToY(o)*n;e.save(),e.fillStyle=c(t.theme.loss,.09),e.fillRect(0,Math.min(l,d),a,Math.abs(d-l)),e.fillStyle=c(t.theme.profit,.09),e.fillRect(0,Math.min(l,h),a,Math.abs(h-l)),e.font=`500 ${10*n}px system-ui, sans-serif`,e.textBaseline="middle";for(const[i,s,l,p,f]of[[d,t.theme.loss,"SL",r,`bracket-sl:${this._state.symbol}`],[h,t.theme.profit,"TP",o,`bracket-tp:${this._state.symbol}`]]){const r=Math.round(i)+.5,o=t.hoverId===f||t.dragId===f;e.strokeStyle=s;const d=Math.max(1,Math.round(n));e.lineWidth=o?d+Math.round(n):d,e.setLineDash([4*n,4*n]),e.beginPath(),e.moveTo(0,r),e.lineTo(a,r),e.stroke(),e.setLineDash([]),u(e,4*n,r,`${l} ${t.priceScale.format(p)}`,16*n,6*n,{fill:c(s,o?.28:.16),text:s,border:c(s,.55),radius:3*n,backplate:"transparent"===t.theme.background?void 0:t.theme.background})}const p=s(i,r,o);null!==p&&u(e,4*n,Math.round(l)-12*n,`R:R ${p.toFixed(2)}`,16*n,6*n,{fill:c(t.theme.axisText,.16),text:t.theme.axisText,radius:3*n,backplate:"transparent"===t.theme.background?void 0:t.theme.background}),e.restore()}hitTest(e,t,i){if(e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._state.stop),o=i.priceScale.priceToY(this._state.target),s=Math.abs(t-r),n=Math.abs(t-o);return s<=4?{externalId:`bracket-sl:${this._state.symbol}`,zOrder:"bottom",distance:s,cursor:"ns-resize"}:n<=4?{externalId:`bracket-tp:${this._state.symbol}`,zOrder:"bottom",distance:n,cursor:"ns-resize"}:null}}class g{constructor(e){Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_orderLines",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_markers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_brackets",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this._host=e}reconcile(e,t){const i=this._planBrackets(e,t);this._reconcileOrderLines(e,i.covered),this._reconcilePositions(t),this._applyBrackets(i.states)}_reconcileOrderLines(e,i){const r=new Set;for(const o of e){if(!t(o)||i.has(o.id))continue;r.add(o.id);const e=this._orderLines.get(o.id);if(e)e.update(o);else{const e=new f(o),t=this._ltp.get(o.symbol);void 0!==t&&e.setLtp(t),this._orderLines.set(o.id,e),this._host.addPrimitive(e)}}for(const[e,t]of this._orderLines)r.has(e)||(this._host.removePrimitive(t),this._orderLines.delete(e))}_reconcilePositions(e){const t=new Set;for(const i of e){if(0===i.netQty)continue;t.add(i.symbol);const e=this._markers.get(i.symbol);if(e)e.update(i);else{const e=new b(i),t=this._ltp.get(i.symbol);void 0!==t&&e.setLtp(t),this._markers.set(i.symbol,e),this._host.addPrimitive(e)}}for(const[e,i]of this._markers)t.has(e)||(this._host.removePrimitive(i),this._markers.delete(e))}_planBrackets(e,i){const r=new Map,o=new Map;for(const i of e)t(i)&&("sl"===i.role?r.set(i.symbol,i):"tp"===i.role&&o.set(i.symbol,i));const s=new Map(i.map(e=>[e.symbol,e])),n=new Map,a=new Set;for(const e of new Set([...r.keys(),...o.keys()])){const t=r.get(e),i=o.get(e);if(void 0===t||void 0===i)continue;const l=s.get(e);void 0!==l&&0!==l.netQty&&(n.set(e,{symbol:e,side:l.netQty>0?"BUY":"SELL",entry:l.avgPrice,stop:t.triggerPrice??t.price,target:i.price}),a.add(t.id),a.add(i.id))}return{states:n,covered:a}}_applyBrackets(e){for(const[t,i]of e){const e=this._brackets.get(t);if(e)e.update(i);else{const e=new _(i);this._brackets.set(t,e),this._host.addPrimitive(e)}}for(const[t,i]of this._brackets)e.has(t)||(this._host.removePrimitive(i),this._brackets.delete(t))}onLtp(e,t){this._ltp.set(e,t);for(const i of this._orderLines.values())i.order.symbol===e&&i.setLtp(t);const i=this._markers.get(e);i&&i.setLtp(t)}orderLineCount(){return this._orderLines.size}positionCount(){return this._markers.size}bracketCount(){return this._brackets.size}}class m{constructor(){Object.defineProperty(this,"_orders",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_bookListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_ltpListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_depthListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_idCounter",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"rejectNextPlace",{enumerable:!0,configurable:!0,writable:!0,value:null})}onBook(e){this._bookListeners.push(e)}onLtp(e){this._ltpListeners.push(e)}setBook(e,t){this._orders=e.map(e=>({...e})),this._positions=t.map(e=>({...e}));for(const e of this._bookListeners)e(this._orders,this._positions)}emitLtp(e,t){for(const i of this._ltpListeners)i(e,t)}onDepth(e){this._depthListeners.push(e)}emitDepth(e,t){for(const i of this._depthListeners)i(e,t)}static makeDepth(e,t,i=.05){const r=[],o=[];for(let s=1;s<=t;s++)r.push({price:e-s*i,qty:100+37*s%900}),o.push({price:e+s*i,qty:100+53*s%900});return{bids:r,asks:o,ltp:e}}orders(){return this._orders}positions(){return this._positions}async place(e){if(null!==this.rejectNextPlace){const e=this.rejectNextPlace;throw this.rejectNextPlace=null,new Error(e)}const t="B"+ ++this._idCounter;return this._orders.push({id:t,symbol:e.symbol,side:e.side,type:e.type,qty:e.qty,filledQty:0,price:e.price??0,triggerPrice:e.triggerPrice,status:"MARKET"===e.type?"filled":"working",role:void 0}),this._notify(),{orderId:t}}async modify(e,t){const i=this._orders.find(t=>t.id===e);if(void 0===i)throw new Error("unknown order");void 0!==t.price&&(i.price=t.price),void 0!==t.triggerPrice&&(i.triggerPrice=t.triggerPrice),void 0!==t.qty&&(i.qty=t.qty),this._notify()}async cancel(e){this._orders=this._orders.filter(t=>t.id!==e),this._notify()}fill(e){const t=this._orders.find(t=>t.id===e);void 0!==t&&(t.filledQty=t.qty,t.status="filled",this._orders=this._orders.filter(t=>t.id!==e),this._notify())}_notify(){for(const e of this._bookListeners)e(this._orders,this._positions)}}const y=new Set(["filled","cancelled","rejected","stale"]);function v(e){return y.has(e)}const k={pending_place:{ack:"working",partialFill:"partial",fill:"filled",reject:"rejected",reconnectAbsent:"stale"},working:{partialFill:"partial",fill:"filled",reject:"rejected",submitModify:"modify_pending",submitCancel:"cancel_pending",cancelled:"cancelled",reconnectAbsent:"stale"},partial:{partialFill:"partial",fill:"filled",reject:"rejected",submitModify:"modify_pending",submitCancel:"cancel_pending",cancelled:"cancelled",reconnectAbsent:"stale"},modify_pending:{ack:"working",reject:"working",fill:"filled",partialFill:"partial",cancelled:"cancelled",reconnectAbsent:"stale"},cancel_pending:{cancelled:"cancelled",reject:"working",fill:"filled",reconnectAbsent:"stale"},filled:{},cancelled:{},rejected:{},stale:{}};function M(e,t){return void 0!==k[e][t]}function w(e,t){return k[e][t]??e}function x(e,t){return e>=t.lower&&e<=t.upper}function P(e,t){if(!Number.isFinite(e))return{ok:!1,code:"QTY_INVALID",reason:"quantity must be a finite number"};if(e<=0)return{ok:!1,code:"QTY_INVALID",reason:"quantity must be positive"};const i=t.lotSize??(!0===t.allowFractionalQty?void 0:1);return void 0!==i&&function(e,t){if(!Number.isFinite(t)||t<=0)return!1;const i=e/t,r=Math.round(i);if(!Number.isSafeInteger(r)||r<1)return!0;if(r*t===e)return!1;const o=Math.min(1e-7,8*Number.EPSILON*Math.max(1,Math.abs(i)));return Math.abs(i-r)>o}(e,i)?{ok:!1,code:"QTY_STEP",reason:void 0!==t.lotSize?`quantity ${e} is not a multiple of lot size ${t.lotSize}`:`quantity ${e} must be a whole number`}:void 0!==t.freezeQty&&e>t.freezeQty?{ok:!1,code:"QTY_FREEZE_LIMIT",reason:`quantity ${e} exceeds freeze limit ${t.freezeQty}`}:{ok:!0}}function S(e,t){if(!Number.isFinite(e))return{ok:!1,code:"PRICE_INVALID",reason:"price must be a finite number"};const i=(r=e,(o=t.tickSize)<=0?r:Math.round(r/o)*o);var r,o;return t.priceBand&&!x(i,t.priceBand)?{ok:!1,code:"PRICE_OUT_OF_BAND",reason:`price ${i} outside band ${t.priceBand.lower} to ${t.priceBand.upper}`}:{ok:!0,price:i}}function T(e,t,i){const r=P(t,i);return r.ok?void 0===e?{ok:!0}:S(e,i):r}function O(e){return"object"==typeof e&&null!==e&&!0===e.preflight}const I={pending:void 0,working:"ack",partial:"partialFill",filled:"fill",cancelled:"cancelled",rejected:"reject"},j=new Set(["filled","cancelled","rejected"]);class ${constructor(e){Object.defineProperty(this,"_feed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_capabilities",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_constraints",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_mode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_armed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_gate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_minModifyMs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_now",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_idGen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_onValidationError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_maxSettled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_orders",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_byBroker",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_sentTokens",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_lastModifyAt",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_pendingModify",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_settledIds",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_counter",{enumerable:!0,configurable:!0,writable:!0,value:0}),this._feed=e.feed,this._capabilities=e.capabilities,this._constraints=e.constraints,this._mode=e.mode??"live",this._armed=e.armed??!1,this._gate=e.gate,this._minModifyMs=e.minModifyIntervalMs??150,this._now=e.now??(()=>"undefined"!=typeof performance?performance.now():0),this._idGen=e.idGen??(()=>"c"+ ++this._counter),this._onValidationError=e.onValidationError,this._maxSettled=Math.max(0,e.maxSettledOrders??500)}get mode(){return this._mode}state(e){return this._orders.get(e)?.state}intentState(e){return this._orders.get(e)?.intent}brokerStatus(e){return this._orders.get(e)?.brokerStatus}_capability(t){const i=e(this._feed.capabilities,t);return i.supported?e(this._capabilities,t):i}_orderCapability(e,t){return this._capability({operation:e,symbol:t.req.symbol,exchange:t.req.exchange,type:t.req.type,mode:this._mode,orderId:t.brokerId})}async placeOrder(e){const t={...e},i=T(t.price,t.qty,this._constraints);if(!i.ok)return{ok:!1,reason:i.reason,intent:"BLOCKED"};const r=void 0===t.price?void 0:i.price;let o=t.triggerPrice;if(void 0!==t.triggerPrice){const e=T(t.triggerPrice,t.qty,this._constraints);if(!e.ok)return{ok:!1,reason:`trigger: ${e.reason}`,intent:"BLOCKED"};o=e.price}const s=t.clientToken??this._idGen();if(this._sentTokens.has(s)){const e=this._orders.get(s);return{ok:!1,reason:"AMBIGUOUS"===e?.intent?"duplicate clientToken: the first attempt was never confirmed and may be live":"duplicate clientToken (idempotent skip)",clientId:s,state:e?.state,intent:e?.intent}}const n={operation:"place",symbol:t.symbol,exchange:t.exchange,type:t.type,mode:this._mode},a=this._capability(n);if(!a.supported)return{ok:!1,reason:a.reason,intent:"BLOCKED"};if(this._sentTokens.add(s),!this._armed){let e=!1;try{e=await(this._gate?this._gate({...t}):Promise.resolve(!1))}catch(e){throw this._sentTokens.delete(s),e}if(!e)return this._sentTokens.delete(s),{ok:!1,reason:"not confirmed",intent:"BLOCKED"}}const l=this._capability(n);if(!l.supported)return this._sentTokens.delete(s),{ok:!1,reason:l.reason,intent:"BLOCKED"};const c={...t,price:r,triggerPrice:o,clientToken:s},d={clientId:s,state:"pending_place",intent:"SUBMITTING",req:c,writeRevision:0};this._orders.set(s,d);try{const{orderId:e}=await this._feed.place({...c,mode:this._mode});return d.brokerId=e,this._byBroker.set(e,s),d.state=w(d.state,"ack"),d.intent="SUBMITTED",{ok:!0,clientId:s,state:d.state,intent:d.intent}}catch(e){const t=O(e);d.state=w(d.state,"reject"),d.intent=t?"BLOCKED":"AMBIGUOUS",t&&this._sentTokens.delete(s);const i=String(e.message??e);return this._settle(d),{ok:!1,clientId:s,state:d.state,intent:d.intent,reason:t?i:`${i} (may have reached the broker; check the order book before retrying)`}}}placeMarket(e,t,i,r){return this.placeOrder({symbol:e,side:t,type:"MARKET",qty:i,exchange:r?.exchange,product:r?.product,clientToken:r?.clientToken})}linkOco(e,t){const i=this._orders.get(e),r=this._orders.get(t);i&&r&&(i.ocoPeer=t,r.ocoPeer=e)}requestModify(e,t,i){const r=i?.triggerPrice,o=this._orders.get(e);if(void 0===o||v(o.state))return;const s=this._orderCapability("modify",o);if(!s.supported)return this._pendingModify.delete(e),void this._onValidationError?.(s.reason);const n=this._buildModifyPatch(o,t,r);if(!n.ok)return void this._onValidationError?.(n.reason);this._pendingModify.set(e,n.patch);const a=this._lastModifyAt.get(e)??-1/0;this._now()-a>=this._minModifyMs&&this._flushModify(e)}commitModify(e){return this._flushModify(e)}_buildModifyPatch(e,t,i){const r=T(t,e.req.qty,this._constraints);if(!r.ok)return{ok:!1,reason:r.reason??"invalid modify price"};const o=r.price??t;if("SL-M"===e.req.type){const t=i??o,r=this._validateTrigger(t,e.req.qty);return r.ok?{ok:!0,patch:{triggerPrice:r.price}}:r}if("SL"===e.req.type){const t=void 0!==e.req.triggerPrice&&void 0!==e.req.price?e.req.triggerPrice-e.req.price:0,r=i??o+t,s=this._validateTrigger(r,e.req.qty);return s.ok?{ok:!0,patch:{price:o,triggerPrice:s.price}}:s}if(void 0!==i){const t=this._validateTrigger(i,e.req.qty);return t.ok?{ok:!0,patch:{price:o,triggerPrice:t.price}}:t}return{ok:!0,patch:{price:o}}}_validateTrigger(e,t){const i=T(e,t,this._constraints);return i.ok?{ok:!0,price:i.price??e}:{ok:!1,reason:`trigger: ${i.reason??"invalid"}`}}async _flushModify(e){const t=this._pendingModify.get(e),i=this._orders.get(e);if(void 0===t||void 0===i||void 0===i.brokerId)return;this._pendingModify.delete(e);const r=this._orderCapability("modify",i);if(!r.supported)return void this._onValidationError?.(r.reason);this._lastModifyAt.set(e,this._now());const o=i.state,s=i.intent,n=++i.writeRevision;i.state=w(i.state,"submitModify"),i.intent="MODIFY_SUBMITTING";try{if(await this._feed.modify(i.brokerId,{...t}),n!==i.writeRevision)return;i.state=w(i.state,"ack"),i.intent="ACKNOWLEDGED",void 0!==t.price&&(i.req={...i.req,price:t.price}),void 0!==t.triggerPrice&&(i.req={...i.req,triggerPrice:t.triggerPrice})}catch(e){if(n!==i.writeRevision)return;O(e)?("MODIFY_SUBMITTING"===i.intent&&(i.state=o,i.intent=s),this._onValidationError?.(String(e.message??e))):(i.state=w(i.state,"reject"),i.intent="AMBIGUOUS")}}async cancelOrder(e){const t=this._orders.get(e);if(void 0===t||void 0===t.brokerId||v(t.state))return;const i=this._orderCapability("cancel",t);if(!i.supported)return void this._onValidationError?.(i.reason);const r=t.state,o=t.intent,s=++t.writeRevision;t.state=w(t.state,"submitCancel"),t.intent="CANCEL_SUBMITTING";try{if(await this._feed.cancel(t.brokerId),s!==t.writeRevision)return;t.state=w(t.state,"cancelled"),t.intent="ACKNOWLEDGED",this._cancelOcoPeer(t),this._settle(t)}catch(e){if(s!==t.writeRevision)return;O(e)?("CANCEL_SUBMITTING"===t.intent&&(t.state=r,t.intent=o),this._onValidationError?.(String(e.message??e))):(t.state=w(t.state,"reject"),t.intent="AMBIGUOUS")}}onFill(e,t){this.onBrokerUpdate(e,t?"filled":"partial")}onBrokerUpdate(e,t){const i=this._byBroker.get(e);if(void 0===i)return;const r=this._orders.get(i);if(void 0===r)return;r.writeRevision++,r.brokerStatus=t;const o=I[t];void 0!==o&&(r.state=w(r.state,o)),r.intent=j.has(t)?"SETTLED":"ACKNOWLEDGED","filled"===t&&this._cancelOcoPeer(r),this._settle(r)}_cancelOcoPeer(e){if(void 0===e.ocoPeer)return;const t=this._orders.get(e.ocoPeer);t&&!v(t.state)&&this.cancelOrder(t.clientId)}beginReconcile(){for(const e of this._orders.values())v(e.state)||"AMBIGUOUS"===e.intent||(e.writeRevision++,e.intent="RECONCILING")}onReconnect(e){for(const t of this._orders.values())v(t.state)||(t.writeRevision++,void 0!==t.brokerId&&e.has(t.brokerId)?t.intent="ACKNOWLEDGED":(t.state=w(t.state,"reconnectAbsent"),t.intent="AMBIGUOUS"))}_settle(e){if(!0!==e.pruned&&v(e.state)&&"AMBIGUOUS"!==e.intent&&"RECONCILING"!==e.intent)for(e.pruned=!0,this._lastModifyAt.delete(e.clientId),this._pendingModify.delete(e.clientId),this._settledIds.push(e.clientId);this._settledIds.length>this._maxSettled;){const e=this._settledIds.shift();if(void 0===e)break;const t=this._orders.get(e);void 0!==t&&!0===t.pruned&&(this._orders.delete(e),void 0!==t.brokerId&&this._byBroker.delete(t.brokerId),this._lastModifyAt.delete(e),this._pendingModify.delete(e))}}}function N(e){const{priceTick:t,quantityStep:i}=e.metadata;return{tickSize:t,lotSize:i,allowFractionalQty:!Number.isInteger(i)}}function L(e){const t=Math.max(e.bids.length,e.asks.length);return 0===t?"none":t<=5?"compact":"deep"}function q(e,t,i=1){const r=t*Math.max(1,i),o=new Map,s=(e,t,i)=>{const s=(n=e,Math.round(Math.round(n/r)*r*1e8)/1e8);var n;let a=o.get(s);void 0===a&&(a={price:s,bidQty:0,askQty:0},o.set(s,a)),"bid"===i?a.bidQty+=t:a.askQty+=t};for(const t of e.bids)s(t.price,t.qty,"bid");for(const t of e.asks)s(t.price,t.qty,"ask");return Array.from(o.values()).sort((e,t)=>t.price-e.price)}function B(e,t,i,r,o){const s=e.filter(e=>{const o=t(e.price);return o>=-r&&o<=i+r});if(s.length<=o)return s;const n=i/2;return s.map(e=>({r:e,d:Math.abs(t(e.price)-n)})).sort((e,t)=>e.d-t.d).slice(0,o).map(e=>e.r).sort((e,t)=>t.price-e.price)}const C={tickSize:.05,width:96,groupBy:1,maxRows:60,rowHeight:14};class E{constructor(e={}){Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_depth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_rowHits",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._opts={...C,...e}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"top"}setDepth(e){this._depth=e,this._host?.requestUpdate()}tier(){return null===this._depth?"none":L(this._depth)}draw(e,t){if(this._rowHits=[],null===this._depth)return;const i=B(q(this._depth,this._opts.tickSize,this._opts.groupBy),e=>t.priceScale.priceToY(e),t.plotHeight,this._opts.rowHeight,this._opts.maxRows);if(0===i.length)return;const r=t.dpr,o=this._opts.width*r,s=(t.plotWidth-this._opts.width)*r,n=s+o/2,d=this._opts.rowHeight*r;let h=1;for(const e of i)h=Math.max(h,e.bidQty,e.askQty);const u=a(t.theme.buy)??{r:38,g:166,b:154},p=a(t.theme.sell)??{r:239,g:83,b:80},f=c(l("transparent"===t.theme.background?"#808080":t.theme.background),.9);e.save(),e.strokeStyle=c(t.theme.axisLine,.6),e.lineWidth=Math.max(1,Math.round(r)),e.beginPath(),e.moveTo(Math.round(s)+.5,0),e.lineTo(Math.round(s)+.5,Math.round(t.plotHeight*r)),e.stroke(),e.font=9*r+"px system-ui, sans-serif",e.textBaseline="middle";for(const a of i){const i=t.priceScale.priceToY(a.price)*r,l=t.hoverId===`ladder-bid:${a.price}`,b=t.hoverId===`ladder-ask:${a.price}`;if(a.bidQty>0){e.fillStyle=`rgba(${u.r},${u.g},${u.b},${.15+a.bidQty/h*.5+(l?.15:0)})`;const c=o/2*(a.bidQty/h);e.fillRect(n-c,i-d/2,c,d-1),e.fillStyle=f,e.textAlign="left",e.fillText(String(a.bidQty),s+2*r,i),this._rowHits.push({price:a.price,y:t.priceScale.priceToY(a.price),side:"bid"})}if(a.askQty>0){e.fillStyle=`rgba(${p.r},${p.g},${p.b},${.15+a.askQty/h*.5+(b?.15:0)})`;const l=o/2*(a.askQty/h);e.fillRect(n,i-d/2,l,d-1),e.fillStyle=f,e.textAlign="right",e.fillText(String(a.askQty),s+o-2*r,i),this._rowHits.push({price:a.price,y:t.priceScale.priceToY(a.price),side:"ask"})}(l||b)&&(e.strokeStyle=c(l?t.theme.buy:t.theme.sell,.9),e.lineWidth=Math.max(1,Math.round(r)),e.strokeRect(l?s+.5:n+.5,i-d/2+.5,o/2-1,d-2))}e.restore()}hitTest(e,t,i){if(null===this._depth)return null;if(e<i.plotWidth-this._opts.width||e>i.plotWidth)return null;let r=null;for(const e of this._rowHits){const i=Math.abs(e.y-t);i<=this._opts.rowHeight/2&&(null===r||i<r.d)&&(r={price:e.price,side:e.side,d:i})}return null===r?null:{externalId:`ladder-${r.side}:${r.price}`,zOrder:"top",distance:r.d,cursor:"pointer"}}}const Q="trade";export{_ as BracketGroup,C as DEFAULT_DOM_LADDER_OPTIONS,E as DomLadder,m as FakeBroker,$ as OrderEngine,b as PositionMarker,Q as TRADE_TIER,g as TradeController,f as WorkingOrderLine,n as bracketValid,o as breakeven,q as buildRows,M as canTransition,O as isPreflightFailure,v as isTerminal,t as isWorking,L as ladderCapability,N as orderConstraintsForInstrument,s as riskReward,w as transition,i as unrealizedPnl,r as unrealizedPnlPercent,T as validateOrder,S as validatePrice,P as validateQuantity,B as visibleRows,x as withinPriceBand};
|
|
2
2
|
//# sourceMappingURL=openalgo-charts.trade.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openalgo-charts.trade.mjs","sources":["../src/trade/types.ts","../src/trade/pnl.ts","../src/render/pill.ts","../src/trade/order-line.ts","../src/trade/position.ts","../src/trade/bracket.ts","../src/trade/trade-controller.ts","../src/trade/fake-broker.ts","../src/trade/order-state-machine.ts","../src/trade/validation.ts","../src/helpers/math.ts","../src/trade/order-engine.ts","../src/trade/dom-ladder.ts","../src/trade/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["isWorking","o","status","unrealizedPnl","position","ltp","avgPrice","netQty","unrealizedPnlPercent","sign","breakeven","chargesPerUnit","dir","riskReward","entry","stop","target","risk","Math","abs","bracketValid","side","parseColor","color","c","trim","startsWith","hex","slice","length","r","g","b","a","map","h","parseInt","some","Number","isNaN","n","m","exec","undefined","contrastText","bg","lin","v","s","pow","luminance","withAlpha","alpha","shade","t","to","k","min","ch","round","roundRectPath","ctx","x","y","w","rr","roundRect","call","max","rect","drawPill","yCenter","label","height","padX","style","measureText","width","beginPath","radius","backplate","fillStyle","fill","border","strokeStyle","lineWidth","stroke","text","textAlign","textBaseline","fillText","drawPillGroup","segments","opts","gap","dpr","widths","close","total","reduce","closeX0","POSITIVE_INFINITY","cx","i","textColor","mx","p","moveTo","lineTo","x0","x1","WorkingOrderLine","constructor","order","options","Object","defineProperty","this","NaN","_order","_extent","extentFromRight","attached","host","_host","detached","zOrder","update","requestUpdate","setLtp","_ltp","autoscaleInfo","triggerPrice","price","_price","draw","rc","_group","priceScale","priceToY","plotHeight","theme","buy","sell","active","hoverId","id","dragId","pending","xEnd","plotWidth","xStart","dragging","_ghost","save","gy","setLineDash","baseW","font","boxH","px","format","fillRect","surface","background","surfaceText","axisText","closeHovered","globalAlpha","qtyText","filledQty","qty","String","info","type","diff","restore","hitTest","lineY","distance","TAG_H","externalId","cursor","PositionMarker","_position","entryY","pnl","pnlColor","profit","loss","long","sideColor","symbol","ltpY","pct","pnlText","toFixed","BracketGroup","state","_state","yEntry","yStop","yTarget","yRaw","tag","hovered","dStop","dTarget","TradeController","value","Map","reconcile","orders","positions","plan","_planBrackets","_reconcileOrderLines","covered","_reconcilePositions","_applyBrackets","states","bracketed","seen","Set","has","add","existing","_orderLines","get","line","set","addPrimitive","removePrimitive","delete","_markers","marker","sl","tp","role","posBySymbol","keys","pos","_brackets","onLtp","values","orderLineCount","size","positionCount","bracketCount","FakeBroker","onBook","cb","_bookListeners","push","_ltpListeners","setBook","_orders","_positions","emitLtp","onDepth","_depthListeners","emitDepth","depth","makeDepth","levels","tickSize","bids","asks","place","req","rejectNextPlace","reason","Error","orderId","_idCounter","_notify","modify","patch","find","cancel","filter","TERMINAL","isTerminal","TRANSITIONS","pending_place","ack","partialFill","reject","reconnectAbsent","working","submitModify","submitCancel","cancelled","partial","modify_pending","cancel_pending","filled","rejected","stale","canTransition","event","transition","withinPriceBand","band","lower","upper","validateQuantity","isFinite","ok","code","step","lotSize","allowFractionalQty","units","offGrid","freezeQty","validatePrice","snapped","priceBand","validateOrder","q","isPreflightFailure","err","preflight","BROKER_EVENT","BROKER_FINAL","OrderEngine","_feed","feed","_constraints","constraints","_mode","mode","_armed","armed","_gate","gate","_minModifyMs","minModifyIntervalMs","_now","now","performance","_idGen","idGen","_counter","_onValidationError","onValidationError","_maxSettled","maxSettledOrders","clientId","intentState","intent","brokerStatus","placeOrder","snappedPrice","snappedTrigger","token","clientToken","_sentTokens","held","approved","Promise","resolve","finalReq","tracked","brokerId","_byBroker","message","_settle","placeMarket","exchange","product","linkOco","clientIdA","clientIdB","ocoPeer","requestModify","built","_buildModifyPatch","_pendingModify","last","_lastModifyAt","Infinity","_flushModify","commitModify","explicitTrigger","level","trigger","_validateTrigger","offset","cancelOrder","_cancelOcoPeer","onFill","full","onBrokerUpdate","peer","beginReconcile","onReconnect","presentBrokerIds","pruned","_settledIds","shift","row","ladderCapability","buildRows","groupBy","key","bidQty","askQty","Array","from","sort","visibleRows","rows","rowHeight","maxRows","onScreen","centre","d","DEFAULT_DOM_LADDER_OPTIONS","DomLadder","_opts","setDepth","_depth","tier","_rowHits","stripW","mid","rowH","maxQty","bid","ask","axisLine","yc","bidHover","askHover","strokeRect","best","TRADE_TIER"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openalgo-charts.trade.mjs","sources":["../src/trade/types.ts","../src/trade/pnl.ts","../src/render/pill.ts","../src/trade/order-line.ts","../src/trade/position.ts","../src/trade/bracket.ts","../src/trade/trade-controller.ts","../src/trade/fake-broker.ts","../src/trade/order-state-machine.ts","../src/trade/validation.ts","../src/helpers/math.ts","../src/trade/order-engine.ts","../src/trade/instrument.ts","../src/trade/dom-ladder.ts","../src/trade/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["isWorking","o","status","unrealizedPnl","position","ltp","avgPrice","netQty","unrealizedPnlPercent","sign","breakeven","chargesPerUnit","dir","riskReward","entry","stop","target","risk","Math","abs","bracketValid","side","parseColor","color","c","trim","startsWith","hex","slice","length","r","g","b","a","map","h","parseInt","some","Number","isNaN","n","m","exec","undefined","contrastText","bg","lin","v","s","pow","luminance","withAlpha","alpha","shade","t","to","k","min","ch","round","roundRectPath","ctx","x","y","w","rr","roundRect","call","max","rect","drawPill","yCenter","label","height","padX","style","measureText","width","beginPath","radius","backplate","fillStyle","fill","border","strokeStyle","lineWidth","stroke","text","textAlign","textBaseline","fillText","drawPillGroup","segments","opts","gap","dpr","widths","close","total","reduce","closeX0","POSITIVE_INFINITY","cx","i","textColor","mx","p","moveTo","lineTo","x0","x1","WorkingOrderLine","constructor","order","options","Object","defineProperty","this","NaN","_order","_extent","extentFromRight","attached","host","_host","detached","zOrder","update","requestUpdate","setLtp","_ltp","autoscaleInfo","triggerPrice","price","_price","draw","rc","_group","priceScale","priceToY","plotHeight","theme","buy","sell","active","hoverId","id","dragId","pending","xEnd","plotWidth","xStart","dragging","_ghost","save","gy","setLineDash","baseW","font","boxH","px","format","fillRect","surface","background","surfaceText","axisText","closeHovered","globalAlpha","qtyText","filledQty","qty","String","info","type","diff","restore","hitTest","lineY","distance","TAG_H","externalId","cursor","PositionMarker","_position","entryY","pnl","pnlColor","profit","loss","long","sideColor","symbol","ltpY","pct","pnlText","toFixed","BracketGroup","state","_state","yEntry","yStop","yTarget","yRaw","tag","hovered","dStop","dTarget","TradeController","value","Map","reconcile","orders","positions","plan","_planBrackets","_reconcileOrderLines","covered","_reconcilePositions","_applyBrackets","states","bracketed","seen","Set","has","add","existing","_orderLines","get","line","set","addPrimitive","removePrimitive","delete","_markers","marker","sl","tp","role","posBySymbol","keys","pos","_brackets","onLtp","values","orderLineCount","size","positionCount","bracketCount","FakeBroker","onBook","cb","_bookListeners","push","_ltpListeners","setBook","_orders","_positions","emitLtp","onDepth","_depthListeners","emitDepth","depth","makeDepth","levels","tickSize","bids","asks","place","req","rejectNextPlace","reason","Error","orderId","_idCounter","_notify","modify","patch","find","cancel","filter","TERMINAL","isTerminal","TRANSITIONS","pending_place","ack","partialFill","reject","reconnectAbsent","working","submitModify","submitCancel","cancelled","partial","modify_pending","cancel_pending","filled","rejected","stale","canTransition","event","transition","withinPriceBand","band","lower","upper","validateQuantity","isFinite","ok","code","step","lotSize","allowFractionalQty","units","nearest","isSafeInteger","tolerance","EPSILON","offGrid","freezeQty","validatePrice","snapped","priceBand","validateOrder","q","isPreflightFailure","err","preflight","BROKER_EVENT","BROKER_FINAL","OrderEngine","_feed","feed","_capabilities","capabilities","_constraints","constraints","_mode","mode","_armed","armed","_gate","gate","_minModifyMs","minModifyIntervalMs","_now","now","performance","_idGen","idGen","_counter","_onValidationError","onValidationError","_maxSettled","maxSettledOrders","clientId","intentState","intent","brokerStatus","_capability","request","checkTradingCapability","supported","_orderCapability","operation","exchange","brokerId","placeOrder","snappedPrice","snappedTrigger","token","clientToken","_sentTokens","held","capabilityRequest","capability","approved","Promise","resolve","currentCapability","finalReq","tracked","writeRevision","_byBroker","message","_settle","placeMarket","product","linkOco","clientIdA","clientIdB","ocoPeer","requestModify","_pendingModify","built","_buildModifyPatch","last","_lastModifyAt","Infinity","_flushModify","commitModify","explicitTrigger","level","trigger","_validateTrigger","offset","previousState","previousIntent","revision","cancelOrder","_cancelOcoPeer","onFill","full","onBrokerUpdate","peer","beginReconcile","onReconnect","presentBrokerIds","pruned","_settledIds","shift","row","orderConstraintsForInstrument","instrument","priceTick","quantityStep","metadata","isInteger","ladderCapability","buildRows","groupBy","key","bidQty","askQty","Array","from","sort","visibleRows","rows","rowHeight","maxRows","onScreen","centre","d","DEFAULT_DOM_LADDER_OPTIONS","DomLadder","_opts","setDepth","_depth","tier","_rowHits","stripW","mid","rowH","maxQty","bid","ask","axisLine","yc","bidHover","askHover","strokeRect","best","TRADE_TIER"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{registerChartType as e}from"./openalgo-charts.mjs";function t(e,t,i){const o=e.boxSize;return"number"==typeof o&&o>0?o:void 0!==t.boxSize&&t.boxSize>0?t.boxSize:i}function i(e,i,o,r,s,n,h=1/0){if(0===i.length)return;const l=function(e){let t=1/0;for(const{bar:i}of e){const e=i.high-i.low;e>0&&e<t&&(t=e)}return Number.isFinite(t)?t:0}(i),a=Math.max(3,Math.floor(r*s*.7))/2,u=h===1/0?1/0:h*s;e.save(),e.lineWidth=Math.max(1,Math.floor(s));for(const{x:r,bar:h}of i){const i=t(h,n,l);if(!(i>0))continue;const c=Math.round(h.low/i),_=Math.round(h.high/i)-1;if(_<c)continue;if(_-c+1>4e3)continue;const b=h.close>=h.open;e.strokeStyle=b?n.upColor??"#26a69a":n.downColor??"#ef5350";const f=r*s;for(let t=c;t<=_;t++){const r=o((t+1)*i)*s,n=o(t*i)*s;n<0||r>u||(e.beginPath(),b?(e.moveTo(f-a,r),e.lineTo(f+a,n),e.moveTo(f+a,r),e.lineTo(f-a,n)):e.ellipse(f,(r+n)/2,a,Math.abs(n-r)/2,0,0,2*Math.PI),e.stroke())}}e.restore()}function o(e){let t=-1/0;const i=[];for(const o of e){let e=o.time;e<=t&&(e=t+1),t=e,i.push(e===o.time?o:{...o,time:e})}return i}function r(e,t){e.reset();const i=[];for(const o of t)i.push(...e.push(o));return e.flush&&i.push(...e.flush()),o(i)}class s{constructor(){Object.defineProperty(this,"_prevOpen",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN})}reset(){this._prevOpen=NaN,this._prevClose=NaN}push(e){const t=(e.open+e.high+e.low+e.close)/4,i=Number.isNaN(this._prevOpen)?(e.open+e.close)/2:(this._prevOpen+this._prevClose)/2,o=Math.max(e.high,i,t),r=Math.min(e.low,i,t);return this._prevOpen=i,this._prevClose=t,[{time:e.time,open:i,high:o,low:r,close:t,volume:e.volume}]}}class n{constructor(e){if(Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_edge",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),e.boxSize<=0)throw new Error("openalgo-charts: Renko boxSize must be > 0");this._box=e.boxSize}reset(){this._edge=NaN}push(e){const t=e.close,i=[];if(Number.isNaN(this._edge))return this._edge=Math.floor(t/this._box)*this._box,i;for(;t>=this._edge+this._box;){const t=this._edge,o=this._edge+this._box;i.push({time:e.time,open:t,high:o,low:t,close:o}),this._edge=o}for(;t<=this._edge-this._box;){const t=this._edge,o=this._edge-this._box;i.push({time:e.time,open:t,high:t,low:o,close:o}),this._edge=o}return i}}class h{constructor(e){if(Object.defineProperty(this,"_range",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_cur",{enumerable:!0,configurable:!0,writable:!0,value:null}),e.range<=0)throw new Error("openalgo-charts: range must be > 0");this._range=e.range}reset(){this._cur=null}push(e){const t=e.close,i=[];return null===this._cur?this._cur={time:e.time,open:t,high:t,low:t,close:t}:(this._cur.high=Math.max(this._cur.high,t),this._cur.low=Math.min(this._cur.low,t),this._cur.close=t,this._cur.time=e.time),this._cur.high-this._cur.low>=this._range&&(i.push(this._cur),this._cur=null),i}flush(){if(null===this._cur)return[];const e=this._cur;return this._cur=null,[e]}}class l{constructor(e={lines:3}){Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_lines",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._n=Math.max(1,e.lines)}reset(){this._lines=[]}push(e){const t=e.close;if(0===this._lines.length)return this._lines.push({open:t,close:t}),[];const i=this._lines.slice(-this._n);let o=-1/0,r=1/0;for(const e of i)o=Math.max(o,e.open,e.close),r=Math.min(r,e.open,e.close);const s=this._lines[this._lines.length-1];let n=null;return(t>o||t<r)&&(n={open:s.close,close:t}),null===n?[]:(this._lines.push(n),[{time:e.time,open:n.open,high:Math.max(n.open,n.close),low:Math.min(n.open,n.close),close:n.close}])}}class a{constructor(e){Object.defineProperty(this,"_period",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_sum",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),this._period=Math.max(1,Math.floor(e))}reset(){this._prevClose=NaN,this._sum=0,this._n=0,this._atr=NaN}push(e){const t=Number.isNaN(this._prevClose)?e.high-e.low:Math.max(e.high-e.low,Math.abs(e.high-this._prevClose),Math.abs(e.low-this._prevClose));this._prevClose=e.close,this._n<this._period?(this._sum+=t,this._n+=1,this._atr=this._sum/this._n):this._atr=(this._atr*(this._period-1)+t)/this._period}value(){return this._atr}}class u{constructor(e){Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_method",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_mode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fixedBox",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_percent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atrMult",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_top",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_bot",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0});const t=e.mode??"fixed";if(this._mode=t,this._reversal=Math.max(1,Math.floor(e.reversal??3)),this._method=e.method??"hl",this._fixedBox=e.boxSize??NaN,this._percent=e.percent??NaN,this._atrMult=e.atrMultiplier??1,this._atr=new a(e.atrPeriod??14),"fixed"===t&&!(this._fixedBox>0))throw new Error("openalgo-charts: P&F boxSize must be > 0");if("percent"===t&&!(this._percent>0))throw new Error("openalgo-charts: P&F percent must be > 0")}get boxSize(){return this._fixedBox}reset(){this._box=NaN,this._dir=0,this._top=NaN,this._bot=NaN,this._time=0,this._atr.reset()}_resolveBox(e){let t=NaN;if(t="fixed"===this._mode?this._fixedBox:"percent"===this._mode?Math.abs(e)*this._percent/100:this._atr.value()*this._atrMult,t>0&&Number.isFinite(t))return t;if(this._box>0)return this._box;const i=.01*Math.abs(e);return i>0?i:1}_column(){const e=this._box,t=this._bot*e,i=(this._top+1)*e,o=this._dir>=0;return{time:this._time,open:o?t:i,close:o?i:t,high:i,low:t,boxSize:e,boxes:this._top-this._bot+1}}push(e){"atr"===this._mode&&this._atr.push(e);const t="hl"===this._method,i=t?e.high:e.close,o=t?e.low:e.close;if(Number.isNaN(this._top)){this._box=this._resolveBox(e.close);const t=Math.floor(e.close/this._box);return this._top=t,this._bot=t,this._dir=0,this._time=e.time,[]}const r=Math.floor(i/this._box),s=Math.floor(o/this._box);if(0===this._dir){const t=r-this._top,i=this._bot-s;return t<=0&&i<=0||(t>=i?(this._top=r,this._dir=1):(this._bot=s,this._dir=-1),this._time=e.time),[]}const n=[];if(this._dir>0){if(r>this._top)this._top=r;else if(this._top-s>=this._reversal){const t=this._top*this._box;n.push(this._column()),this._box=this._resolveBox(o),this._top=Math.ceil(t/this._box)-1,this._bot=Math.floor(o/this._box),this._dir=-1,this._time=e.time}}else if(s<this._bot)this._bot=s;else if(r-this._bot>=this._reversal){const t=(this._bot+1)*this._box;n.push(this._column()),this._box=this._resolveBox(i),this._bot=Math.floor(t/this._box),this._top=Math.floor(i/this._box),this._dir=1,this._time=e.time}return n}flush(){return 0===this._dir||Number.isNaN(this._top)?[]:[this._column()]}}function c(e,t,i){return{time:e,open:t,high:t,low:t,close:t,volume:i?1:0}}class _{constructor(e){if(Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_ext",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevShoulder",{enumerable:!0,configurable:!0,writable:!0,value:-1/0}),Object.defineProperty(this,"_prevWaist",{enumerable:!0,configurable:!0,writable:!0,value:1/0}),Object.defineProperty(this,"_thick",{enumerable:!0,configurable:!0,writable:!0,value:!1}),e.reversal<=0)throw new Error("openalgo-charts: Kagi reversal must be > 0");this._reversal=e.reversal}reset(){this._dir=0,this._ext=NaN,this._prevShoulder=-1/0,this._prevWaist=1/0,this._thick=!1}push(e){const t=e.close;if(Number.isNaN(this._ext))return this._ext=t,[];const i=[];return this._dir>=0?t>this._ext?(this._ext=t,t>this._prevShoulder&&(this._thick=!0)):this._ext-t>=this._reversal&&(i.push(c(e.time,this._ext,this._thick)),this._prevShoulder=this._ext,this._dir=-1,this._ext=t):t<this._ext?(this._ext=t,t<this._prevWaist&&(this._thick=!1)):t-this._ext>=this._reversal&&(i.push(c(e.time,this._ext,this._thick)),this._prevWaist=this._ext,this._dir=1,this._ext=t),i}flush(){return Number.isNaN(this._ext)?[]:[c(0,this._ext,this._thick)]}}const b={abs:1,sqrt:1,ln:1,log:1,log10:1,exp:1,min:2,max:2,pow:2};class f extends Error{constructor(e,t){super(`openalgo-charts: ${e}`),Object.defineProperty(this,"position",{enumerable:!0,configurable:!0,writable:!0,value:t}),this.name="ExpressionError"}}const p=/[A-Za-z_]/,m=/[A-Za-z0-9_.:!#&]/;const d={"+":1,"-":1,"*":2,"/":2,"^":3};function v(e,t){let i=0;const o=()=>e[i];function r(){const e=o();if(void 0===e)throw new f("expression ended early",t.length);if("num"===e.t)return i++,{k:"num",v:e.v};if("sym"===e.t){i++;const r=e.v.toLowerCase();if(r in b&&"op"===o()?.t&&"("===o()?.v){i++;const s=[];if("op"!==o()?.t||")"!==o()?.v)for(;s.push(n(0)),"op"===o()?.t&&","===o()?.v;)i++;if("op"!==o()?.t||")"!==o()?.v)throw new f(`${r}( is not closed`,o()?.i??t.length);i++;const h=b[r];if(s.length!==h)throw new f(`${r}() takes ${h} argument${1===h?"":"s"}, got ${s.length}`,e.i);return{k:"fn",name:r,args:s}}return{k:"sym",name:e.v}}if("("===e.v){i++;const t=n(0);if("op"!==o()?.t||")"!==o()?.v)throw new f("( is not closed",e.i);return i++,t}if("-"===e.v)return i++,{k:"neg",a:s()};if("+"===e.v)return i++,s();throw new f(`unexpected "${e.v}"`,e.i)}function s(){return r()}function n(e){let t=s();for(;;){const r=o();if(void 0===r||"op"!==r.t||!(r.v in d))break;const s=d[r.v];if(s<e)break;i++;const h=n("^"===r.v?s:s+1);t={k:"bin",op:r.v,a:t,b:h}}return t}const h=n(0);if(i<e.length)throw new f(`unexpected "${e[i].v}"`,e[i].i);return h}function g(e,t){if("sym"!==e.k)if("neg"!==e.k){if("bin"===e.k)return g(e.a,t),void g(e.b,t);if("fn"===e.k)for(const i of e.args)g(i,t)}else g(e.a,t);else t.includes(e.name)||t.push(e.name)}function x(e){const t=function(e){const t=[];let i=0;for(;i<e.length;){const o=e[i];if(" "!==o&&"\t"!==o&&"\n"!==o&&"\r"!==o){if("'"===o||'"'===o){const r=e.indexOf(o,i+1);if(-1===r)throw new f(`unclosed ${o} in expression`,i);const s=e.slice(i+1,r);if(""===s)throw new f("empty quoted symbol",i);t.push({t:"sym",v:s,i:i}),i=r+1;continue}if(/[0-9]/.test(o)||"."===o&&/[0-9]/.test(e[i+1]??"")){let o=i;for(;o<e.length&&/[0-9.]/.test(e[o]);)o++;const r=e.slice(i,o),s=Number(r);if(!Number.isFinite(s))throw new f(`"${r}" is not a number`,i);t.push({t:"num",v:s,i:i}),i=o;continue}if(p.test(o)){let o=i;for(;o<e.length&&m.test(e[o]);)o++;let r=e.slice(i,o);for(;r.endsWith(":");)r=r.slice(0,-1),o--;t.push({t:"sym",v:r,i:i}),i=o;continue}if("+-*/^(),".includes(o))t.push({t:"op",v:o,i:i}),i++;else if("×"!==o)if("÷"!==o){if("−"!==o)throw new f(`unexpected "${o}" in expression`,i);t.push({t:"op",v:"-",i:i}),i++}else t.push({t:"op",v:"/",i:i}),i++;else t.push({t:"op",v:"*",i:i}),i++}else i++}return t}(e);if(0===t.length)throw new f("expression is empty",0);const i=v(t,e),o=[];if(g(i,o),0===o.length)throw new f("expression names no symbol",0);return{source:e,symbols:o,ast:i}}function w(e){try{return"sym"===x(e).ast.k}catch{return!1}}const N={lo:NaN,hi:NaN},M=e=>!Number.isFinite(e.lo)||!Number.isFinite(e.hi),y=e=>({lo:Math.min(...e),hi:Math.max(...e)});function P(e,t){if(t.lo!==t.hi)return N;const i=t.lo,o=[Math.pow(e.lo,i),Math.pow(e.hi,i)];return e.lo<0&&e.hi>0&&Number.isInteger(i)&&i%2==0&&o.push(0),y(o)}function O(e,t){return y([t(e.lo),t(e.hi)])}function j(e,t){switch(e.k){case"num":return{lo:e.v,hi:e.v};case"sym":return t(e.name)??N;case"neg":{const i=j(e.a,t);return M(i)?N:{lo:-i.hi,hi:-i.lo}}case"bin":{const i=j(e.a,t),o=j(e.b,t);if(M(i)||M(o))return N;switch(e.op){case"+":return{lo:i.lo+o.lo,hi:i.hi+o.hi};case"-":return{lo:i.lo-o.hi,hi:i.hi-o.lo};case"*":return function(e,t){return y([e.lo*t.lo,e.lo*t.hi,e.hi*t.lo,e.hi*t.hi])}(i,o);case"/":return function(e,t){return t.lo<=0&&t.hi>=0?N:y([e.lo/t.lo,e.lo/t.hi,e.hi/t.lo,e.hi/t.hi])}(i,o);case"^":return P(i,o)}return N}case"fn":{const i=e.args.map(e=>j(e,t));if(i.some(M))return N;const[o,r]=i;switch(e.name){case"abs":return function(e){return e.lo>=0?e:e.hi<=0?{lo:-e.hi,hi:-e.lo}:{lo:0,hi:Math.max(-e.lo,e.hi)}}(o);case"sqrt":return o.lo<0?N:O(o,Math.sqrt);case"ln":case"log":return o.lo<=0?N:O(o,Math.log);case"log10":return o.lo<=0?N:O(o,Math.log10);case"exp":return O(o,Math.exp);case"min":return{lo:Math.min(o.lo,r.lo),hi:Math.min(o.hi,r.hi)};case"max":return{lo:Math.max(o.lo,r.lo),hi:Math.max(o.hi,r.hi)};case"pow":return P(o,r)}return N}}}function k(e,t,i={}){const o="interval"===i.ohlc,r=i.primary??e.symbols[0],s=t[r];if(void 0===s||0===s.length)return[];const n=new Map;for(const i of e.symbols){if(i===r)continue;const e=t[i];if(void 0===e)return[];const o=new Map;for(const t of e)o.set(t.time,t);n.set(i,o)}const h=[],l=new Map;for(const t of s){l.clear(),l.set(r,t);let i=!0;for(const[e,o]of n){const r=o.get(t.time);if(void 0===r){i=!1;break}l.set(e,r)}if(!i)continue;const s=e=>t=>{const i=l.get(t);return void 0===i?null:{lo:i[e],hi:i[e]}},a=j(e.ast,s("open")),u=j(e.ast,s("close"));if(M(a)||M(u))continue;let c=Math.max(a.hi,u.hi),_=Math.min(a.lo,u.lo);if(o){const t=j(e.ast,e=>{const t=l.get(e);return void 0===t?null:{lo:t.low,hi:t.high}});if(M(t))continue;c=Math.max(c,t.hi),_=Math.min(_,t.lo)}h.push({time:t.time,open:a.lo,high:c,low:_,close:u.lo})}return h}const S="transform";let C=!1;function z(){C||(C=!0,e("point-figure",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,o,r,s,n,h)=>i(e,t,o,r,s,n,h.plotHeight),extents:e=>({min:e.low,max:e.high})}),e("kagi",{defaultStyle:{thickColor:"#26a69a",thinColor:"#ef5350"},isPriceSeries:!0,draw:(e,t,i,o,r,s)=>function(e,t,i,o,r){if(t.length<2)return;const s=r.thickColor??"#26a69a",n=r.thinColor??"#ef5350",h=Math.max(2,Math.round(2.5*o)),l=Math.max(1,Math.round(o));e.save();for(let r=1;r<t.length;r++){const a=t[r-1],u=t[r],c=(u.bar.volume??0)>=1;e.strokeStyle=c?s:n,e.lineWidth=c?h:l;const _=a.x*o,b=u.x*o,f=i(a.bar.close)*o,p=i(u.bar.close)*o;e.beginPath(),e.moveTo(_,f),e.lineTo(b,f),e.lineTo(b,p),e.stroke()}e.restore()}(e,t,i,r,s),extents:e=>({min:e.close,max:e.close})}))}z();export{f as ExpressionError,s as HeikinAshiTransform,_ as KagiTransform,l as LineBreakTransform,u as PointFigureTransform,h as RangeBarsTransform,n as RenkoTransform,S as TRANSFORM_TIER,o as ensureIncreasingTimes,k as evaluateExpression,w as isPlainSymbol,x as parseExpression,z as registerTransformChartTypes,r as runTransform};
|
|
1
|
+
import{registerChartType as e}from"./openalgo-charts.mjs";function t(e,t,i){const o=e.boxSize;return"number"==typeof o&&o>0?o:void 0!==t.boxSize&&t.boxSize>0?t.boxSize:i}function i(e,i,o,s,r,n,h=1/0){if(0===i.length)return;const l=function(e){let t=1/0;for(const{bar:i}of e){const e=i.high-i.low;e>0&&e<t&&(t=e)}return Number.isFinite(t)?t:0}(i),a=Math.max(3,Math.floor(s*r*.7))/2,u=h===1/0?1/0:h*r;e.save(),e.lineWidth=Math.max(1,Math.floor(r));for(const{x:s,bar:h}of i){const i=t(h,n,l);if(!(i>0))continue;const c=Math.round(h.low/i),b=Math.round(h.high/i)-1;if(b<c)continue;if(b-c+1>4e3)continue;const _=h.close>=h.open;e.strokeStyle=_?n.upColor??"#26a69a":n.downColor??"#ef5350";const f=s*r;for(let t=c;t<=b;t++){const s=o((t+1)*i)*r,n=o(t*i)*r;n<0||s>u||(e.beginPath(),_?(e.moveTo(f-a,s),e.lineTo(f+a,n),e.moveTo(f+a,s),e.lineTo(f-a,n)):e.ellipse(f,(s+n)/2,a,Math.abs(n-s)/2,0,0,2*Math.PI),e.stroke())}}e.restore()}function o(e){let t=-1/0;const i=[];for(const o of e){let e=o.time;e<=t&&(e=t+1),t=e,i.push(e===o.time?o:{...o,time:e})}return i}function s(e,t){e.reset();const i=[];for(const o of t)i.push(...e.push(o));return e.flush&&i.push(...e.flush()),o(i)}class r{constructor(){Object.defineProperty(this,"_prevOpen",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN})}reset(){this._prevOpen=NaN,this._prevClose=NaN}push(e){const t=(e.open+e.high+e.low+e.close)/4,i=Number.isNaN(this._prevOpen)?(e.open+e.close)/2:(this._prevOpen+this._prevClose)/2,o=Math.max(e.high,i,t),s=Math.min(e.low,i,t);return this._prevOpen=i,this._prevClose=t,[{time:e.time,open:i,high:o,low:s,close:t,volume:e.volume,oi:e.oi}]}}class n{constructor(e){if(Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_edge",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),e.boxSize<=0)throw new Error("openalgo-charts: Renko boxSize must be > 0");this._box=e.boxSize}reset(){this._edge=NaN}push(e){const t=e.close,i=[];if(Number.isNaN(this._edge))return this._edge=Math.floor(t/this._box)*this._box,i;for(;t>=this._edge+this._box;){const t=this._edge,o=this._edge+this._box;i.push({time:e.time,open:t,high:o,low:t,close:o}),this._edge=o}for(;t<=this._edge-this._box;){const t=this._edge,o=this._edge-this._box;i.push({time:e.time,open:t,high:t,low:o,close:o}),this._edge=o}return i}}class h{constructor(e){if(Object.defineProperty(this,"_range",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_cur",{enumerable:!0,configurable:!0,writable:!0,value:null}),e.range<=0)throw new Error("openalgo-charts: range must be > 0");this._range=e.range}reset(){this._cur=null}push(e){const t=e.close,i=[];return null===this._cur?this._cur={time:e.time,open:t,high:t,low:t,close:t}:(this._cur.high=Math.max(this._cur.high,t),this._cur.low=Math.min(this._cur.low,t),this._cur.close=t,this._cur.time=e.time),this._cur.high-this._cur.low>=this._range&&(i.push(this._cur),this._cur=null),i}flush(){if(null===this._cur)return[];const e=this._cur;return this._cur=null,[e]}}class l{constructor(e={lines:3}){Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_lines",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._n=Math.max(1,e.lines)}reset(){this._lines=[]}push(e){const t=e.close;if(0===this._lines.length)return this._lines.push({open:t,close:t}),[];const i=this._lines.slice(-this._n);let o=-1/0,s=1/0;for(const e of i)o=Math.max(o,e.open,e.close),s=Math.min(s,e.open,e.close);const r=this._lines[this._lines.length-1];let n=null;return(t>o||t<s)&&(n={open:r.close,close:t}),null===n?[]:(this._lines.push(n),[{time:e.time,open:n.open,high:Math.max(n.open,n.close),low:Math.min(n.open,n.close),close:n.close}])}}class a{constructor(e){Object.defineProperty(this,"_period",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_sum",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),this._period=Math.max(1,Math.floor(e))}reset(){this._prevClose=NaN,this._sum=0,this._n=0,this._atr=NaN}push(e){const t=Number.isNaN(this._prevClose)?e.high-e.low:Math.max(e.high-e.low,Math.abs(e.high-this._prevClose),Math.abs(e.low-this._prevClose));this._prevClose=e.close,this._n<this._period?(this._sum+=t,this._n+=1,this._atr=this._sum/this._n):this._atr=(this._atr*(this._period-1)+t)/this._period}value(){return this._atr}}class u{constructor(e){Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_method",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_mode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fixedBox",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_percent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atrMult",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_top",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_bot",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0});const t=e.mode??"fixed";if(this._mode=t,this._reversal=Math.max(1,Math.floor(e.reversal??3)),this._method=e.method??"hl",this._fixedBox=e.boxSize??NaN,this._percent=e.percent??NaN,this._atrMult=e.atrMultiplier??1,this._atr=new a(e.atrPeriod??14),"fixed"===t&&!(this._fixedBox>0))throw new Error("openalgo-charts: P&F boxSize must be > 0");if("percent"===t&&!(this._percent>0))throw new Error("openalgo-charts: P&F percent must be > 0")}get boxSize(){return this._fixedBox}reset(){this._box=NaN,this._dir=0,this._top=NaN,this._bot=NaN,this._time=0,this._atr.reset()}_resolveBox(e){let t=NaN;if(t="fixed"===this._mode?this._fixedBox:"percent"===this._mode?Math.abs(e)*this._percent/100:this._atr.value()*this._atrMult,t>0&&Number.isFinite(t))return t;if(this._box>0)return this._box;const i=.01*Math.abs(e);return i>0?i:1}_column(){const e=this._box,t=this._bot*e,i=(this._top+1)*e,o=this._dir>=0;return{time:this._time,open:o?t:i,close:o?i:t,high:i,low:t,boxSize:e,boxes:this._top-this._bot+1}}push(e){"atr"===this._mode&&this._atr.push(e);const t="hl"===this._method,i=t?e.high:e.close,o=t?e.low:e.close;if(Number.isNaN(this._top)){this._box=this._resolveBox(e.close);const t=Math.floor(e.close/this._box);return this._top=t,this._bot=t,this._dir=0,this._time=e.time,[]}const s=Math.floor(i/this._box),r=Math.floor(o/this._box);if(0===this._dir){const t=s-this._top,i=this._bot-r;return t<=0&&i<=0||(t>=i?(this._top=s,this._dir=1):(this._bot=r,this._dir=-1),this._time=e.time),[]}const n=[];if(this._dir>0){if(s>this._top)this._top=s;else if(this._top-r>=this._reversal){const t=this._top*this._box;n.push(this._column()),this._box=this._resolveBox(o),this._top=Math.ceil(t/this._box)-1,this._bot=Math.floor(o/this._box),this._dir=-1,this._time=e.time}}else if(r<this._bot)this._bot=r;else if(s-this._bot>=this._reversal){const t=(this._bot+1)*this._box;n.push(this._column()),this._box=this._resolveBox(i),this._bot=Math.floor(t/this._box),this._top=Math.floor(i/this._box),this._dir=1,this._time=e.time}return n}flush(){return 0===this._dir||Number.isNaN(this._top)?[]:[this._column()]}}function c(e,t,i){return{time:e,open:t,high:t,low:t,close:t,volume:i?1:0}}class b{constructor(e){if(Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_ext",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevShoulder",{enumerable:!0,configurable:!0,writable:!0,value:-1/0}),Object.defineProperty(this,"_prevWaist",{enumerable:!0,configurable:!0,writable:!0,value:1/0}),Object.defineProperty(this,"_thick",{enumerable:!0,configurable:!0,writable:!0,value:!1}),e.reversal<=0)throw new Error("openalgo-charts: Kagi reversal must be > 0");this._reversal=e.reversal}reset(){this._dir=0,this._ext=NaN,this._prevShoulder=-1/0,this._prevWaist=1/0,this._thick=!1}push(e){const t=e.close;if(Number.isNaN(this._ext))return this._ext=t,[];const i=[];return this._dir>=0?t>this._ext?(this._ext=t,t>this._prevShoulder&&(this._thick=!0)):this._ext-t>=this._reversal&&(i.push(c(e.time,this._ext,this._thick)),this._prevShoulder=this._ext,this._dir=-1,this._ext=t):t<this._ext?(this._ext=t,t<this._prevWaist&&(this._thick=!1)):t-this._ext>=this._reversal&&(i.push(c(e.time,this._ext,this._thick)),this._prevWaist=this._ext,this._dir=1,this._ext=t),i}flush(){return Number.isNaN(this._ext)?[]:[c(0,this._ext,this._thick)]}}const _={abs:1,sqrt:1,ln:1,log:1,log10:1,exp:1,min:2,max:2,pow:2};class f extends Error{constructor(e,t){super(`openalgo-charts: ${e}`),Object.defineProperty(this,"position",{enumerable:!0,configurable:!0,writable:!0,value:t}),this.name="ExpressionError"}}const p=/[A-Za-z_]/,m=/[A-Za-z0-9_.:!#&]/;const d={"+":1,"-":1,"*":2,"/":2,"^":3};function v(e,t){let i=0;const o=()=>e[i];function s(){const e=o();if(void 0===e)throw new f("expression ended early",t.length);if("num"===e.t)return i++,{k:"num",v:e.v};if("sym"===e.t){i++;const s=e.v.toLowerCase();if(s in _&&"op"===o()?.t&&"("===o()?.v){i++;const r=[];if("op"!==o()?.t||")"!==o()?.v)for(;r.push(n(0)),"op"===o()?.t&&","===o()?.v;)i++;if("op"!==o()?.t||")"!==o()?.v)throw new f(`${s}( is not closed`,o()?.i??t.length);i++;const h=_[s];if(r.length!==h)throw new f(`${s}() takes ${h} argument${1===h?"":"s"}, got ${r.length}`,e.i);return{k:"fn",name:s,args:r}}return{k:"sym",name:e.v}}if("("===e.v){i++;const t=n(0);if("op"!==o()?.t||")"!==o()?.v)throw new f("( is not closed",e.i);return i++,t}if("-"===e.v)return i++,{k:"neg",a:r()};if("+"===e.v)return i++,r();throw new f(`unexpected "${e.v}"`,e.i)}function r(){return s()}function n(e){let t=r();for(;;){const s=o();if(void 0===s||"op"!==s.t||!(s.v in d))break;const r=d[s.v];if(r<e)break;i++;const h=n("^"===s.v?r:r+1);t={k:"bin",op:s.v,a:t,b:h}}return t}const h=n(0);if(i<e.length)throw new f(`unexpected "${e[i].v}"`,e[i].i);return h}function g(e,t){if("sym"!==e.k)if("neg"!==e.k){if("bin"===e.k)return g(e.a,t),void g(e.b,t);if("fn"===e.k)for(const i of e.args)g(i,t)}else g(e.a,t);else t.includes(e.name)||t.push(e.name)}function x(e){const t=function(e){const t=[];let i=0;for(;i<e.length;){const o=e[i];if(" "!==o&&"\t"!==o&&"\n"!==o&&"\r"!==o){if("'"===o||'"'===o){const s=e.indexOf(o,i+1);if(-1===s)throw new f(`unclosed ${o} in expression`,i);const r=e.slice(i+1,s);if(""===r)throw new f("empty quoted symbol",i);t.push({t:"sym",v:r,i:i}),i=s+1;continue}if(/[0-9]/.test(o)||"."===o&&/[0-9]/.test(e[i+1]??"")){let o=i;for(;o<e.length&&/[0-9.]/.test(e[o]);)o++;const s=e.slice(i,o),r=Number(s);if(!Number.isFinite(r))throw new f(`"${s}" is not a number`,i);t.push({t:"num",v:r,i:i}),i=o;continue}if(p.test(o)){let o=i;for(;o<e.length&&m.test(e[o]);)o++;let s=e.slice(i,o);for(;s.endsWith(":");)s=s.slice(0,-1),o--;t.push({t:"sym",v:s,i:i}),i=o;continue}if("+-*/^(),".includes(o))t.push({t:"op",v:o,i:i}),i++;else if("×"!==o)if("÷"!==o){if("−"!==o)throw new f(`unexpected "${o}" in expression`,i);t.push({t:"op",v:"-",i:i}),i++}else t.push({t:"op",v:"/",i:i}),i++;else t.push({t:"op",v:"*",i:i}),i++}else i++}return t}(e);if(0===t.length)throw new f("expression is empty",0);const i=v(t,e),o=[];if(g(i,o),0===o.length)throw new f("expression names no symbol",0);return{source:e,symbols:o,ast:i}}function w(e){try{return"sym"===x(e).ast.k}catch{return!1}}const N={lo:NaN,hi:NaN},M=e=>!Number.isFinite(e.lo)||!Number.isFinite(e.hi),y=e=>({lo:Math.min(...e),hi:Math.max(...e)});function P(e,t){if(t.lo!==t.hi)return N;const i=t.lo,o=[Math.pow(e.lo,i),Math.pow(e.hi,i)];return e.lo<0&&e.hi>0&&Number.isInteger(i)&&i%2==0&&o.push(0),y(o)}function O(e,t){return y([t(e.lo),t(e.hi)])}function j(e,t){switch(e.k){case"num":return{lo:e.v,hi:e.v};case"sym":return t(e.name)??N;case"neg":{const i=j(e.a,t);return M(i)?N:{lo:-i.hi,hi:-i.lo}}case"bin":{const i=j(e.a,t),o=j(e.b,t);if(M(i)||M(o))return N;switch(e.op){case"+":return{lo:i.lo+o.lo,hi:i.hi+o.hi};case"-":return{lo:i.lo-o.hi,hi:i.hi-o.lo};case"*":return function(e,t){return y([e.lo*t.lo,e.lo*t.hi,e.hi*t.lo,e.hi*t.hi])}(i,o);case"/":return function(e,t){return t.lo<=0&&t.hi>=0?N:y([e.lo/t.lo,e.lo/t.hi,e.hi/t.lo,e.hi/t.hi])}(i,o);case"^":return P(i,o)}return N}case"fn":{const i=e.args.map(e=>j(e,t));if(i.some(M))return N;const[o,s]=i;switch(e.name){case"abs":return function(e){return e.lo>=0?e:e.hi<=0?{lo:-e.hi,hi:-e.lo}:{lo:0,hi:Math.max(-e.lo,e.hi)}}(o);case"sqrt":return o.lo<0?N:O(o,Math.sqrt);case"ln":case"log":return o.lo<=0?N:O(o,Math.log);case"log10":return o.lo<=0?N:O(o,Math.log10);case"exp":return O(o,Math.exp);case"min":return{lo:Math.min(o.lo,s.lo),hi:Math.min(o.hi,s.hi)};case"max":return{lo:Math.max(o.lo,s.lo),hi:Math.max(o.hi,s.hi)};case"pow":return P(o,s)}return N}}}function k(e,t,i={}){const o="interval"===i.ohlc,s=i.primary??e.symbols[0],r=t[s];if(void 0===r||0===r.length)return[];const n=new Map;for(const i of e.symbols){if(i===s)continue;const e=t[i];if(void 0===e)return[];const o=new Map;for(const t of e)o.set(t.time,t);n.set(i,o)}const h=[],l=new Map;for(const t of r){l.clear(),l.set(s,t);let r=!0;for(const[e,i]of n){const o=i.get(t.time);if(void 0===o){r=!1;break}l.set(e,o)}if(!r)continue;const a=e=>t=>{const i=l.get(t);return void 0===i?null:{lo:i[e],hi:i[e]}},u=j(e.ast,a("open")),c=j(e.ast,a("close"));if(M(u)||M(c))continue;let b=Math.max(u.hi,c.hi),_=Math.min(u.lo,c.lo);if(o){const t=j(e.ast,e=>{const t=l.get(e);return void 0===t?null:{lo:t.low,hi:t.high}});if(M(t))continue;b=Math.max(b,t.hi),_=Math.min(_,t.lo)}const f={time:t.time,open:u.lo,high:b,low:_,close:c.lo};if("sum"===i.volume){let t=0;for(const i of e.symbols){const e=l.get(i)?.volume;if(void 0===e||!Number.isFinite(e)||e<0){t=NaN;break}t+=e}Number.isFinite(t)&&(f.volume=t)}h.push(f)}return h}const S="transform";let C=!1;function z(){C||(C=!0,e("point-figure",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,o,s,r,n,h)=>i(e,t,o,s,r,n,h.plotHeight),extents:e=>({min:e.low,max:e.high})}),e("kagi",{defaultStyle:{thickColor:"#26a69a",thinColor:"#ef5350"},isPriceSeries:!0,draw:(e,t,i,o,s,r)=>function(e,t,i,o,s){if(t.length<2)return;const r=s.thickColor??"#26a69a",n=s.thinColor??"#ef5350",h=Math.max(2,Math.round(2.5*o)),l=Math.max(1,Math.round(o));e.save();for(let s=1;s<t.length;s++){const a=t[s-1],u=t[s],c=(u.bar.volume??0)>=1;e.strokeStyle=c?r:n,e.lineWidth=c?h:l;const b=a.x*o,_=u.x*o,f=i(a.bar.close)*o,p=i(u.bar.close)*o;e.beginPath(),e.moveTo(b,f),e.lineTo(_,f),e.lineTo(_,p),e.stroke()}e.restore()}(e,t,i,s,r),extents:e=>({min:e.close,max:e.close})}))}z();export{f as ExpressionError,r as HeikinAshiTransform,b as KagiTransform,l as LineBreakTransform,u as PointFigureTransform,h as RangeBarsTransform,n as RenkoTransform,S as TRANSFORM_TIER,o as ensureIncreasingTimes,k as evaluateExpression,w as isPlainSymbol,x as parseExpression,z as registerTransformChartTypes,s as runTransform};
|
|
2
2
|
//# sourceMappingURL=openalgo-charts.transform.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openalgo-charts.transform.mjs","sources":["../src/render/point-figure.ts","../src/transform/transform.ts","../src/transform/heikin-ashi.ts","../src/transform/renko.ts","../src/transform/range-bars.ts","../src/transform/line-break.ts","../src/transform/point-figure.ts","../src/transform/kagi.ts","../src/transform/expression.ts","../src/transform/index.ts","../src/render/kagi.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["boxOf","bar","style","inferred","own","boxSize","undefined","drawPointFigure","ctx","items","toY","barSpacing","dpr","plotHeight","Infinity","length","min","h","high","low","Number","isFinite","inferBox","r","Math","max","floor","bottom","save","lineWidth","x","box","k0","round","k1","up","close","open","strokeStyle","upColor","downColor","cx","k","yTop","yBot","beginPath","moveTo","lineTo","ellipse","abs","PI","stroke","restore","ensureIncreasingTimes","bars","prev","out","b","t","time","push","runTransform","transform","reset","flush","HeikinAshiTransform","constructor","Object","defineProperty","this","NaN","_prevOpen","_prevClose","haClose","haOpen","isNaN","haHigh","haLow","volume","RenkoTransform","options","Error","_box","_edge","p","lo","hi","RangeBarsTransform","range","_range","_cur","c","LineBreakTransform","lines","_n","_lines","recent","slice","maxHigh","minLow","l","last","WilderAtr","period","_period","_sum","_atr","tr","value","PointFigureTransform","mode","_mode","_reversal","reversal","_method","method","_fixedBox","_percent","percent","_atrMult","atrMultiplier","atrPeriod","_dir","_top","_bot","_time","_resolveBox","price","pct","_column","boxes","useHl","upPrice","downPrice","hb","lb","down","boundary","ceil","vertex","thick","KagiTransform","_ext","_prevShoulder","_prevWaist","_thick","FN_ARITY","sqrt","ln","log","log10","exp","pow","ExpressionError","message","position","super","name","SYM_START","SYM_BODY","BP","parse","toks","src","peek","primary","v","fn","toLowerCase","args","expr","i","want","inner","a","unary","left","bp","right","op","collect","n","into","includes","parseExpression","source","end","indexOf","test","j","raw","endsWith","tokenize","ast","symbols","isPlainSymbol","NA","bad","span","xs","e","isInteger","mono","f","evalNode","leg","mul","div","map","some","absIv","evaluateExpression","legs","wantRange","ohlc","primaryName","grid","index","Map","s","rows","m","set","cur","pb","clear","whole","get","pick","field","TRANSFORM_TIER","_registered","registerTransformChartTypes","registerChartType","defaultStyle","isPriceSeries","draw","g","bs","rc","extents","thickColor","thinColor","_bs","thickW","thinW","px","py","cy","drawKagi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openalgo-charts.transform.mjs","sources":["../src/render/point-figure.ts","../src/transform/transform.ts","../src/transform/heikin-ashi.ts","../src/transform/renko.ts","../src/transform/range-bars.ts","../src/transform/line-break.ts","../src/transform/point-figure.ts","../src/transform/kagi.ts","../src/transform/expression.ts","../src/transform/index.ts","../src/render/kagi.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["boxOf","bar","style","inferred","own","boxSize","undefined","drawPointFigure","ctx","items","toY","barSpacing","dpr","plotHeight","Infinity","length","min","h","high","low","Number","isFinite","inferBox","r","Math","max","floor","bottom","save","lineWidth","x","box","k0","round","k1","up","close","open","strokeStyle","upColor","downColor","cx","k","yTop","yBot","beginPath","moveTo","lineTo","ellipse","abs","PI","stroke","restore","ensureIncreasingTimes","bars","prev","out","b","t","time","push","runTransform","transform","reset","flush","HeikinAshiTransform","constructor","Object","defineProperty","this","NaN","_prevOpen","_prevClose","haClose","haOpen","isNaN","haHigh","haLow","volume","oi","RenkoTransform","options","Error","_box","_edge","p","lo","hi","RangeBarsTransform","range","_range","_cur","c","LineBreakTransform","lines","_n","_lines","recent","slice","maxHigh","minLow","l","last","WilderAtr","period","_period","_sum","_atr","tr","value","PointFigureTransform","mode","_mode","_reversal","reversal","_method","method","_fixedBox","_percent","percent","_atrMult","atrMultiplier","atrPeriod","_dir","_top","_bot","_time","_resolveBox","price","pct","_column","boxes","useHl","upPrice","downPrice","hb","lb","down","boundary","ceil","vertex","thick","KagiTransform","_ext","_prevShoulder","_prevWaist","_thick","FN_ARITY","sqrt","ln","log","log10","exp","pow","ExpressionError","message","position","super","name","SYM_START","SYM_BODY","BP","parse","toks","src","peek","primary","v","fn","toLowerCase","args","expr","i","want","inner","a","unary","left","bp","right","op","collect","n","into","includes","parseExpression","source","end","indexOf","test","j","raw","endsWith","tokenize","ast","symbols","isPlainSymbol","NA","bad","span","xs","e","isInteger","mono","f","evalNode","leg","mul","div","map","some","absIv","evaluateExpression","legs","wantRange","ohlc","primaryName","grid","index","Map","s","rows","m","set","cur","pb","clear","whole","get","pick","field","result","symbol","amount","TRANSFORM_TIER","_registered","registerTransformChartTypes","registerChartType","defaultStyle","isPriceSeries","draw","g","bs","rc","extents","thickColor","thinColor","_bs","thickW","thinW","px","py","cy","drawKagi"],"mappings":"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"}
|