Chrome Web Store (1.3.20)

1.3.19 - 30/9/2021
==================
- Added OKEX v5 support (all markets!) (beta)
- Fixed indicator settings paste/load errors caused by latest TV update
- Made lock/lockcheck syntax commands usable for legacy alerts
- Added shortcut for symbol browser (Alt+S) to PV alert page (@ 1.3.17)
- Fixed run/long shortcut (Ctrl+L) in PV alert page (@ 1.3.17)
- Fixed error message when placing locks via syntax (cosmetic / still worked)
- Added check for Bot Token to Telegram bot
- Added check for CoinMarketCap API key (and signup link)
- Added timestamp to error notifications
- Binance: Added support for spot-margin OCO orders (SL & TP together)
- Bybit: Corrected closing and reduce-only orders to fix rejection of stops (@ 1.3.19)
- Bybit: Added alias names for futures eg. s=ETHUSD1231 equals s=ETHUSDZ21 (@ 1.3.19)
- FTX: Fixed correct rounding/stepping of quantity for certain markets
- FTX: Fixed some orders without any ID being found/canceled when filtered by ID
- Gemini: Updated market data
- Kraken: Fixed updating of all fetched balances
- KuCoin/KuCoin Futures: Updated authentication to V2 API keys
- KuCoin: Corrected relative quantity calculations for spot-margin (10x leverage)
- KuCoin Futures: Fixed relative quantity calculations for some markets (BCHUSDTM, TRXUSDTM etc.)
- OANDA: Added support for guaranteed stop-loss (gsl=1)
- OKEX: Fixed order placement error when using custom ID (@ 1.3.17)
- OKEX: Fixed custom leverage multiplier/variable being ignored (@ 1.3.17)
- OKEX: Added auto detection of position mode / fixed posSide error (@ 1.3.17)
- OKEX: Added custom ID cache for stop orders without native ID support (@ 1.3.18)
- OKEX: Changed single SL/TP stop types from "conditional" to "trigger" (no margin freeze) (@ 1.3.18)
- Phemex: Fixed ticksize error occuring on spot markets (further fixes)
- Phemex: Fixed placing of trailing stop orders (use ts with any of tp/sl/so!)

1.3.15 - 2/9/2021
=================
- Added value2 and value3 for IFTTT messages (built in: price/size/balance, custom: "val1;val2;val3")
- Added syntax commands exitall / pauseall / resumeall to control other running alerts
- Added syntax command to restart PV (caution!)
- Fixed Telegram bot stuck in parallel starting loop with "conflict error"
- Fixed go=back/do=loop syntax commands not working properly
- "Detect Side" alert option now honors ex/sym/acc submitted via parameters (eg. pvalert(acc=test))
- Binance / Binance US: Fixed cancel=order only canceling a single order (caused by API change)
- Bybit: Added support for spot markets (beta)
- Bybit: Fixed order/position check option "save" not working
- Bybit: Fixed cross leverage (l=0) and position size check/info not working (@ 1.3.15)
- Kraken Futures: Changed to use official market order type
- Phemex: Fixed some fields for notifications
- Phemex: Fixed ticksize error occuring on some markets
- Removed DueDEX support

1.3.13 - 13/6/2021
==================
- Fixed jump labels followed by comments in the same line producing a syntax error
- Fixed indicator settings copy & paste errors caused by latest TV updates (@ 1.3.13)
- Fixed random "Tabs cannot be queried right now" error occurring since recent Chrome update (@ 1.3.13)
- Binance Futures: Added support to get correct fill price for market orders (for log/notify) (@ 1.3.11)
- BitMEX: Implemented rounding of order quantity to market lot size (further fixes @ 1.3.12)

1.3.9 - 27/5/2021
=================
- Changed default preprocessor conditional string check operator from "starts with" to "equals"
  and added dedicated "starts with" string check operators *= and !*=
  (eg. [if id=foo,bla] was matching any alert id STARTING with "foo" or "bla" before and will now match only exact 
  ids "foo" and "bla" - change to [if id=foo*,bla*] or the new [if id*=foo,bla] to achieve the previous check!)
- Added shorthands [] for [else] and [end] for [endif] in preprocessor conditionals
- Fixed indicator settings copy & paste errors caused by latest TV updates (@ 1.3.9)
- Fixed some false errors in the syntax editor when using preprocessor conditionals within one line (price=[if..]1%[else]2%[end] etc.)
- Fixed preprocessor conditional operators being case sensitive (now [IF] / [if] / [If] are all equal)
- Fixed most underscore/asterisk Telegram notification/bot escaping issues
- Fixed number formating on mobile for some Telegram bot commands
- Bybit: Added support for TP/SL "on fill" parameters for opening order stops (currently only working on USDT markets)
- OANDA: Added support for TP/SL "on fill" parameters for opening order stops
- Implemented Telegram Bot commands to list accounts, balances and positions!

1.3.7 - 7/5/2021
================
- Implemented Telegram Bot commands to list accounts, balances and positions!
- Added Telegram Bot options to disable/enable functionality more granular
- Added option to ignore filtering for alerts triggered via Telegram bot (prefix "!" to message)
  or to forcefully run alerts/commands even when PV itself is paused (prefix "!!" to message)
  or to forcefully run alerts even when PV OR THE ALERT is disabled (prefix "!!!" to message)
- Fixed error occuring when placing non-closing orders using yield=possize
- Added position details window to position monitor (by clicking on a list entry)
- Added support for modulo (%) to expressions in placeholders / conditions (@ 1.3.5)
- Added ifbuy/ifsell aliases for iflong/ifshort conditionals (for TV Strategy alerts)
- Added syntax placeholder [tf] for the formatted alert/chart resolution (1h instead of 60 etc.)
- Added syntax aliases "end" and "back" for go=back
- Added UI to browse cached custom order IDs (see General Options / Browse ID cache)
- Adapted indicator dialog styling fixes to latest TV update
- Binance Futures: Fixed order cancelation errors on some markets (workaround for long order IDs)
  (further fixes @ 1.3.5)
- Binance Futures: Fixed order quantity changing on close=position retries (@ 1.3.6)
- Binance Futures: Improved error handling (@ 1.3.5)
- Bybit: Added support for new Futures API (beta, use pm=hedge for hedge mode!)
- Bybit: Implemented quantity adjustment in case supplied leverage is limited by market
- Bybit: Corrected assumed leverage for cross to 100x (WARNING: Affects relative quantities!)
- Bybit: Added auto detection of cross margin setting
- Bybit Testnet: Added workaround for random API change (@ 1.3.7)
- FTX / FTX US: Fixed coin/spot wallet balances using the correct "available" amount (@ 1.3.6)
- FTX US: Fixed "not logged in" API authentication error
- KuCoin: Upgraded margin order endpoint and added auto borrow support (mt=borrow)

1.3.3 - 28/2/2021
=================
- Implemented Telegram Bot functionality (see "Setup: Notifications" / added to stats - BETA!)
  Completely remote control PV and trigger PV alerts via Telegram! (see Telegram Bot /help command)
- Added PV alert option to interpret auto run interval as schedule ("allow only then")
- Added support to submit custom variables/plots to PV alerts via ALERTNAME(var1=value1,var2=value2,...)
  (use ex= / sym= / acc= or acc=ex:sym:acc to set default exchange / symbol / account for alert!)
- Fixed unified placeholder comparisons/checks still being interpreted even when commented out
- Exchange time sync can be disabled now by setting the interval to 0 (see General Options)
- Added automatic triggering of exchange time sync if error message mentions "timestamp"
- Fixed error occuring when position PL is higher than given maxpl= parameter
- Added option to show empty entries in position monitor when exchange set to "all" (now hidden by default)
- Slightly improved use of space in PV alert GUI
- Binance Margin: Added correct balance query & cache for isolated spot margin with relative quantity (side=long/short iso=1)
- Binance Margin: Added correct balance query for crossed spot margin trades with relative quantity (side=long/short mt=borrow)
- Binance Margin: Implemented transfer balance option for isolated spot margin balance (eg. tb=etc iso=1 s=etcbtc)
- Binance Margin: Implemented querying the correct amount for loan/repay commands with relative quantity
- Binance Delivery: Fixed auto detected leverage being incorrect sometimes if not specified via syntax
- Bybit: Switched to realtime order query endpoints to avoid getting out-of-date/corrupt order information
- FTX: Implemented quantity adjustment in case supplied leverage has to be rounded down
- FTX US: Fixed error when testing API key
- Gemini: Implemented type=market workaround (immediate-or-cancel order with wide limit price)
- Gemini: Updated market data
- Kraken Futures: Fixed type=market workaround for close=position
- KuCoin Futures: Implemented quantity adjustment in case supplied leverage is limited by market
- OANDA: Implemented quantity adjustment in case supplied leverage is limited by market
- Phemex: Fixed error when canceling multiple orders at once
- Phemex: Fixed error for cancel/check=order when no order is open

