webpackJsonp([2,4],{344:function(t,e,i){"use strict";var o=i(323),n=i(345),r=i(351),s=i(353),a=i(354),l=i(349),c=i(355),u=function(t){this._trading=t};u.prototype.id=function(){return"Paper"},u.prototype.trading=function(){return this._trading},u.prototype.createAccountManager=function(t){return new r(t,this)},u.prototype.connect=function(){this._connection=new n(this)},u.prototype.disconnect=function(){this._connection.disconnect(),delete this._connection},u.prototype.connection=function(){return this._connection||this.connect(),this._connection},u.prototype.registerChartWidget=function(t){return this.connection().registerChartWidget(t)},u.prototype.unregisterChartWidget=function(t){return this._connection.unregisterChartWidget(t)},u.prototype.createProfitLossEmitter=function(t){return this._connection.createProfitLossEmitter(t)},u.prototype.buttonDropdownOptions=function(t){var e=this,i="BP Trading Dropdown",n=e.connection().connectStatus()==o.CONNECTED,r=[];if(n){var e=this;r=[{title:$.t("Show Buy/Sell Panel"),icon:{image:"url('"+TradingView.wrapUrl("images/dialogs/checkbox.png")+"')",offset:e.trading().hideFloatingPanel.value()?"":"0 -16px"},action:function(){var t=e.trading().hideFloatingPanel.value();e.trading()._trackPaperEvent(i,"Show BS Panel",t?"Check":"Uncheck"),e.trading().hideFloatingPanel.setValue(!t)}},{title:$.t("Show Active Orders Only"),icon:{image:"url('"+TradingView.wrapUrl("images/dialogs/checkbox.png")+"')",offset:e.trading().hideCompletedOrders.value()?"0 -16px":""},action:function(){var t=e.trading().hideCompletedOrders.value();e.trading()._trackPaperEvent(i,"Show Active Orders",t?"Uncheck":"Check"),e.trading().hideCompletedOrders.setValue(!t)}},{title:$.t("Journal..."),action:function(){e.trading()._trackPaperEvent(i,"Journal"),runOrSignIn(e.showJournalDialog.bind(e),{source:"Trading show journal"})}},{title:$.t("Account History..."),action:function(){e.trading()._trackPaperEvent(i,"Account History"),runOrSignIn(e.showAccountHistoryDialog.bind(e),{source:"Trading account history"})}},{separator:!0},{title:$.t("Reset Paper Trading Account..."),action:function(){e.trading()._trackPaperEvent(i,"Reset Account"),runOrSignIn(e._resetDialog.bind(e),{source:"Trading reset account"})}},{separator:!0},{title:$.t("Trading Properties..."),action:function(){e.trading()._trackPaperEvent(i,"Trading Properties"),e.trading().showTradingProperties()}},{separator:!0},{title:$.t("Disconnect"),action:function(){e.trading()._trackPaperEvent(i,"Disconnect"),e.connection().disconnect()}}]}else r=[{title:$.t("Connect"),action:function(){e.trading()._trackPaperEvent(i,"Connect"),e.connection().connect()}}];return TradingView.Q16("CQG")&&(r.push({separator:!0}),r.push({title:$.t("Select Broker"),action:function(){e.trading()._trackPaperEvent(i,"Select Broker"),e.trading().selectBroker()}})),r},u.prototype._resetDialog=function(){var t=this,e=$.t("Reset Paper Trading Account");$82.createModalDialog(e,{addClass:"paper-trading-reset"});var i=$82.modalDialog,o=i.find("._tv-dialog-content"),n=$('
').appendTo(o);n.html('
Delete all your positions, orders and history and set balance to specific value.
This action cannot be undone.
');var r=n.find(".balance");r.val("100000"),r.TVTicker({min:0,step:1e3}),r.focus(),r.select(),$('
').appendTo(o),o.find("input.cancel").on("click",function(){$82.destroy()}),o.find("input.ok").on("click",function(){var e=+r.val().trim();return!isFinite(e)||0>e?(r.val("100000"),r.focus(),void r.select()):(e||(e=void 0),t.connection().resetAccount(e),void $82.destroy())}),$82.applyHandlers(),$82.positionDialog()},u.prototype.showJournalDialog=function(){a.get(this).open({tab:"journal"})},u.prototype.showAccountHistoryDialog=function(){a.get(this).open({tab:"history"})},u.prototype.supportFloatingPanel=function(){return!0},u.prototype.getOrderDialog=function(){var t=this;return{open:function(e){return t.connection().connectStatus()!=o.CONNECTED?(t.trading().onOpenBottomWidgetBar.fire(),void t.trading().onNeedAttention.fire()):s.get(t).open(e)}}},u.prototype.getPositionDialog=function(){return l.get(this)},u.prototype.getUntradableDialog=function(){return c.get()},u.prototype.chartContextMenuActions=function(t,e){var i=this,o=NaN,n=NaN,r=1,s="",a="",l="",c=!1;if(t){a=t.proSymbol(),l=(t.symbolInfo()||{}).name||a;var u=t.priceScale();if(e){if(o=u.coordinateToPrice(e.localY),u.isPercentage()){var d=t.firstValue();o=void 0!==d?u.priceRange().convertFromPercent(o,d):null}s=t.formatter().format(o)}var p=t.bars().last();p&&(n=p.value[TradingView.CLOSE_PLOT]),c=!!(t.symbolInfo()||{}).is_tradable;var h=t.symbolInfo();r=i.connection().suggestedQty().value(a,{symbolType:h&&h.type})}var f=[];if(c)if(n>o){var _=new TradingView.Action({text:$.t("Buy ")+l+$.t(" Limit ")+TradingView.abbreviatedNumber(r)+" @ "+s,enabled:c});c&&_.callbacks().subscribe(null,function(){runOrSignIn(function(){i.getOrderDialog().open({symbol:a,price:+s||o,side:"buy",type:"limit",qty:r,noConfirm:!0})},{source:"Trading buy limit from context menu"})}),f.push(_);var _=new TradingView.Action({text:$.t("Sell ")+l+$.t(" Stop ")+TradingView.abbreviatedNumber(r)+" @ "+s,enabled:c});c&&_.callbacks().subscribe(null,function(){runOrSignIn(function(){i.getOrderDialog().open({symbol:a,price:+s||o,side:"sell",type:"stop",qty:r,noConfirm:!0})},{source:"Trading sell stop from context menu"})}),f.push(_)}else if(o>n){var _=new TradingView.Action({text:$.t("Sell ")+l+$.t(" Limit ")+TradingView.abbreviatedNumber(r)+" @ "+s,enabled:c});c&&_.callbacks().subscribe(null,function(){runOrSignIn(function(){i.getOrderDialog().open({symbol:a,price:+s||o,side:"sell",type:"limit",qty:r,noConfirm:!0})},{source:"Trading sell limit context menu"})}),f.push(_);var _=new TradingView.Action({text:$.t("Buy ")+l+$.t(" Stop ")+TradingView.abbreviatedNumber(r)+" @ "+s,enabled:c});c&&_.callbacks().subscribe(null,function(){runOrSignIn(function(){i.getOrderDialog().open({symbol:a,price:+s||o,side:"buy",type:"stop",qty:r,noConfirm:!0})},{source:"Trading buy stop context menu"})}),f.push(_)}var _=new TradingView.Action({text:$.t("Create New Order...")});_.callbacks().subscribe(null,function(){runOrSignIn(function(){c?i.getOrderDialog().open({qty:r,symbol:a,price:+s||o}):i.getUntradableDialog().open(a)},{source:"Trading new order from context menu"})}),f.push(_),f.push(new TradingView.ActionSeparator);var _=new TradingView.Action({text:$.t("Trading Properties...")});return _.callbacks().subscribe(null,function(){i.trading().showTradingProperties()}),f.push(_),f},u.prototype.isTVQuoteData=!0,u.prototype.getSymbolInfo=function(t){return $.Deferred().resolve({realtimeContractId:t,formatter:new TradingView.PriceFormatter})},t.exports=u},345:function(t,e,i){"use strict";var o=i(323),n=i(336),r=i(346),s=i(347),a=i(348),l=i(350).Connection,c=function(t){function e(){window.is_authenticated?i.connect():i.disconnect()}this._transport=new r,this._transport.setModel(this);var i=this;i._broker=t,i._accountInfo={},i._orders=[],i._positions=[],i._executions=[],i._journal=[],i._accountHistory=[],i._currencyRates={},i.onAccountInfoUpdate=new Delegate,i.onOrderUpdate=new Delegate,i.onPositionUpdate=new Delegate,i.onExecutionUpdate=new Delegate,i.onJournalUpdate=new Delegate,i.onAccountHistoryUpdate=new Delegate,i.onCurrencyRatesUpdate=new Delegate,i.onStatusChanged=new Delegate,i._chartWidgetControllers=[],i._OCOGroupsMap={},i._nextOCOCOlor=0,i._realtimeSubscriptions={},i._lastQuoteValues={},i._qtyPrefix=n.QTY,TVXWindowEvents.on("trading-reset-account",function(t){i._onResetAccount(JSON.parse(t))}),loginStateChange.subscribe(null,e),e()};c.prototype._OCOCOlors=["#FF00FF","#008F8F"],c.prototype.GetOCOColor=function(t){if(!t.oco)return"#404040";if(this._OCOGroupsMap[t.oco])return this._OCOGroupsMap[t.oco];var e=this._nextOCOCOlor%this._OCOCOlors.length;this._nextOCOCOlor++;var i=this._OCOCOlors[e];return this._OCOGroupsMap[t.oco]=i,i},c.prototype.positions=function(){return this._positions},c.prototype.orders=function(){return this._orders},c.prototype.ordersBySymbol=function(t){var e=t;return this._orders.filter(function(t){return t.symbol==e})},c.prototype.getOrder=function(t){return this._orders.filter(function(e){return e.id==t})[0]},c.prototype.positionsBySymbol=function(t){var e=t;return this._positions.filter(function(t){return t.symbol==e})},c.prototype.executionsBySymbol=function(t){var e=t;return this._executions.filter(function(t){return t.symbol==e})},c.prototype.registerChartWidget=function(t){var e=new a(t,this._broker);this._chartWidgetControllers.push(e);var i=this,n=function(){if(i.connectStatus()==o.CONNECTED){var t=e.symbol();i.executionsBySymbol(t).length||i.requestExecutions(t),e.resetContent(i.ordersBySymbol(t),i.positionsBySymbol(t)[0],i.executionsBySymbol(t))}},r=t.model().mainSeries();r.onSymbolResolved().subscribe(null,n),r.onSymbolError().subscribe(null,n)},c.prototype.unregisterChartWidget=function(t){if(this._chartWidgetControllers.length){var e=this._chartWidgetControllers.filter(function(e){return e.Q2==t})[0];e.resetContent([],null,[]),this._chartWidgetControllers=this._chartWidgetControllers.filter(function(e){return e.Q2!=t})}},c.prototype.resetAllChartWidgets=function(){var t=this;this._chartWidgetControllers.forEach(function(e){var i=e.symbol();e.resetContent(t.ordersBySymbol(i),t.positionsBySymbol(i)[0],t.executionsBySymbol(i))})},c.prototype.connect=function(t){this._transport.connect(t)},c.prototype.disconnect=function(){this._transport.disconnect(),Object.keys(this._realtimeSubscriptions).forEach(function(t){quoteSessionMultiplexerInstance.full.unsubscribe("paper-trading-connection",t)})},c.prototype.onStatus=function(t){var e=this;t==o.CONNECTED?(this.requestAccountInfo().done(function(){e._setAccountInfo(e._accountInfo)}),this.requestCurrencyRates()):(this._accountInfo={},this._orders=[],this._positions=[],this._executions=[],this._journal=[],this._accountHistory=[],this._currencyRates={},delete this._currencyRatesSubscribed,delete this._accountInfoLoaded,this.resetAllChartWidgets()),this.onStatusChanged.fire({status:this.connectStatus()})},c.prototype.connectStatus=function(){return this._transport.connectStatus()},c.prototype._setAccountInfo=function(t){this._accountInfo=t,this.onAccountInfoUpdate.fire(this._accountInfo)},c.prototype.mergeAccountInfo=function(t){this._setAccountInfo(TradingView.merge(this._accountInfo||{},t))},c.prototype.mergeOrder=function(t){var e=this._orders.filter(function(e){return e.id==t.id})[0];e?(delete e.tp,delete e.sl,TradingView.merge(e,t),t=e):this._orders.push(t),this._chartWidgetControllers.forEach(function(e){e.symbol()==t.symbol&&e.onOrderUpdate(t)}),this.onOrderUpdate.fire(t)},c.prototype.mergePosition=function(t){var e=this._positions.filter(function(e){return e.symbol==t.symbol})[0];e?(delete e.tp,delete e.sl,e=$.extend(e,t),t=e):this._positions.push(t),this._positions=this._positions.filter(function(t){return t.qty}),this._chartWidgetControllers.forEach(function(e){e.symbol()==t.symbol&&e.onPositionUpdate(t)}),this.onPositionUpdate.fire(t)},c.prototype.addExecution=function(t){this._executions.push(t),this._chartWidgetControllers.forEach(function(e){e.symbol()==t.symbol&&e.onExecutionUpdate(t)}),this.onExecutionUpdate.fire(t)},c.prototype.addJournal=function(t){this._journal.push(t),this.onJournalUpdate.fire()},c.prototype.journalEntryExists=function(t){return this._journal.some(function(e){return e.id===t})},c.prototype.prependJournal=function(t){for(var e=this._journal,i=0,o=0;o
s.length?i.reject({type:e,content:r}):o._timeoutId=setTimeout(function(){n(t)},1e3*s[t-1])};return i},r.prototype._onStatus=function(t){this._status=t,this.D98.onStatus(this.connectStatus())},r.prototype.connectStatus=function(){return this._manuallyDisconnected||!window.is_authenticated?n[3]:n[this._status]},r.prototype.connect=function(t){this._manuallyDisconnected=!1,TradingView.pushStreamMultiplexer.on("trading",this._messageHandler),TradingView.pushStreamMultiplexer.onStatus(this._statusHandler);var e=this;this._status=TradingView.pushStreamMultiplexer.status(),TradingView.pushStreamMultiplexer.status()==PushStream.OPEN&&setTimeout(function(){e._onStatus(TradingView.pushStreamMultiplexer.status())},0),t&&TradingView.pushStreamMultiplexer.status()==PushStream.CLOSE&&TradingView.pushStreamMultiplexer.forceConnect()},r.prototype.disconnect=function(){if(this._manuallyDisconnected=!0,this._onStatus){this._timeoutId&&clearTimeout(this._timeoutId),TradingView.pushStreamMultiplexer.off("trading",this._messageHandler),TradingView.pushStreamMultiplexer.offStatus(this._statusHandler);var t=this;setTimeout(function(){t._onStatus(PushStream.CLOSED)},0)}},r.prototype.requestAccountInfo=function(){return this.send("account",{})},r.prototype.requestCurrencyRates=function(){return this.send("request_currency_rates",{})},r.prototype.resetAccount=function(t){return this.send("reset_account",t)},r.prototype.requestJournal=function(t,e){return this.send("get_journal",{start_date:t,records_count:e})},r.prototype.requestExecutions=function(t){return this.send("get_trades",{symbol:t})},r.prototype.requestAccountHistory=function(t,e){return this.send("get_account_history",{start_date:t,records_count:e})},r.prototype.placeOrder=function(t,e,i,o,n,r,s,a){var l=$.Deferred(),c={symbol:t,side:e,type:i,qty:o,price:n,sl:r,tp:s};a&&a.expiration&&(c.expiration=Math.round(a.expiration));var u=this;return this.send("place",c).done(function(a){a&&null!=a.id&&u.D98.mergeOrder({id:a.id,symbol:t,side:e,type:i,qty:o,price:n,sl:r,tp:s}),l.resolve(a)}).fail(function(t){l.reject(t)}),l.promise()},r.prototype.modifyOrder=function(t,e,i,o,n,r){var s=$.Deferred(),a={id:t.id};return null!=i&&(a.price=i),t.parent||(null!=o&&(a.sl=o),null!=n&&(a.tp=n),e&&(a.qty=e)),r&&r.expiration&&(a.expiration=Math.round(r.expiration)),this.send("modify",a).done(function(t){s.resolve(t)}).fail(function(t){s.reject(t)}),s.promise()},r.prototype.cancelOrder=function(t){var e=$.Deferred(),i={id:t};return this.send("cancel",i).done(function(t){e.resolve(t)}).fail(function(t){e.reject(t)}),e.promise()},r.prototype.closePosition=function(t){var e=$.Deferred(),i={symbol:t};return this.send("close_position",i).done(function(t){e.resolve(t)}).fail(function(t){e.reject(t)}),e.promise()},r.prototype.reversePosition=function(t){var e=$.Deferred(),i={symbol:t};return this.send("reverse",i).done(function(t){e.resolve(t)}).fail(function(t){e.reject(t)}),e.promise()},r.prototype.modifyPosition=function(t,e,i){var o=$.Deferred(),n={symbol:t,sl:e,tp:i};return this.send("modify_position",n).done(function(t){o.resolve(t)}).fail(function(t){o.reject(t)}),o.promise()},r.prototype._diagnoseIsTradable=function(t){var e=this._alreadyCheckedOrders[t.id];if(!e.is_tradable_processed){var i="paper_order_diagnose_"+TradingView.guid(),o=quoteSessionMultiplexerInstance.simple._quoteApi;e.is_tradable_processed=!0;var n=this,r=function(e,s){var a=n.D98.getOrder(t.id);if(!a)return void quoteSessionMultiplexerInstance.simple.unsubscribe(i);if("is_tradable"in e.values){if("pending"===a.status)return;if(!e.values.is_tradable&&("working"==a.status||"filled"==a.status||"inactive"==a.status)){var l={type:"is_tradable mismatch",sessionId:o._chartApi.sessionid,quoteSessionId:o._sessionid,symbol:a.symbol,orderId:a.id};TradingView.logNormalChart("Server executes non-tradable symbol. Symbol:"+a.symbol+" quoteSessionId: "+o._sessionid+" sessionId:"+o._chartApi.sessionid),$71.sendReport("paper_trading",l,!0,!0)}if(e.values.is_tradable&&("invalid"==a.status||"rejected"==a.status)&&5==a.misc.reject_status){var l={type:"is_tradable mismatch",sessionId:o._chartApi.sessionid,quoteSessionId:o._sessionid,symbol:a.symbol,orderId:a.id};TradingView.logNormalChart("Client placed non-tradable symbol. Symbol:"+a.symbol+" quoteSessionId: "+o._sessionid+" sessionId:"+o._chartApi.sessionid),$71.sendReport("paper_trading",l,!0,!0)}quoteSessionMultiplexerInstance.simple.unsubscribe(i,t.symbol,r)}};quoteSessionMultiplexerInstance.simple.subscribe(i,t.symbol,r)}},r.prototype._diagnoseMarketOrderFillPrice=function(t){var e=this._alreadyCheckedOrders[t.id];if(!e.last_price_processed&&"market"===t.type&&"filled"===t.status){e.last_price_processed=!0;var i="paper_order_diagnose_"+TradingView.guid(),o=quoteSessionMultiplexerInstance.simple._quoteApi,n=this,r=function(e,s){var a=n.D98.getOrder(t.id);if(!a)return void quoteSessionMultiplexerInstance.simple.unsubscribe(i);if("last_price"in e.values){var l=Math.abs(e.values.last_price-a.price),c=l/a.price;if(c>.02){var u={type:"market order unexpected price",symbol:a.symbol,orderPrice:a.price,quotePrice:e.values.last_price,sessionId:o._chartApi.sessionid,quoteSessionId:o._sessionid,orderId:a.id};TradingView.logNormalChart("Order unexpected price. Symbol:"+a.symbol+" quoteSessionId: "+u.quoteSessionId+" sessionId:"+u.sessionId+" order price:"+a.price+" last quote price:"+e.values.last_price),$71.sendReport("paper_trading",u,!0,!0)}quoteSessionMultiplexerInstance.simple.unsubscribe(i,t.symbol,r)}};quoteSessionMultiplexerInstance.simple.subscribe(i,t.symbol,r)}},r.prototype._diagnoseProblemOrder=function(t){this._alreadyCheckedOrders=this._alreadyCheckedOrders||{},this._alreadyCheckedOrders[t.id]=this._alreadyCheckedOrders[t.id]||{},this._diagnoseIsTradable(t),this._diagnoseMarketOrderFillPrice(t)},r.prototype._onMessage=function(t){var e=t.m,i=t.p;switch(TradingView.logDebugChart("TRADING. method:"+e+", data:"+JSON.stringify(i)),e){case"order_update":this.D98.mergeOrder(i),this._diagnoseProblemOrder(i);break;case"position_update":this.D98.mergePosition(i);break;case"execution_update":this.D98.addExecution(i);break;case"journal_update":this.D98.addJournal(i);break;case"balance_update":this.D98.mergeAccountInfo(i);break;case"account_change_update":this.D98.addAccountHistory(i);break;case"update_currency_rates":this.D98.updateCurrencyRates(i)}},r.prototype.realtimeProvider=function(){return quoteSessionMultiplexerInstance.simple},t.exports=r},347:function(t,e){"use strict";var i=function(t,e){var i=this._defaultCurrency;this._tradingModel=t,this._symbol=e.symbol,this._avg_price=+e.avg_price,this._qty=+e.qty||0;var o=null;if("forex"===e.symboltype){var n=/^(?:.*?:)?(\w{3})(\w{3})$/.exec(this._symbol);n&&(o=[n[1],n[2]])}o?o[0]===i?this._reverseCurrency=!0:o[1]===i?this._reverseCurrency=!1:this._currency=o[1]:e.currency&&(this._currency=e.currency),e.pointvalue&&(this._pointvalue=e.pointvalue),this.onValueChanged=new Delegate,this._qsmId="profit-loss-emitter"+Math.random();var r=this;this._boundQuoteListener=function(t,e){var i=!1;null!=e.values.last_price&&(r._last_price=e.values.last_price,i=!0),null==e.values.pricescale&&null==e.values.minmov&&null==e.values.fractional&&null==e.values.minmove2||null==t.values.pricescale||null==t.values.minmov||null==t.values.fractional||null==t.values.minmove2||(r._formatter=new TradingView.PriceFormatter(t.values.pricescale,t.values.minmov,t.values.fractional,t.values.minmove2),i=!0),i&&r._update()},this._boundPositionListener=function(t){t.symbol===r._symbol&&(r._qty=t.qty,r._avg_price=t.avg_price,r._update())},quoteSessionMultiplexerInstance.simple.subscribe(this._qsmId,this._symbol,this._boundQuoteListener),this._tradingModel.onPositionUpdate.subscribe(null,this._boundPositionListener)};i.prototype._tradingModel=null,i.prototype._symbol="",i.prototype._formatter=new TradingView.PriceFormatter,i.prototype._qty=0,i.prototype._avg_price=void 0,i.prototype._last_price=void 0,i.prototype._pointvalue=1,i.prototype._currency=i.prototype._defaultCurrency="USD",i.prototype._reverseCurrency=!1,i.prototype._update=function(){var t,e=(this._last_price-this._avg_price)*this._qty*this._pointvalue;if(t=this._qty<0?e:this._last_price*this._qty*this._pointvalue,this._currency!==this._defaultCurrency){var i=this._tradingModel.currencyRate(this._currency);e*=i,t*=i}if(this._reverseCurrency&&(e/=this._last_price,t/=this._last_price,t+=e),!isFinite(e))return this.value=NaN,void(this.formattedValue="");this.value=e;var o="";e>0&&(o="+"),this.formattedValue=o+e.toFixed(2),isFinite(t)?this.equity=t:this.equity=NaN,this.onValueChanged.fire(this)},i.prototype.onValueChanged=null,i.prototype.value=NaN,i.prototype.formattedValue="",i.prototype.equity=NaN,i.prototype.destroy=function(){quoteSessionMultiplexerInstance.simple.unsubscribe(this._qsmId,this._symbol),this._tradingModel.onPositionUpdate.unsubscribe(null,this._boundPositionListener)},t.exports=i},348:function(t,e,i){"use strict";var o=(i(349),function(t,e){this.Q2=t,this._broker=e,this._connection=e.connection(),this._orders={},this._executions={},this._position=null,this._formatter=new TradingView.PriceFormatter});o.prototype.redraw=function(){var t=this.Q2.model().model(),e=t.paneForSource(t.mainSeries());t.updatePane(e)},o.prototype.symbol=function(){return this.Q2.model().model().mainSeries().proSymbol()},o.prototype.orderSideColor=function(t,e){return"buy"==t.side?e?"rgba(64,148,232,.5)":"rgb(64,148,232)":e?"rgba(231,86,86,.5)":"rgb(231,86,86)"},o.prototype.orderTextColor=function(t,e){if(t.label){if("limit"==t.type)return e?"rgba(38,140,2,.5)":"rgb(38,140,2)";if("stop"==t.type)return e?"rgba(231,86,86,.5)":"rgb(231,86,86)"}return this.orderSideColor(t,e)},o.prototype.positionSideColor=function(t){return"buy"==t.side?"rgb(64,148,232)":"rgb(231,86,86)"},o.prototype.profitColor=function(t){return t>0?"rgb(38,140,2)":0>t?"rgb(231,86,86)":"rgb(100,100,100)"},o.prototype.orderText=function(t){if(t.label){if("stop"==t.type)return $.t("STOP LOSS");if("limit"==t.type)return $.t("PROFIT TRGT")}return(t.side+" "+t.type).toUpperCase()},o.prototype.executionText=function(t){var e=t.side+" "+t.qty+" @ "+this._formatter.format(t.price);return e.substr(0,1).toUpperCase()+e.substr(1).toLowerCase()},o.prototype.executionColor=function(t){return"buy"==t.side?"#4094e8":"#e75656"},o.prototype.onOrderUpdate=function(t){var e=this.Q2,i=t.id,o=this;if("pending"!==t.status&&"working"!==t.status&&"inactive"!==t.status)this._orders[i]&&(this._orders[i]._adapter.remove(),delete this._orders[i]);else{if(!this._orders[i]){var n=e.model().model(),r=n.paneForSource(e.model().model().mainSeries()),s=n.createLineTool(r,{price:t.price,index:0},"LineToolOrder");this._orders[i]=s}if(this._orders[i]){var a=this._orders[i]._adapter,l="working"!==t.status,c=this.orderSideColor(t,l);a.setPrice(t.price).setQuantity(t.qty).setText(this.orderText(t)).setQuantityBackgroundColor(c).setBodyTextColor(this.orderTextColor(t,l)).setBodyBorderColor(c).setQuantityBorderColor(c).setCancelButtonBorderColor(c).setCancelButtonIconColor(c).setLineColor(c).setQuantity(t.qty).onModify(function(){o._broker.getOrderDialog().open(t)}).onContextMenu(function(){var e=new TradingView.Action({text:$.t("Edit Order...")});e.callbacks().subscribe(null,function(){o._broker.getOrderDialog().open(t)});var i=new TradingView.Action({text:$.t("Cancel Order")});return i.callbacks().subscribe(null,function(){o._connection.cancelOrder(t.id)}),[e,i]}).onMove(function(e){var i=TradingView.clone(t),n=a.getPrice(),r=o._formatter.formatAsDecimal(n);i.price=+r||n,i.noConfirm=!0,o._broker.getOrderDialog().open(i).done(function(e){e||(a.setPrice(t.price),a._line.updateAllViews(),o.redraw())})}).onCancel(function(){o._connection.cancelOrder(t.id)}),this._orders[i].updateAllViews()}}this.redraw()},o.prototype.onPositionUpdate=function(t){var e=this.Q2,i=this;if(this._position&&"empty"==t.side&&(this._position._adapter.remove(),this._positionPL&&(this._positionPL.destroy(),this._positionPL=null),this._position=null),"empty"!=t.side){if(!this._position){var o=e.model().model(),n=o.paneForSource(e.model().model().mainSeries()),r=o.createLineTool(n,{price:t.avg_price,index:0},"LineToolPosition");this._position=r,r._adapter.onClose(function(){i._broker.getPositionDialog().closePositionDialog({symbol:i.symbol(),noConfirm:!0}).progress(function(){r._adapter.block()}).done(function(){r._adapter.unblock()}).fail(function(){r._adapter.unblock()})}).onReverse(function(){i._broker.getPositionDialog().reversePositionDialog({symbol:i.symbol(),noConfirm:!0}).progress(function(){r._adapter.block()}).done(function(){r._adapter.unblock()}).fail(function(){r._adapter.unblock()})})}var s=this.positionSideColor(t);if(this._position._adapter.setPrice(t.avg_price).setQuantity(t.qty).setQuantityBackgroundColor(s).setBodyBorderColor(s).setQuantityBorderColor(s).setReverseButtonBorderColor(s).setReverseButtonIconColor(s).setCloseButtonBorderColor(s).setCloseButtonIconColor(s).setLineColor(s).onModify(function(){i._broker.getPositionDialog().open(t)}).onContextMenu(function(){var e=new TradingView.Action({text:$.t("Edit Position...")});e.callbacks().subscribe(null,function(){i._broker.getPositionDialog().open(t)});var o=new TradingView.Action({text:$.t("Close Position")});o.callbacks().subscribe(null,function(){i._broker.getPositionDialog().closePositionDialog({symbol:t.symbol,noConfirm:!0})});var n=new TradingView.Action({text:$.t("Reverse Position")});return n.callbacks().subscribe(null,function(){i._broker.getPositionDialog().reversePositionDialog({symbol:t.symbol,noConfirm:!0})}),[e,o,n]}),!this._positionPL){this._positionPL=this._broker.createProfitLossEmitter(t.symbol);var a=this,l=this._position._adapter,c=function(t){l.setText(t.formattedValue).setBodyTextColor(a.profitColor(t.value)),a._position.updateAllViews(),a.redraw()};this._positionPL.onValueChanged.subscribe(null,c),c(this._positionPL)}this._position.updateAllViews(),this.redraw()}},o.prototype.onExecutionUpdate=function(t){var e=this.Q2,i=t.id,o=new Date(t.time),n=Math.round(o.valueOf()/1e3);
if(this._executions[i])this._executions[i]._adapter.setPrice(t.price);else{var r=e.model().model(),s=r.paneForSource(r.mainSeries()),a=r.createLineTool(s,{price:t.price,index:void 0},"LineToolExecution");this._executions[i]=a}var l=this.executionText(t);this._executions[i]._adapter.setTime(n),this._executions[i]._adapter.setPrice(t.price),this._executions[i]._adapter.setDirection(t.side),this._executions[i]._adapter.setTooltip(l),this._executions[i]._adapter.setArrowColor(this.executionColor(t)),this._executions[i].updateAllViews(),this.redraw()},o.prototype.resetContent=function(t,e,i){var o=this;this.symbol();this._positionQty=void 0,this._positionPrice=void 0,this._formatter=this.Q2.model().mainSeries().formatter();for(var n in this._orders)this._orders[n]._adapter.remove();this._orders={};for(var r in this._executions)this._executions[r]._adapter.remove();this._executions={},this._position&&(this._position._adapter.remove(),this._position=null),this._positionPL&&(this._positionPL.destroy(),this._positionPL=null),t.forEach(function(t){o.onOrderUpdate(t)}),e&&o.onPositionUpdate(e),i.forEach(function(t){o.onExecutionUpdate(t)})},t.exports=o},349:function(t,e){"use strict";function i(t){this._broker=t,this._connection=t.connection()}var o=null;i.get=function(t){return o||(o=new i(t)),o.setBroker(t)},i.prototype.setBroker=function(t){return this._broker=t,this},i.prototype.open=function n(t){function e(t){$82.destroy(r),l.resolve(!!t)}function i(t){13===t.keyCode&&(t.altKey||t.shiftKey||t.ctrlKey||t.isDefaultPrevented()||(t.preventDefault(),c()))}var o=this;this._params=$.extend({},n.defaults,t||{});var r=this.title(),s=$82.createDialog(r);s.addClass("trading-dialog");var a=s.find("._tv-dialog-content");a.html(n.TEMPLATE),$(n.TEMPLATE_HEADER).insertBefore(a),this.$dialog=s,this._initSlTp(),this._fillValues(),this._initTicker();var l=$.Deferred();this.$dialogPivot().find("button.modify").on("click",function(t){t.preventDefault(),o._modify(),e(!0)});var c=function(){o._modify(),e(!0)};return this.$dialogPivot().find("form").on("submit",function(t){t.preventDefault(),c()}),$(document.body).on("keydown.positiondialog",i),$82.applyHandlers(s),$82.makeDraggable(s.find("._tv-dialog")),$82.positionDialog(s),$(s).on("destroy",function(){this._subscribedSymbol&"eSessionMultiplexerInstance.simple.unsubscribe("position-dialog",this._subscribedSymbol),this._plSubscription&&this._plSubscription.destroy(),c=null,$(document.body).off("keydown.positiondialog",i)}.bind(this)),l},i.prototype.open.defaults={type:"market"},i.prototype.title=function(){var t=$.t("Position")+", ";if(this._params.side)switch(this._params.side){case"buy":t+=$.t("Long")+" ";break;case"sell":t+=$.t("Short")+" ";break;default:t+=$.t(this._params.side[0].toUpperCase()+this._params.side.slice(1))+" "}return t+=this._params.symbol},i.prototype.open.TEMPLATE_HEADER='',i.prototype.open.TEMPLATE='