1.3.2 - 5/2/2021
================
- Fixed comparisons in placeholders always evaluating as true (broken in 1.3.1)
- Added aliases "free" (for "balance") and "total" (for "equity") to yield= option
- Kraken Futures: Added _sizeUSD and _sizeCoin position infos
- Bybit: Improved ticker query for USDT markets

1.3.1.2 - 25/1/2021
===================
- Fixed new format ex:sym:acc for a=/ap= not working sometimes
- Kraken: Added support for custom SL/TP references/plots
- Kraken: Added correct leverage info to notifications
- Kraken Futures: Added correct leverage info to notifications

1.3.1.1 - 22/1/2021
===================
- Added option to Run & Test buttons in PV alert editor for spot markets (via Alt-Key while clicking)
- Added conditional option to check if an order was partially filled (see ifp=/ifpartial=)
- Added conditional option to differentiate between other error or max time reached (see ift=/iftime=)
- Added placeholder [caller] for the id of the alert that ran/triggered this alert (fallback current alert id)
- Added placeholder [acc] for account name from ap=/run=/trigger= (fallback from alert name; name format EX-SYM-ACC)
- Added placeholders [internal], [fork] and values internal/fork to [mode] (see "Unified" under "Setup: Commands"!)
- Moved min/max balance checks to work with updatebalance command (ub=1 minb=x)
- Added columns to command list ("Setup: Commands") showing if key can be used as standalone command and/or set as default
- Added syntax command "exit" as alias for do=abort
- Coinbase Pro: Fixed error when canceling orders
- FTX: Always calculate positive order amount, even when negative balance (eg. spot margin short)
- Kraken Futures: Implemented "pseudo" market orders (type=market) via order type IOC and price offset
- Kraken Futures: Fixed log confirmation and caching of custom IDs for stop orders
- Kraken Futures: Fixed wrong order type for take profit stops
- Kraken Futures: Added event source mapping of KRAKEN:XXXPERP to KRAKENFT:XXX
- Kraken: Added correct spot balance query and separated margin balance
- Kraken: Added support for the new Position Monitor (fixes @ 1.3.1.1)
- Kraken: Added PnL calculations for positions (margin) (fixes @ 1.3.1.1)
- Kraken: Corrected free margin balance info (yield=balance / default)
- Kraken: Fixed error when closing positions (via close=position)
- KuCoin: Added support for spot margin orders/balances (via side=long/short)

1.3.0.2 - 26/12/2020
====================
- TV Indicator Settings Manager: Copy/Paste/Save/Load settings + Take screenshots (Beta!)
  (holding the Shift key will disable confirmations, holding the Ctrl key will switch between JSON & text formats)
- Added position monitoring GUI (Beta!)
- Added support for DueDEX exchange
- Added support for Phemex exchange
- Added support for Twilio (SMS) notifications
- Added syntax commands to run or trigger other PV alerts (see run= and trigger=)
- Added conditional option to compare current vs cached price or custom plot (see maxslip= / maxslipref= / ifslip=)
- Added syntax option "transpose" to adjust custom plots based on new price (useful for signals from different chart, see transpose=)
- Added saving of quantity, price, id, status and leftover quantity of canceled/checked orders for later reference (see save= and leftover=)
- Added reference options lastqty, lastprice & laststop to use quantity, price or stop from last placed or canceled order
- Added yield=possize option for normal non-closing orders to reference size of open position
- Added support for equations to unified placeholders and the new conditionals (eg. sl=[(close + _myplot)/2] etc.)
- Added custom plots to unified placeholders (eg. quantity=[_myplot])
- Added support to specify different exchanges/symbols per account in lists via exchange:symbol:account (see a= and ap=)
- Added list support to e= and s= options, allowing to specify different exchange/symbol per account given in a=/ap=
- Added preprocessor conditional syntax to check any predefined placeholder, OHLC and custom plot data against values or other plots
  (eg. [if not _myplot > 7000] ... [else] ... [endif] ; see "Setup: Commands" under "Unified Alerts")
- Added new placeholders to be used in preprocessor conditional syntax
  ([alert], [screener], [manual], [auto], [mode], [long], [short], [weekday], [day], [month], [hour] and [minute])
- Added priceref=pos/even/liq option for normal non-closing orders to reference price of open position
- Added option for interval= command to schedule an alert to run given minutes from now (via interval=+x)
- Added support to specify time in minutes/hours/weeks/months for delay=, jd=, time= and interval=+x options (eg. delay=5.5m)
- Added option to allow running of specific alerts even when in global pause/disabled mode
- Added syntax command to disable/enable PV via disable/enable/toggle=pv (same as global "pause" button)
- Added support to specify custom plot defaults in first line of PV alert via #var1:value,var2:value,...
  (use '!' to overwrite a received OHLC/plot value eg. #!_sl=123,!close=456)
- Added shortcut syntax for custom plot references (eg. sl=_myplot-1% instead of sl=-1% slref=_myplot)
  (Note: Only works for p= / q= / l= / tp= / sl= / ts= / so= / msl= ; allowed ops for q and l are '*' and '/', for all others '+' and '-'!)
- Added syntax options to check for no position/order and opposite direction if side= filter was specified (see nopos=, noorder= and wrongside=)
- Added syntax shortcut to check for existing order IDs before closing a position (see checkid= and wrongid=)
- Added jump option "this" to loop within the last (current) jump label / made "back" option (stack) ignore loops
- Added support for wildcard placeholders in custom order ID checks (eg. check=order id=*-TP)
- Added workaround and internal stats for missed scheduler runs (missed runs will trigger up to 3 minutes later)
- Added possibility to define multiple jump labels directly one after another (or in one line separated by comma)
- Added option to specify a fallback jump label/action in case of an invalid label (useful for placeholders, see fj=)
- Added wildcard support for alert names in disable/enable/toggle syntax commands (eg. disable=*entry)
- Added support for buy/sell/long/short for side in alert message OHLC "footer" (useful for strategy alerts)
- Added support for writing custom messages to the PV log via notify command (eg. notify=log:"Hello!")
- Added CMC data to local OHLC data when queried so it can be used in notifications (see min24h= etc.)
  ({volume_24h}, {percent_change_1h}, {percent_change_24h}, {percent_change_7d}, {market_cap})
- Added string formatting option to notification placeholders, eg. {lastid.2} turns XH5-MSL-123456-1 into XH5-MSL (fixes @ 1.3.0.2)
- Added generic placeholder {stop} to reference stop prices in notifications
- Added received/fired numbers to the minimized PV alert view
- Added separate "auto" (interval fired) stats count per alert
- Added human readable description of configured schedule to "Edit interval" GUI
- Added position monitor shortcut to balances in popup window (via Shift-Click or context menu on right click)
- Added unified side and order leverage to last success/error info in popup
- Fixed wrong or missing leverage in notifications when custom plot multiplier used
- Added unified side to alert names for short notifications
- Updated and cleaned up "Setup: Commands" help page
- Added account copy and clone functions via buttons and context menu to exchange API pages
- Added changing of PV icon to orange when not connected to TV event stream nor TV interceptor addon
- Added automatic time offset adjustment for exchanges requiring a timestamp (solving time sync issues)
- Added more details to logging of filtered alerts and a number suffix for events triggering multiple alerts
- Added account copy and clone functions via buttons and context menu to exchange API pages
- Fixed alert log level "none" still logging notifications and "automatic interval run fired" messages
- Fixed alert log level "no debug" not logging standard info messages
- Fixed manual "Reset" button for repeat filter in PV alerts sometimes not working
- Fixed several errors related to multiple accounts specified via a= option
- Changed all closing orders (close=position) to reduce only by default unless explicitly set to false
- Binance: Added option to specify isolated margin flag for orders and loan/repay (see iso=)
- Binance Delivery: Fixed size and PnL calculations for position info and check
- Binance Delivery: Fixed balance placeholders not working in notifications
- Binance Delivery: Fixed balance not available error for BNB based markets
- Binance Delivery: Fixed all positions being closed instead of only selected symbol
- Binance Futures/Delivery: Made pm=auto (automatic detection of hedge mode) default
- Binance Futures/Delivery: Fixed reduceOnly errors for hedged position orders
- Binance Futures/Delivery, BitMEX, Bybit, FTX, KuCoin Futures, SimpleFX: Added support for unit=currency to min/maxsize position filter option
- Binance Futures/Delivery, BitMEX, Bybit, FTX, KuCoin Futures, SimpleFX: Added position info/notification fields {_sizeUSD} and {_sizeCoin}
- Binance Futures, BitMEX, Bybit, KuMEX: Fixed "close=position q=100%" not always posting close-on-trigger orders without quantity
- Binance Futures: Added support for priceProtect stop order option (see pp=)
- Binance Futures: Fixed leverage not set correctly when using custom plot multiplier
- Binance Futures, BitMEX, Bybit, Deribit, FTX, KuCoin Futures: Added support for position liquidation price (via pr=liq)
- Binance, Deribit, FTX: Fixed transfer balance command (invalid error given for custom yield options)
- Bitfinex: Fixed iflong/ifshort for c/ch=position and added basic position info logging
- BitMEX: Added support for position breakeven price (via pr=even)
- BitMEX: Fixed PnL display/calculation to show in XBT instead of Satoshi
- Bybit: Upgraded inverse perpetual markets to v2 API endpoints
- Bybit: Automatically placing real stop instead of SL/TP attribute change if custom order ID specified (id=)
- Bybit: Fixed switch between cross/isolated margin for linear markets
- Bybit: Fixed "not modified" error when changing SL/TP position attribute
- Bybit: Fixed errors when canceling stop orders under certain conditions
- Coinbase Pro: Added support for custom stop references
- Deribit: Added relative quantity calculation for transfer balance command when target is main account
- FTX, FTX US: Fixed calculation of PnL % values (lev% was used as pos%)
- FTX, FTX US: Added rounding down of specified leverage to next valid value
- FTX, FTX US: Fixed leverage not shown correctly in notifications
- FTX, FTX US: Added support for transfer balance command to transfer to/from sub accounts (see tb=)
- FTX, FTX US: Added support for retryUntilFilled stop order option (true by default, see rf=)
- FTX, FTX US: Added support for currency conversion via new syntax command (see convert=) (fixes @ 1.3.0.2)
- FTX, FTX US: Fixed trailing stop value for normal (non-closing) short/sell orders
- Gemini: Added support for stop orders
- Gemini: Updated market information
- Kraken: Fixed quantity calculations for margin long trades
- KuCoin Futures: Fixed relative quantity calculations for USDT based markets
- OANDA, FTX: Added support for simple trigger/stop orders (see so=)
- OANDA: Fixed leverage sometimes not shown correctly in notifications
- Poloniex: Fixed error when closing position
- SimpleFX: Fixed relative quantity calculations for equities and indices
- SimpleFX: Fixed wrong side shown in log for close position orders

1.2.90.20 – 5/10/2020
=====================
- Added support for FTX US
- Fixed scheduler drift so interval alerts fire on time (see General Options / Fire Offset)
- Updated built-in syntax examples and Wiki links
- Improved handling of some log writing errors

1.2.90.18 – 8/9/2020
====================
- FTX: Fixed profit calculation and PnL checks via syntax
- Kraken Futures: Fixed order cancelation not being confirmed in log and order id cache

1.2.90.17 – 2/9/2020
====================
- Fixed order ID cache not being purged correctly and overflowing
- Added more helpful error messages for some connection problems
- Binance Futures: Fixed error when checking for server time offset on startup
- KuCoin: Fixed error when testing API key without any ETH balance

1.2.90.16 – 22/8/2020
=====================
- Added side info to icon tooltip and log (when supplied via OHLC at the end of TV message)
- Fixed syntax check errors for unified placeholders without side in alert name
- Binance Futures: Added support for Delivery markets / DAPI (requires re-granting of permission in Chrome!) (further fixes @ 1.2.90.15)
- Binance Futures: Added support for index price (pr=index)
- Binance Futures: Fixed error when placing trailing stop (further fixes @ 1.2.90.16)
- Bitfinex: Added leverage parameter to orders
- BitMEX: Corrected error message for failed setting of leverage
- FTX: Fixed filtering by custom ID for order cancelation/check
- KuCoin: Fixed quantity precision error

1.2.90.13 – 5/8/2020
====================
- Changed discord API from discordapp.com to discord.com (requires re-granting of permission in Chrome!)
- Fixed custom IDs leading to order errors in syntax loops on some exchanges
- Binance Futures, BitMEX, Bybit, FTX, Kraken Futures, KuCoin Futures: Fixed order cancelation/check 
  not filtering correctly for stops or when type= option was missing
- Binance Futures: Fixed step size error occuring for some instruments
- Binance Futures: Added minimum trade size check
- Gemini: Added new instruments and fixed precisions
- KuCoin Futures: Fixed direction parameter for stops being wrong (causing immediate trigger)
- KuCoin Futures: Renamed from KuMEX and adjusted API endpoints (requires re-granting of permission in Chrome!)

1.2.90.12 – 12/7/2020
=====================
- Fixed price reference "ask" not working (pr=ask)
- Fixed additional cases leading to PRO license being removed
- Fixed TV backtest export not working @ 1.2.90.12
- Fixed syntax warning for id=[id] with catchall alert names (containing '*')
- Bybit: Fixed error on order placement for USDT markets (further fixes @ 1.2.90.11)
- BitMEX: Fixed wrong time in force option for market orders @ 1.2.90.11

1.2.90.9 – 17/6/2020
====================
- Added custom leverage plot reference option (lref=)
- Added workaround for new Discord Webhook URLs
- Binance Futures: Replaced posside with posmode=hedge/auto option to fully support hedge mode
- Binance Futures: Upgraded to v2 balance/risk endpoints (improved performance)
- Binance Futures: Fixed cancel=order w/o additional filters not canceling all orders
- BitMEX: Fixed cancel=order w/o additional filters not canceling all orders
- ByBit: Added ability to set separate buy/sell leverage in USDT markets
- ByBit: Added support for close-on-trigger & reduce-only in USDT markets
- ByBit: Changed position closing orders to close-on-trigger by default
- ByBit: Fixed quantity/TP/SL calculations for hedge mode / multi positions

1.2.90.8 – 8/6/2020
===================
- Added support for TV Screener Alerts (see General Options / TradingView Connection)
- Added support for Kraken Futures (beta)
- Added support for KuMEX (beta)
- Added alert option to detect [side] placeholders from actual open positions
- Added conditional options iflong= and ifshort= to require less API calls for checks
- Added option to allow wildcards (*) in PV alert names to easily match multiple TV alerts
- Added new placeholders [ex] and [sym] to auto extract exchange/symbol from PV alert name
- Added new placeholder [id] for the first only alphanumeric part of current alert name
- Added ability to set the side for unified alerts from custom plot data via %%",side:{{plot_x}}"%%
  (if you have separate plots for long/short use %%",side:{{plot("Long")}}:{{plot("Short")}}"%%)
- Added custom plot data as quantity multiplier (via qref=_name / qref=customx) (further fixes @ 1.2.90.4)
- Added custom plot data names via %%",name:{{plot_x}}"%% (use with priceref=_name etc.) (further fixes @ 1.2.90.8)
- Added expiration/timeout option to symbol locks
- Made repeat filter work independent of alert (optional, when "No Repeat" is *unchecked*!)
  (alert will only fire if there was no alert fired on the same symbol within given time window)
- Made "Solo per Bar" filter option work for multiple alerts triggered by the same name
- Fixed "Once per Bar"/"Solo per Bar" always filtering over two consecutive bars
- Optimized memory usage (especially for higher number of commands run)
- Code restructuring & optimization for improved command execution and API request speed
- Fixed PV startup failing when log database can't be opened for writing
- Fixed command parameters like {p} not working in custom notifications anymore (further fixes @ 1.2.90.2)
- Changed "don't log" alert option into log level selection drop down
- Added Ctrl+Shift+UP/DOWN hotkey to navigate alerts in alert editor
- Fixed alert selection state in alert editor when not using "expand one at a time" option
- Fixed symbol browser for defaults under General Options not working
- Changed API test function to only check account balance (less warning messages)
- Changed symbol info cache time setting to hours (default 72h)
- Fixed TV strategy tester export breaking copy & paste function
- Fixed option to disable "Study Repaints" warnings for indicators in TV
- Fixed Telegram error 400 caused by unescaped single underscore characters @ 1.2.90.8
- Further performance improvements and reduced package size @ 1.2.90.8
- Binance Futures: Added support for close-only orders/stops without quantity (further fixes @ 1.2.90.1)
- Binance Futures: Added basic hedge mode support (position side via posside= option) (further fixes @ 1.2.90.6)
- Binance Futures: Fixed advanced order cancelation filters (t=open/close/limit, sl=1, tp=1, ts=1, r=1) @ 1.2.90.8
- Binance Futures: Added support for trailing stops (callback rate via cbrate= option)
- Binance Futures: Fixed custom plot data not available for non-closing orders
- BitMEX: Added support for advanced order cancelation filters (t=open/close/limit, sl=1, tp=1, ts=1, r=1) (@ 1.2.90.8)
- BitMEX: Added support for time in force option (via type=fok/ioc/day)
- Bybit: Fixed "cannot set TrailingStop" error (close=position ts=xxx)
- Bybit: Fixed "param validation for order_status failed" error (cancel/check order for USDT) (further fixes @ 1.2.90.7)
- Gemini: Corrected time in force option IOC and added support for FOK (fill or kill)
- Kraken: Fixed order type "settle" not working
- OANDA: Fixed order type "day" not working
- Poloniex: Fixed error when calculating margin balance

1.2.85.1 – 27/4/2020
====================
- Fixed broken alert import for "Import Config" function

1.2.85 – 20/4/2020
==================
- Enabled quantity and leverage parameters to be set as default in syntax (be careful with following close position commands etc.)
- Fixed unified placeholders (side etc.) not being replaced on interval alerts (filled with first side in name!)
- OANDA: Improved balance/instrument currency conversion (fixing relative quantities & position info)
- SimpleFX: Added realtime PnL calculation for position info (via ch=position updateprice=1)
- SimpleFX: Improved balance/instrument currency conversion (fixing relative quantities & position info)
- SimpleFX: Added use of "delete" endpoint when possible to close positions (preventing "no money" error)
- SimpleFX: Fixed SL/TP calculation for positions made from multiple orders
- SimpleFX: Fixed bug introduced in PV 1.2.81 causing "unauthorized" errors (further fixes @ 1.2.85)
- Bybit: Fixed wrong balance being used for quantity calculations for BTCUSDT market (due to API changes)
- Bybit: Added workaround for "unknown result" error when setting leverage on BTCUSDT market

1.2.83 – 14/4/2020
==================
- Fixed broken position size check (minsize/maxsize)
- Changed default for plref syntax option to "lev" (leveraged PnL)
- OANDA: Added check for instrument leverage limit and improved quantity calculations
- OANDA: Corrected leverage and PnL calculations for position info
- ByBit: Added support for new USDT market endpoints (experimental!) (further fix @ 1.2.83)
  (PnL calculations for USDT require ticker query, invoke via ch=position updateprice=1)
- ByBit: Added support for changing SL/TP specified with main open order (via c=position q=100% t=market sl=x tp=x)
- ByBit: Corrected relative PnL % calculations for pos/lev/total position info
- ByBit: Fixed "insufficient margin" error sometimes occuring on position close

1.2.81 – 8/4/2020
=================
- Fix for lifetime licenses "expiring" on 8/4/2020 (please re-enter your license!)
- Upgraded to new CoinMarketCap API (enter API key under "General Options")
- Added position opening time to position info where available (BitMEX resets hourly)
- Fixed bar time/position for very long and sub-minute timeframes
- Fixed balance sometimes not available or wrong currency in notifications
- Fixed session notification statistics not being reset
- Rewrote TV event hook (addon) for compatibility with recent TV updates
- Improved TV event stream stalling detection and fixed permission denied errors
- Several app log viewer fixes (updating too much, showing too many entries)
- Binance: Added checks for minimum order quantity and minimum notional
- Binance Margin: Fixed mt=borrow and mt=repay not working
- Binance Futures: Added workaround for error when changing margin type (mt=)
- BitMEX: Reduced number of API calls for order cancelation and position checks
- BitMEX: Fixed showing position side instead of order side in log
- FTX: Fixed currency unit option (u=currency) for spot market instruments
- SimpleFX: Fixed quantity calculation for positions made up of multiple orders
- SimpleFX: Fixed error message for wrong or missing trade permissions

1.2.79 – 25/2/2020
==================
- Added highlighting of current selected alert in alert editor
- Fixed lock/unlock commands in syntax not working
- Fixed dollar sign ($) being removed or decimated in PV alert names on loading

1.2.78 – 21/2/2020
==================
- Added syntax command to query and check CMC price change data
- Added support for SimpleFX broker (beta)
- Optimized syntax editor screen space usage
- Added seperate run/test alert buttons for long and short (unified alerts)
- Added stop price reference option to base stop on main order price (slref=price etc.)
- Optimized performance of PV alert editor (recommended to keep most alerts minimized)
- Added context menu command to copy/paste PV alerts in JSON format
- Added event source mapping of BINANCE:XXXPERP to BINANCEFT:XXX
- Added entry price to position info
- Added last slippage info to PV alert stats
- Added option to use current time for alert received / fired info (instead of TV event data)
- Added setting to specify interval fire offset (seconds after full minute)
- Added info about unified alerts under "Setup: Commands"
- Adapted TV indicator dialog styling fixes after update
- Fixed newlines in config export on Windows
- Increased popup window size
- Deribit Testnet: Fixed authentication errors
- FTX: Relaxed instrument name lookup (BTC-PERP vs BTCPERP)
- OANDA: Fixed check position command

1.2.75 – 6/2/2020
=================
- Added option to ignore syntax errors in legacy alerts (found under "General Options")
- Bitmex: Fixed quantity calculations for symbols using multiplier (XRPUSD etc.)

1.2.74 – 2/2/2020
=================
- Added symbol browser to exchange pages (requires valid account for OANDA!)
- Added exchange/symbol browser quick insert/replace to syntax editor (via context menu)
- Added custom context menu to alert editor
- Added exchange syntax alias to exchange pages
- Added alert repeat filter option to check for name differences (vs alert id only)
- Added syntax option to specify which PnL type to check (plref=pos/lev/total - pos being default)
- Fixed order/position check conditionals in loops not triggering in same cases
- Fixed multiple account processing in loops sometimes failing
- Improved repeat filter to work within bar time (was previously using bar time only vs fire time)
- Binance Futures: Added support for reduce only stops
- Binance Futures: Added option to switch between isolated and cross margin (mt=isolated/crossed)
- Binance Futures: Added cancel all and batch/bulk cancelation API calls
- Binance Margin: Added option for auto borrow/repay order flag (mt=borrow/repay)
- Bybit: Fixed bulk order cancelation for t=open/close
- Bybit: Fixed wrong book side printed in log for c=position (further fix @ 1.2.74)
- Bybit: Added support to place trailing stop via c=position ts=x (@ 1.2.74)
- FTX: Fixed pr=pos option and added new pr=even option (last break even)
- FTX: Fixed bulk order cancelation canceling orders for all symbols
- FTX: Fixed trailing stop placement (via c=position ts=x)
- OANDA: Added support for u=currency option

1.2.71 – 1/1/2020
=================
- Enabled time/maxtime parameter to be set as default in syntax
- Binance: Fixed quantity precision error occuring for some symbols
- Bybit: Fixed endless loop when certain amount of past orders was reached (further fix @ 1.2.69)
- Bybit: Fixed leverage error message (leverage was still set correctly)
- Deribit: Corrected testnet URL/API endpoint (fix @ 1.2.71)
- FTX: Fixed quantity calculation for spot market sell (further fix @ 1.2.70)

1.2.67 – 14/12/2019
===================
- Added support for Binance Futures
- Added ticker data to notifications, enabling use of eg. {ask}, {last} etc.
  (Note: Cached ticker data is used so depending on the type of command up=1 might be necessary!)
- Added pre-filled notification variables {pnl}, {pnlLev}, {pnlTotal} and {relSize} for positions
  (pnl = abs P/L% for the position, pnlLev = incl. leverage (similar to ROE), pnlTotal = in relation to balance)
- Added access to general position info for notifications on c=position commands (instead of just the closing orders)
- Fixed alert editor UI not reflecting when alerts are disabled/enabled via syntax
- Fixed interval settings not updating in UI when changed via syntax
- Fixed option to always keep the PV options page open
- Further unified and fixed position P/L calculations
- BitMEX/Bybit: Implemented querying of current leverage when none specified
- Bitfinex: Fixed error when converting balance for non-USD pairs
- Bybit: Updated code to use new order API v2 and implemented support for bulk order cancelation (further fix @ 1.2.67)
- FTX: Fixed bulk order cancelation and unique IDs for position close
- OANDA: Fixed relative SL/TP/TS calculations for positions with multiple orders
- OANDA: Fixed SL/TP/TS info not accessible in notifications

1.2.65 – 10/12/2019
===================
- Added support for FTX exchange (beta)
- Added leverage info for order placement, when changing leverage or checking positions
- Fixed relative position size sometimes not showing in check/close position info
- Added command pass number to unique order ID to avoid duplicate orders in loops
- Added number of passes (counts) that a command is being executed to the log
- Updated TV user interface "fixes"
- OANDA: Added calculation of correct position leverage
- OANDA: Added query of/info about account leverage (no need to specify leverage for relative quantities)
- OANDA: Added support to set account leverage via l= syntax and order type GFD (Good For Day)
- Gemini: Fixed API communication error preventing access

1.2.64 – 5/12/2019
==================
- Added fire offset info (event slippage) to "alert received" log message
- Disabled retries for duplicate order ID errors
- Fixed wrong syntax highlighting for certain command parameters
- BitMEX/Deribit: Fixed order check syntax accidentally bulk canceling orders
- Bybit: Fixed order cancellation not working anymore after API update

1.2.63 – 27/11/2019
===================
- Added general support for absolute prices to all price options via @<number> (eg. p=@7000)
- Added support for positive numbers written in syntax with leading "+"
- Added OHLC data to {} notification placeholders (eg. {close} for close price)
- Fixed non-sensical TV OHLC data always being "detected"
- BitMEX/Bybit/Deribit/Kraken/OANDA: Added new parameters to specify different price bases for stops (slref/tpref/tsref)
- BitMEX/Bybit: Leverage is now set via API only if l= option is present in command!
- Bybit: Added support to place stops independend of any position with new stop order parameter (so=)
- Bybit: Added support to switch to cross margin via API with l=0
- Bybit: Added support for stop reference (sr=) option
- Bitfinex: Fixed market order error caused by API change

1.2.62 – 8/11/2019
==================
- Added support for new OHLC and custom plot info from TV by adding the following as the LAST line in the 
  TV alert description: "#{{open}},{{high}},{{low}},{{close}},{{volume}}" (without quotes!)
  Those prices can then by referenced in syntax via pr=open or pr=close etc.
  (to use custom plotted prices add ",{{plot_0}}" etc. to the line above and use via pr=custom1 etc.)
- Added support to call multiple PV alerts from one TV alert by putting their names line after line in the 
  beginning of the TV alert description
- Added command aliases go= and do= and added the option "back" for jumps/conditionals to resume execution 
  after the original calling command
- Added relative position size and leveraged PnL % info to position info log output
  (and removed additional details that were basically a duplicate of the debug output)
- Added {pnlLev} and {roe} notification placeholders (roe only available on BitMEX for now)
- Added option to disable logging completely per alert (useful for interval alerts running quite often)
- Fixed calculation of relative position size for min/max position checks
- Fixed wrong quantity, price etc. being calculated sometimes after jumps/conditionals
- Fixed setting defaults to zero via syntax not working (retries=0 etc.)
- Fixed PV alert still firing on intervals even when it was set to "disabled"
- Fixed error when setting alert interval via syntax

1.2.61 – 22/10/2019
===================
- Added live syntax checking including error/warning markers to PV alert editor (fix for "foreign" chart alerts @ 1.2.61)
- Implemented drag and drop / custom order support for PV alert UI
- Added descriptive command aliases to syntax parser incl. notification syntax ("discord" instead of "d" etc.)
- Improved interval config UI (launched by "Edit interval" button)
- Added name/syntax search functions and further sort options to PV alert UI
- Implemented custom jump labels for err/skip syntax options (including jumping back/looping)
- Added syntax command to enable/disable (or toggle) any PV alerts
- Added syntax command to configure interval runs for any PV alerts
- Added syntax options to check P/L (minpl/maxpl) and size (mins/maxs) of a position on all margin exchanges
- Added syntax command to check existing positions/orders more easily (ch=/check=) (see Setup: Commands!)
- Added syntax conditional commands ifo/ifn, including support for jump labels (see Setup: Commands!)
- Added new error handling options incl. aliases and new ep= parameter for "on error" closing limit price
- Added pause/resume/stop buttons in log view to temporarily pause or forcefully terminate all running alerts
- Added comma separated list support to p, sl, tp, ts for targeting different accounts with a/ap
- Changed log output to use original syntax line number instead of the command number
- Changed syntax parser to make "ub" or "r" (without =) equivalent to "ub=1" / "r=1"
- Added notification variable {pnl} for ch=position command notifications
- Added notification variable {time} containing current timestamp (old {time} variable is now {bartime}!)
- Added number of errors to per alert stats
- Added option to auto collapse all but the current alert in PV alert UI
- Fixed counting of actual number of executed commands for stats/log instead of total commands in alert
- Fixed wrong end date sometimes being shown for monthly subscriptions
- Fixed some log entries sometimes not being written to DB (under load)
- Added support for Binance US
- BitMEX: Added support to place SL/TP "close all" stops without a position (r=1 q=100% / no q=)
- Deribit: Added use of "close position" API command for c=position (q=100% / no q=, no b=)
- Deribit: Fixed error for c=position without b= when no position was open
- OANDA: Relaxed instrument name lookup ('_', '-' and '/' are removed internally)
- BitMEX/Bybit/Coinbase/Deribit/OANDA: Added checks for minimum trade size (Bybit also minimum price)
- BitMEX/Bybit: Fixed permission error on older Chrome versions
- !BREAKING CHANGE! BitMEX/Kraken: Stop orders (not using c=position but any of tp/sl/ts) are now placed on 
  the side defined by b= instead of the opposite direction! (unified behaviour)

1.2.58 – 23/9/2019
==================
- Added pc=1 syntax option to skip ticker query and use last cached ticker update instead
- Added up=1 syntax option tp use newly added internal ticker cache and save current ticker query to it
- Added bc=1 syntax option to skip balance query and use last cached balance for an exchange/account
- Added internal order id cache for exchanges without native custom order id support
  (enabling id= syntax for Bitfinex, Bittrex, Coinbase Pro, Kraken, OKCoin, OKEX and Poloniex)
- Fixed "no repeat" alert filter not working when first matching alert was disabled
- Added built in notification option to format notifications "horizontally"
- Added stronger "muting" of disabled alerts in alert editor
- Started unification of all exchange modules
- Bitfinex, Kraken, OKEX, Poloniex: Added pr=pos for position average (with c=position)
- BitMEX, Deribit: Added pr=mark for mark price
- Bybit: Added new ticker API supporting ask, mid, bid, last, mark and index price (further fixes @ 1.2.58)
- Bybit: Fixed order cancelation error (when no previous stop orders were created) (further fixes @ 1.2.57)
- Deribit: Fixed c=position d=1 (disabled mode) for conditional syntax
- Deribit Testnet: Updated endpoint to new URL
- Kraken: Added support for c=position with sl/tp options

1.2.53 – 2/9/2019
=================
- Added built in notification options to include/exclude balance, quantity or leverage
- Added metrics about sent notifications to the statistics page
- Added notification variable {leverage} to print the used leverage or "None"
- Added notification variables {available} and {total} to reference only available or total balance
- Binance: Added support for OCO orders (specify both tp= and sl= together, use p= for the stop-limit price!)

1.2.52 – 23/8/2019
==================
- Binance: Added syntax commands for margin/spot balance transfer and loan/repay of assets
  (eg. tb=btc,bnb q=50% y=spot to transfer 50% of your BTC and BNB from spot to margin,
  loan=btc or repay=btc and q=x for loan/repay of x amount BTC)
- Deribit: Added syntax command for subaccount balance transfer
  (eg. tb=btc,eth q=25% y=mysub to transfer 25% of your BTC and ETH balance from the current account 
  to a subaccount with the alias mysub) (further fixes @ 1.2.52)
- BitMEX: Closing orders (c=position) will now always ignore already open orders for quantity calculations(!)
- Optimized screen space of minimzed alerts in UI
- Fixed auto interval configuration for "every minute" intervals

1.2.50 – 16/8/2019
==================
- Fixed minb/maxb syntax options to work with y=equity
- Added number of placed/canceled orders to log & notifications when more than one
- Binance: Added preliminary support for new margin trading market
- Bybit: Added support for reduce only limit orders (layered TP eg. c=position q=25% p=2% r=1)
- BitMEX: Corrected final closing order for layered TP orders (further fixes @ 1.2.50)
- Deribit: Fixed bulk order cancelation

1.2.46 – 9/8/2019
=================
- Fixed d=1 in a line by itself (setting defaults) not being respected
- Fixed per alert stats sometimes not updating and refreshing correctly
- Bybit: Added support for trailing stop (current API only permits it as ts=value with main position order)

1.2.44 – 7/8/2019
=================
- Added user interface to configure intervals for auto firing alerts
- Added minp/maxp syntax options to specify absolute limits for price
- Added syntax placeholders [res] for the alert timeframe and [name] to use the triggering name anywhere in syntax
  (eg. custom symbol names for lock/lockcheck, custom order IDs, notifications etc.)
- Added total number of run commands and empty alerts to the statistics page
- Added number of errors, warnings and retries to the statistics page and fixed stats not resetting correctly
- Fixed alert stats not updating automatically while alert page is open or when alerts run on intervals
- Fixed per alert stats not being tracked correctly
- Added reset button for per alert statistics
- Added option to set minimum alert run time before alert is tracked for run time stats
- Added option (default enabled) to count manual run alerts in syntax time stats
- Fixed wrong display of durations that were exactly 1 minute, 1 hour or 1 day
- Added warning to "Run in intervals" alert option
- Fixed origin header errors for some exchanges caused by Chrome v76 update
- Fixed "unhandled exception" error sometimes occuring after alert fired
- Bitfinex: Fixed "Key amount should be a decimal string" error (1.2.43)
- Bybit: Fixed "same leverage" error introduced by API change
- Kraken: Fixed time offset check

1.2.41 – 4/8/2019
=================
- Added scheduler for PV alerts to automatically fire any alert in custom configurable intervals / schedules
- Added minq/maxq syntax options to specify absolute limits for order quantity (always in contracts or native "currency")
- Added very detailed "Statistics" page with internal metrics covering all aspects of PV
- Added option to automatically restart PV after set time period (optionally extended if alerts are running)
- Added alert filter option to specify both min amount of (once per min only) and min position in bar (also for legacy)
- Added stats about last/min/max/average syntax execution time, fire/manual run numbers and creation date to PV alerts
- Added option for maximum time allowed to pass between firing and running of alerts
- Added option to limit maximum alerts running in parallel
- Added logging of manual and automatic restarts
- Added automatic reloading of options window after remote config update (sync)
- Added option to log view to disable automatic scrolling
- Fixed instabilities caused by too many log entries (limiting log view to last 1000 entries)
- Fixed download of log with many entries failing (auto-splitting in 1MB chunks)
- Fixed "Once per Bar" filter sometimes filtering over two bars
- Added support for using the equal sign in custom notification messages
- Fixed some TV listener errors occuring under rare circumstances
- IFTTT Notifications: Added support for custom data using the "value1" field
- Coinbase Pro: Fixed price precision errors for certain order types
- Bybit: Added support for non-BTC markets / symbols
- Kraken: Complete rewrite fixing regularly occuring error

1.2.32 – 11/6/2019
==================
- Added new alert filter option "Solo per Bar" restricting alerts to one alert per bar per symbol
- Coinbase Pro / Kucoin: Fixed order quantity calculations for buy orders (further fixes @ 1.2.32)
- Bybit: Fixed order cancelation error caused by API changes
- BitMEX / Bybit / Deribit: Fixed error causing order cancelations to sometimes execute even in testing mode

1.2.29 – 7/6/2019
=================
- Migrated log from local storage to WebSQL for much longer retention
- Changed all internally saved timestamps to UTC (displayed according to local timezone)
- Fixed "command.time.reference" error sometimes occuring when using notifications
- Fixed error causing notification features not to work for monthly subscription
- Added display of license expiration date for monthly subscription
- Added option to disable modification of indicator "Settings" and "Edit Alert" windows on TradingView
- Added command number besides alert id to further uniquify custom order ids
- OANDA: Fixed quantity calculations for matching account/symbol currency and price calculations for trailing stops
- Coinbase Pro: Fixed price precision and unknown market errors occuring with some symbols and added SL/TP support
- Bybit: Fixed "bind error" for reduce only limit orders (r=1 is currently only supported for stop orders on Bybit)
- KuCoin: Added support for current API version, newer symbols (incl. caching) and added KuCoin Sandbox
- Gemini: Added support for newer additional symbols

1.2.26 – 26/5/2019
==================
- Binance: Fixed market order error (fixed @ 1.2.26)
- OANDA: Fixed quantity calculation sometimes failing (when not necessary)
- Bybit: Closing orders of at least 100% will be set to "close on trigger" automatically (fixed @ 1.2.25)
- Bybit: Added support for reduce only option
- BitMEX: Fixed price reference option pr= not being used for stop prices (sl/tp/ts)

1.2.23 – 23/5/2019
==================
- OANDA: Fixed quantity calculation for relative buy in based on unit price and account currency (q=%)
- Fixed deletion of PV alerts sometimes not working
- Fixed error preventing ap= syntax from working
- BitMEX: Fixed error introduced by c=position load shedding workaround

1.2.21 – 22/5/2019
==================
- Added beta support for Bybit
- Added monthly subscription as alternative licensing option
- Added side of the book placeholders ([side], [!side], [+], [-]) to PV alert syntax that are "auto guessed"
  from the alert name and can be used to handle both long & short or buy & sell with only one alert
  that has two names assigned (eg. "BTC Long, BTC Short")
- Added new syntax option time= to define maximum elapsed time since firing of alert
  (can be specified either as absolute amount of seconds or % of bar time)
- Fixed Discord notification formatting on iOS (Note: works only when the padding option is disabled!)
- Added average price to notifications if different from main price
- Fixed PV alerts not being removed from sync when switching to local storage
- Fixed log filter options for events and orders
- Changed syntax so lockcheck command can be used by itself now
- Fixed bug that sometimes caused hangs when using skip=-1
- Changed "Min Bar %" filter to allow for sub-percent precision
- Enabled "Always use Event Stream" option by default
- BitMEX: Added support for bulk order cancelation (further speeding up entries)
- BitMEX: Removed order quantity for closing orders of at least 100% (thus exempt from load shedding!)
- Deribit: Fixed order cancelation for non-BTC markets
- Deribit: Added support for bulk order cancelation (further speeding up entries)

1.2.19 – 27/4/2019
==================
- Added option to save alerts in local instead of sync storage to lift size restrictions
  (Note: disables syncing of alert definitions!)
- Added better error handling when alerts get too big for sync storage
- Fixed min bar time filter sometimes not working and not saving/loading correctly
- Changed filtering for bar open to 0-3% and bar close to 97-100% respectively
- OANDA: Fixed multiple errors preventing c=position from working
- OANDA: Added parsing/saving of order confirmations

1.2.17 – 19/4/2019
==================
- Added OANDA and OANDA Practice support (incl. custom order ids)
- Added option to specify multiple custom ids with id= via comma separated list (for c=order)
- Added built in notification option for less verbose notifications
- Added syntax to run an alert parallel for multiple accounts (ap=)
- Added alert option to run in parallel instead of consecutively when sharing a name
- Added support to specify q= and l= values per account via comma separated list (when using a=/ap=)
- Fixed retry for multiple accounts sometimes not working
- Fixed notifications for multiple accounts sometimes not working
- Fixed notifications & retries for "Event Stream only" connection problems/recovery
- Made repeat filter compatible with multiple alerts sharing a name
- Added exchange, symbol and time to the icon tooltips "last event" info
- Added more and easier to see tooltips to the options page and popup window
- Fixed several causes for "Unknown Error" in main event process
- Added option to disable "study repaints" warning in TradingView
- Deribit: Added support for multiple base currencies (ETH)
- BitMEX: Fixed custom order id sometimes not being unique
- OKEx: Fixed error in account balance query

1.2.14 – 17/3/2019
==================
- Added additional stalling notification for Event Stream connection problems
- Deribit: Fixed order error caused by typo
- BitMEX, Deribit: Added additional price reference option pr=pos to force use of position average
- BitMEX, Deribit: Added syntax option sr=x to specify price reference to set for stops (last, mark, index)

1.2.13 – 15/3/2019
==================
- Added syntax minhvd/maxhvd etc. to check BitMEX volatility indices (daily, weekly, monthly)
- Added option to always use Event Stream system to receive TV alerts (even when TV tabs are open)
- Added option to show number of fired or received alerts as badge on the icon
  (reset by clicking the icon or "Reset" button under "General Options")
- Added info on last run alert to icon and popup last success/error tooltips
- Added info on TV connection state to icon tooltip
- Added syntax command to update exchange/account balance (ub=1)
- Implemented popup window balance refresh function
- Implemented ret=x for "disabled mode" making commands like the following possible:
  "c=position d=1 ret=-1 skip=-1" will skip the whole alert if an open position is found
- Implemented skip=-1 as an option to skip all of the following commands in an alert
- Implemented ret=0 as an option to check for NO positions/orders returned
- Made error handling / ret=x work per account for a=acc1,acc2,... syntax
  ("ret=x err=1" will skip commands only if ALL accounts didn't return enough orders)
- Fixed a bug that made a=acc1,acc2,... syntax fail under certain conditions
- Added lock/unlock and checking of lock state to syntax via "lock=..." command
- Added alert option to run only if symbol is locked
- Added manual lock/unlock functions to the alert editor (and clear all locks under "General Options")
- Added information about lock states to the alert editor via lock button
- Removing an alert will now also remove it's lock
- Added lock ignore option to alert editor/filter engine
- Alerts are now sorted by their creation date in UI and for execution (custom order in a later update!)
- Changed global "testmode" to global disable/pause mode (no alerts are run)
- Adapted indicator settings window optimizations to new TV update/redesign
- Fixed bug in error handling (err=-2) that sometimes prevented it from closing positions
- Deribit: Added support for reduce only orders (r=1)
- BitMEX: Added support for trailing profit (IfTouched) orders via "tp=x ts=1" syntax (needs experimentation!)
- General speed optimizations

1.2.10 – 22/2/2019
==================
- Quickfix for nonce errors (Bitfinex in 1.2.10)
- Added filter option to lock/unlock alerts per symbol, useful for multi timeframe strategies etc.
- Added option to skip retries for ret=x syntax parameter (using a negative number for x)
- Fixed/implemented a=acc1,acc2,... syntax to work correctly, also for setting alert defaults
- Implemented min bar time alert filter (for once per minute)
- Account balance info is now also removed on account deletion
- Added order type (buy/sell) to built-in notifications
- Added number format option to custom notification fields eg. {p.2} for 123.45 or {p.0} for 123
- Added notification option to include alert timeframe/resolution
- Added notification option to use alert name as notification title
- Added notification option to specify buy/sell emojis
- Added hotkey support to the options page for config import/export, saving, run/min/max alerts etc.
- Added syntax to skip (goto/jump) given number of commands
- Added spinner status info while waiting for email notification permission
- Fixed "Once per Bar" filter to work for alerts (re)used accross different symbols
- Allow fractions of seconds for delay command
- Added small run/test buttons to minimized alerts
- Added muted background for disabled alerts in alert editor
- Added minimize/maximize all buttons to alert editor
- Added button to purge all cached balance info to "General Options"
- Fixed exchange options page formatting error
- Added price/quantity etc. to built-in notifications for exchanges without order confirmation
- Bittrex: Fixed cosmetic error message on order cancelation

1.2.7 – 12/1/2019
==================
- Minimize/maximize alerts by double click in alert editor
- Fixed "NaN" in balances popup window for some exchanges
- Fixed PV options tab opening with no PV alerts defined when "keep options page open" is checked
- Bittrex: Fixed "unknown market symbol" error

1.2.6 – 8/1/2019
==================
- Quickfix for startup notifications not being sent
- Quickfix for built in cancelation notifications sent even when disabled
- Quickfix for BitMEX/BitMEX Testnet permission not granted issue
- Quickfix for "trying to refresh access token" reload loop when no TV tab open
- Complete overhaul of internal TradingView Event Stream system, fixing missed or duplicate alerts etc.
- Added option to format built in notifications with padding
- Added options to add account name or used exchange to notifcations
- Fixed built in notification system (sometimes prefixing messages with "Info" etc.)
- Added syntax to check for min/max account balance before running command
- Added option to always leave the ProfitView settings page open
- Fixed Google Sync remote updates sometimes detecting too many changes
- Added log info about which instance last saved settings and when
- BitMEX: Adding event id to custom order id to fix "duplicate" error
- Binance: Added support for custom order id (with event id suffix)
- Coinbase Pro: Added support for custom order id (with event id suffix)
- Deribit: Added support for custom order id (with event id suffix)
- Gemini: Added support for custom order id (with event id suffix)
- Bittrex: Fixed "symbol not found" error

1.2.2 – 21/12/2018
==================
- Added additional error handling syntax options err=-3 and err=-4
- Final fix for error handling syntax err=-2 not closing and canceling correctly
- Fixed variables in custom notification messages causing endless loop/hang eg. "{price}"
- Fixed timeout not being set if only retries=x specified in syntax
- Fixed email notification credentials expiration (automatic token refresh)
- Added "\n" (newline) and "\t" (tab) escape sequences to custom notification syntax
- Fixed double reload of TV tabs on manual reload in some circumstances
- Fixed TV listener error message on startup in some circumstances
- Added command number and account info to event log entries
- Adjusted Chrome minimum version requirement in manifest to v54
- Improved reloading of TV addon components on updates

1.2.1 – 20/12/2018
==================
- Implemented Email, Discord, Telegram and IFTTT notifications for startup, order placement, cancelation, errors and
  stalling/timeout including custom notifications via syntax
- Fixed price and quantity calculations for multiple account syntax (a=acc1,acc2,...)
- BitMEX: Added support for custom order IDs via id=abc syntax incl. filtering and fixed API check with empty balance
- Binance: Added support for new pairs and fixed caching issues
- Bitfinex: Added support for normal SL/TP syntax
- Bittrex: Added support for new pairs and added symbol info caching
- Coinbase Pro: Fixed symbol info caching and updates
- Deribit: Updated API order options
- All exchanges: Added general option to change symbol/market info cache duration and added price/quantity sanity checks
- Fixed balances in popup window being cut off on some browsers
- Fixed error handling syntax err=-2 not closing positions and canceling orders
- Changed log type of balance updates to notice and added filter for them

1.2.0 – 9/12/2018
=================
- Added syntax options to specify retry & timeout per command
- Fixed error that kept ret=x syntax from working correctly sometimes
- Added repeat filter reset button
- Added repeat filter expire options
- Split alert filter mid bar section into two separate areas
- Quick log filter options to show only alerts+orders and/or only errors
- Added warning dialog to "dangerous" options
- Configuration import can now also process JSON containing only alert definitions
- Added option to disable confirmation for manual alert run (caution!)
- Changed TV addon to make all indicator parameters visible in alert edit dropdown
- Changed TV addon to make the indicator settings dialog waste less space
- All binary/unicode characters are now automatically removed from API key/secrets
- BitMEX: Option pr=last is now using correct last price
- BitMEX: Better error messages when p or q parameters possibly faulty
- BitMEX: Outstanding limit orders are now ignored for c=position in case of t=market or q>=100%!
- Deribit: SL/TP close orders now use the average position price unless pr option is specified
- All Exchanges: Added log output in case all open positions don't match for c=position

1.1.0.20 – 9/11/2018
====================
- Binance/Bitfinex/Deribit: Changed symbol info cache timeout from 15 min to 3 hours to reduce API calls and delays
- Binance: Symbol info now cached, reducing number of API calls, delays and data transfer quite a bit
- All exchanges: Implemented command option "pr" to force a price reference (ask / bid / mid / last),
  option "mid" calculates the average of ask & bid price, "last" uses the last trade price
- Deribit: Fixed cancelation of stop orders (SL & TP)

1.1.0.18 – 9/11/2018
====================
- Fixed error that made order placements fail for some exchanges (eg. Bitfinex)
- Binance: Fixed order amount calculations
- Deribit: Added leverage option (multiplying contracts) and fixed closing of short positions

1.1.0.17 – 7/11/2018
====================
- Deribit: Fixed calculation for u=currency and absolute q values / fixed precision / fixed SL & TP

1.1.0.14 – 7/11/2018
====================
- Added Deribit and Deribit Testnet support
- Improved last order success/error info in popup window
- Bitfinex: Added more supported pairs
- BitMEX: Removed OCO, OTO, OUOA and OUOP options from orders as per "contingencyType" deprecation announcement
- BitMEX: Fixed u=currency and absolute order quantity as per "SimpleOrderQty" deprecation announcement

1.1.0.12 – 29/10/2018
=====================
- Added handshake with confirmation in log when remote Sync Storage configuration changes were picked up
- Bitfinex: Fixed "Invalid order price precision" error
- Binance: Fixed account balance query error
- Fixed alert last received/fired info not updating live anymore

1.1.0.10 – 28/10/2018
=====================
- Added option to load remote configuration changes from Google Sync Storage (alerts & exchange options)
- Added information about defaults being used to manual alert run confirmation
- Added option to maximize the list of last accessed balances in the popup window
- Added option to minimize alerts in the local alert editor
- Removed restriction on number of alerts by saving each alert independently in Sync Storage
- Fixed buttons in UI sometimes not reacting to clicks

1.1.0.8 – 28/10/2018
====================
- Moved balance info data from synced to local storage due to size/frequency
- Improved saving of synced configuration data using less Chrome Storage API calls
- Split up handling of TradingView unsaved changes and quick reconnect into separate options
- Fixed configuration import not asking for/restoring all required Exchange permissions
- Fixed PV alert filter cache being reset sometimes and made it persistent
- Fixed error in TV/PV alert name matching
- Fixed manual alert testing sometimes running live commands erroneously
- Fixed error in balance processing causing PV popup to become non responsive

1.1.0.0 – 24/10/2018
====================
- Added alert command management in ProfitView including auto suggest and syntax highlighting
- Added the ability to execute and test alert commands manually
- Added filtering module to filter alerts within bar period, repeats etc. for both local and legacy alerts
- Added configuration import and export functionality
- Added automatic suppression of unsaved changes and quick reconnect on max devices in TradingView
- Added error handling and expected return parameters/logic to alert command syntax
- Added ability to set default account, exchange and symbol for commands both via syntax and GUI
- Added info about the last queried exchange balance to the popup window
- Added additional log output for order cancel/position close commands
- Added info on the number of executed commands to the log
- Error handling doesn't retry anymore on "internal" errors like missing API credentials
- Exchange Account names are now saved in their original case (but still work case insensitive)
- Bitfinex: Fixed price/balance calculation for non USD pairs
- Bitmex: Fixed leverage sometimes not being set correctly
- Coinbase Pro: Fixed errors for newly listed symbols
- Added more sanity checking to command syntax parser
- Added graceful error handling for most exchanges
- Lots of UI bug fixes and improvements

1.0.4.20 – 28/9/2018
====================
- Improved protection against auto tab discard of Chrome
- Added Privacy Policy

1.0.4.19 – 20/9/2018
====================
- Added further protection against auto tab discard feature of Chrome
- Fixed a bug with OKEx failing to query account balances
- Fixed a bug preventing logging of successful order placement details

1.0.4.18 – 17/9/2018
====================
- Big bugfix with loading the TV addon (interceptor), hopefully solving disconnect after reload and caching/update issues

1.0.4.17 – 17/9/2018
====================
- Fixed command retry/timeout not working under certain conditions

1.0.4.16 – 17/9/2018
====================
- Some tweaks regarding TV connection loss detection/refresh

1.0.4.15 – 5/9/2018
===================
- Fixed bug permitting Bitfinex API to work correctly
- Added info on global testmode enable/disable to log

1.0.4.14 – 3/9/2018
===================
- Fixed second problem of command parameters changing between retries

1.0.4.12 – 30/8/2018
====================
- Fixed error of command parameters changing between retries
- Some TV connection loss detection tweaks

1.0.4.10 – 30/8/2018
====================
- Several minor changes to TV reload logic and changed default to disabled

1.0.4.9 – 30/8/2018
===================
- Fixed a bug that kept error retry and timeout from working
- Fixed a bug that kept TradingView reload after timeout from working
- Added event trigger and fire timecodes to log output

1.0.4.8 – 29/8/2018
===================
- Added function to save/download the log
- Alert commands can now have comments with everything after "#" being treated as a comment
- Added option to disabled all commands globally (Testmode) including a button in the popup window
- Added available balance/equity info to log output
- Added Coinbase Pro Sandbox support
- Added option to reload TradingView tabs after time of inactivity
- Added option to open/reload TradingView tabs in case of connection loss
- Added option to disable reloading of TradingView tabs on update/restart
- Error retry and timeout now working and not duplicated anymore per account (settings are per exchange!)
- Added CSS injection to widen the Condition drop down in the Alert Dialog on TradingView
- Bitmex: Fixed ETHUSD calcuations and linked order cancelations
- Fixed last error and success info not being updated in popup window

1.0.4.4 – 15/8/2018
===================
- Fixed 'orderID' error message on closing of orders/positions
- Fixed Poloniex test command

1.0.4.3 – 2/8/2018
==================
- Added support for the Gemini Exchange
- Added CSS injection to widen the Alert Dialog on TradingView
- Added info on last successful and last failed actions (with timestamps) to the menubar popup window
- Added a restart button on the live log page to force a reload of the extension manually
- Improved the live log with message size limits, better formatting, improved scrolling and more options (that are saved now)
- Tightened the requested exchange permissions for better security!
- Improved saving of configuration and permissions

1.0.4.1 – 31/7/2018
===================
- Quickfix: decreased log retention due to Chrome LocalStorage size limitations!

1.0.4 – 28/7/2018
=================
- Overhaul of popup window with easier access to the Settings window
- Added numerous additional debug and status metrics to the log
- Added persistent application log
- Added CoinPayments.net as a payment option
- Added navigation in Settings window (direct linking to log viewer, browser back/forward/refresh etc. working)

1.0.3.1 – 28/7/2018
===================
- Fixed saving of permissions and unlock state!
- Fixed accidental duplication of API key if it was renamed

1.0.3 – 22/7/2018
=================
- Added Coinbase Pro support

1.0.2 – 22/7/2018
=================
- Fixed bug preventing communication with TradingView in some cases
- GUI changes

1.0.0 – 9/7/2018
================
- Initial release