.Posted in CAT Versioning
VERSIONING C.A.T. BetaV1 First Version C.A.T. BetaV2+V3 - Lot of General Code Improvements - Add Ping Pong algo Parameter Total Update During Running - Add Currency code/Label on General Market View and Ping Pong creator panel - Add the SELL All if buy price goes under Y.XXXXXXXX - Add the SELL All if current price VS reference price goes negative over -X% - Add XPM Markets and XPM Gain Logs - Add Stop Ping Creation If Sell Price is > than Y.XXXXXXXX - Add Stop Ping Creation If Buy Price is < Y.XXXXXXXX - Now you can Add New Ping Orders at Run-Time - Remove Price Order Limits - Add My Balances TAB C.A.T. Beta2 V4 - Double click on suggested Sell/Buy price will fill the Ping Pong Parameter Order - Improvements in Order Recalculation - Now you can load and stop during loading the "markets loading process" in General Market View C.A.T. Beta2 V5 - Ping Orders created by users haven't the Retry Condition, if Order Creation goes Wrong, user get an Error Message with description - Market Analyzer  - "Close Only Ping Orders" Command (There will be a combobox with all the "Markets Command") - Gains are not text file but TABLE with columns C.A.T. Beta2 V6 New Ping Pong Algorithm Creation Interface Pending Operation Routine (To Avoid Frozen and Concurrent Structure Update) Estimated Portfolio Value (First Version) Login Screen Doesn't Retry when error occur Add a sorter to all the tables Lot of Minor Fix C.A.T. Beta2 V7 Recompiled in JAVA 7  You Can Export GAIN Tables to xls file Remove "General Info Panel"  in the "Market General Status Tab" Statistic Panel & Utility merged in unique panel Some code minor fix Some graphic fix Add Ping Table, Pong Table, Trade Table Add Info about Buy/Sell Pool (the amount from auto-ping orders are created) C.A.T. Beta2 V8 All Calls to Cryptsy will be done in separate Threads to avoid GUI Freeze Add Volume Information/Markets Creation Date/Last Trade in general markets table New Portfolio Value with more data added New Launch Parameter in BAT File, to Avoid Heap Space Exception Each Market have his error log, only general/unexpected/http errors will remain in the General Error Log General Market Status Panel is now "On Demand" by pressing the new button "Watch Market" in "Running Algorithm" tab Ping Pong Creation Panel is now "On Demand" by pressing the new button "Ping Pong Algo" in "Running Algorithm" tab For ping Sell Orders there will be a ComboBox with Suggestion with "Full Quantity" "Half Quantity"........"1/5 Quantity" Now you can DragNDrop The Tab in "My Market Tables" && "Global Gain Tabs" Table Gains are into a ScrollPane and Columns are not "auto-resized" A LOT of code reorganization. C.A.T. Beta2 V9 Vertical Dashboard General GUI Reorganization All Gain Tables Are Sortable You can Force Tab Closing while Ping-pong is running From the Toolbar you can choose to delete All Your Orders (Cryptsy + CAT) or only CAT Orders Added a Start TIme Label + Running Time Label in  Option "Ping Orders Are Static" (CAT Will not try to recreate user's Ping Orders) "Run Algorithm for XX Minutes and then return all to Primary Currency" : an option to Sell All Altcurrency After X Time and stop creating new Buy Orders. Some minor fix C.A.T. Beta3 New API Parallel Queue Request Stats Panel For Each Markets Sort Open Market in Lexicographic Order Markets Tab change dynamically colour depending by the algoritm Status. You can Copy (CTRL+C) your Portfolio Value written in the label Some code fix Little Gui Changes C.A.T. Beta3V2 New Color Status : Green-Wait, Yellow-Lookup, Black-Stop Red-Zombie Using of TimeThread insted of Timer (it seems more stable) You can Manage Log FOlder (Logs->Gain + Logs-> Error). There will be a default RootLogs (or you can change after Login Procedure) General Stats Panel (the sum of the Single Market Stats Panel) More Stats in the Panels Now you can decide to return all to SecondaryCurrency(BTC/LTC/XPM)  or PrimaryCurrency (Market Currency) When creating an order you can change "Total" which in turn will change "quantity" Now You can Start CAT Directly from JAR (Double Click or Right Mouse + Open With Java) Some code Fix Add a Read-Me File C.A.T. Beta3V3 Remove Pennies/Cent Dedicate Code General Stats for LTC/XPM Markets Java Exception will be printed in the Console Error Add A Lot of Check And Message in the Error Log (Lot Are False Positive) C.A.T. Beta3V4 Super-Process To Check Frozen Markets New XML File with minimum Quantity Required For Each Markets There will be 3 Gain Log (1 for BTC Markets, 1 for LTC, 1 for XPM) Some Fixes C.A.T. Beta3V5 Remove Aggressive Mode (Is equal to Normal Mode without Parameter set) You can Reproduce a Sound when a Ping-Pong is completed You can choose to never clear the markets log The Calculator in the Option Panel is now in the "Static Parameter" section in Ping Pong creator Panel.  User Option Panel Default Value Of Ping Pong is "Normal @ 0.8 GAIN" New Toolbar Option "Check % Diff on Each Open Market" Stronger Api Interface code due to "strange" Cryptsy Error in Api Jeson Return Some Gui Changes Some Code Fixes C.A.T. Beta3V6 Utility For Creation of CryptoMinQuantity.xml File Min Quantity label in "Generate Ping Pong Panel" All Market Logs will be save in a new Folder called : Logs\MarketLogs When Ping-Pong start, PingPong Parameters Will be Printed in The Market Log You can open a Market From "Your Balance Panel" C.A.T. Beta3V7 Added a Routine to check if API Get Orders Result is not sorted. The Order List Will Be Sorted By C.a.T. You can re-launch the process GetBalance and Check Current Status if process is frozen Markets list have 3 separate Tabs When you load markets there will be the TimeStamp of finish load Add Option "Always Create Pong Orders" in Ping-Pong Creator Panel Add a chart in the Global Statistic Panel with the number of ping-pong success Check after Login that the 4 Directory (RootLog + ErrorLog + MarketLog + GainLog) exists. If not C.a.T. will create them. Various fixes C.A.T. Beta3V8 New API Url : Fixes portfolio problem due to a change from Cryptsy in "getinfo" Api Call Added new Panel in Market Algo : Algo Status Added Never Buy Under Option Added Never Sell Over Option Added these actions at Market Level and Global Level (On The Cryptsy toolbar)  - Stop Process  - Stop Ping Creation  - Restart Ping Creation  - Stop Pong Creation  - Restart Pong Creation  - Stop Ping Buy Creation  - Restart Ping Buy Creation  - Stop Ping Sell Creation  - Restart Ping Sell Creation  - Stop Pong Buy Creation  - Restart Pong Buy Creation  - Stop Pong Sell Creation  - Restart Pong Sell Creation  - Close All Orders  - Close All Sell Orders  - Close All Buy Orders  - Close All Ping Orders  - Close All Ping Buy Orders  - Close All Ping Sell Orders  - Close All Pong Orders  - Close All Pong Sell Orders  - Close All Pong Buy Orders  - Remove All Trades Some Other Fixes + Code Reorganization C.A.T. Official 1.0 Export Portfolio Value in Excel Format On "Save Current Parameter Algo", if algo is not running, temporary parameter will be saved. From General Market Lookup Panel you can Export All Markets Data (1 Excel with 8 sheet) Added "Real" % GAIN In Gain TAB/Global Gain Tab You Can Update XML Min Quantity File At Runtime (New Option on Toolbar Tools) When yo SAVE Xml Min Quantity C.A.T. will suggest the folder where the old XML Quantity file is. Added VOLUME (BTC) in Load Markets Panel CAT Logo Gallery Some Gui Changes Some Fix C.A.T. Official 1.1 - C.A.T. is now able to get the primary Markets and create GUI interface in dynamic Way (BTC, LTC, XPM, XXX...) - Add Real Portfolio Value - Added "Always try to create Ping Order" - Fix inside Static Mode Algo - Add a Check into "Always Create Pong" algo - Added NTX Dedicate Quantity CODE (No Decimal) - Remove All Code to manage Min Market Quantity (Min Order Total is now 0.00000010) - A Lot Of Code Reorganization/Refactor/Improve - Some GUI Change C.A.T. Official 1.2 - Add "Check To Not Buy/Sell To Yourself" in Ping-Pong Parameter - Some fix for algo on market with 1 satoshi difference in Best Buy/Sell price - New Identifiers in Order Calculator Messages (Order Type-CalculationType-Ping/Pong Type) - Change Double Variables with BigDecimal Variables (higher precision) - Market Tables "With statistic Calculation" are loaded row by row - Some general log message reorganization - Some gui changes - Lot of Code refactor - New Json Faster Library C.A.T. Official 1.3 - Now You Can Delete Or Update (Recreate) a Single Order or a Order To Restore, Request are processed during lookup so you have time to can change idea - There's a new file called NODECIMALCURRENCY.xml. You must put inside it currency Code (NXT,MN1) with no decimal quantity values allowed - Change and improve Some Log Messages - Add messages for event "Pong Trade To Buy Pool" - Remove Adjust Price/Quantity routine from market error order creation (now you can change Order Data And Set new values/evaluate error reason) - Some Code Part Reorganization to allow "easy" interface with other API site. - Some fix C.A.T. Official 1.4 - Change name from Cryptsy Automatic Trader to Cryptocurrency Automatic Trader - C.A.T. is now able to interface with other exchanger (a lot of changes to adequate code) - New Multi Login System - New Multi Log/System Folder - XML File Parameter are divided by Site - A lot of code reorganization/improvements - Some GUI Changes - Fix Tables sort (now Number are sorted as number)  - Added file FIATCURRENCY.xml (Used for convesion routine FIAT->BTC by Estimated Portfolio Function) - New Ping-Pong creator Panel Layout - Other minor code fixed C.A.T. Official 1.5 Added Poloniex API (beta phase) A Lot of GUI Refactor (new Icon, new Layout) New Table Market Model With Fixed Columns Clean/Improve some old code Some fix (Thanks to beta-testers :-) ) Remove Dialog Windows, now all Windows are opened in the Main Panel Lot of improvements in the API Caller Class C.A.T. Official 1.6 Api Connection Indicator on Toolbar Some Code Fixes Some Code Improvements Remove Lateral Dashboard (Now Dashboard is place on the toolbar) Improve HTTP Endpoint C.A.T. Official 1.7 New JTable Markets with Fix First column  Recompiled in JAVA 8 (Mandatory Updgrade to JRE Java 8 ) Some Major Fixes C.A.T. Official 1.8 Unified Table Algo Status & Statistic on a single panel Unified Table Ping + Trades + Pong + Orders To Restore on a single panel Unified Market Log + Error Log on a single Panel Some code Fix Some code improvements Fix On Market Volumes (Some markets Volumes are expressed directly in BTC, other In Market Currency and others in FIAT) There's a new XML File called EXCHANGER.xml. File contains some info. If C.A.T. will found this file into SITE Folder, it will load the data. In the Frame Title, after the Application Loading you will read on wich site you are logged Added SiteName In the Suggested XLS File Name For Portfolio Export  C.A.T. Official 1.9 Added Bter API Interface Now you can Update THE BUY/SELL POOL values with right click You can start the process without needed to add new orders (you could add values to Buy/sell Pool) Some code/gui Changes C.A.T. Official 2.0 New Logo Added Bittrex API Interface Some code review C.A.T. Official 2.1 Now C.A.T. have a multi-login system, you can trade at the same time on every Exchange Some Code/Gui Fix Added EXCHANGER.xml for Bittrex Fix Poloniex Crash (New Api Format) Added Cancel Order (Exchange + Only Site) To single Market Action List C.A.T. Official 2.2 Added HitBTC API Interface Add "Active Exchange" MenuItem to allow Expand/Collapse Exchange Frame Background Logo Exit Exchange Item on Single Exchange Frame Toolbar New Price/Quantity Formatter (From General Y.XXXXXXXX to Single Market Int.Dec Format) Remove 0.5 % Gain Limit. Now you can Set Any Value > 0 (But Take Care Of Fees!) Some Gui Change Some Code Fix C.A.T. Official 2.3 Add BitStamp API Now suggested % Gain is BuyFees + SellFees + 0.1 New Ping-Pong Parameters Layout  New Buy/Sell Pool Editor With Preview Function when Right Click Buy/Sell Pool on "Pool Orders & Trades" Tab New Pool Parameters Tab with Limit BuyPool To (Total) Limite SellPool To (Total) Use Only % Of Buy Pong Trade into Sell Pool Use Only % Of Sell Pong Trade into Buy Pool Fix HitBTC Problem (a default 0.1 Fees will be applied if Fees Attribute will not be available from API Call) Some Gui Changes Some Code Changes Some Fix C.A.T. Official 2.4 Added Lookup "Number" Start message on Every Lookup First Market Check Routine is performed only once every lookup New "RUNNING Option Tab" added to PING-PONG primary TAB. Features  : - Exec a Lookup Routine Every X Seconds (Min 15 seconds) - Exec An order recalculation routine very X Lookup (default 3) - Check Buy Sell Pool Every X Lookup (default 5) Fixed a Bitstamp Problem (Now Limit are 2 DecPos for Price and 8 Dec Pos For QTY, These data are stored into EXCHANGER.xml in Bitstamp Folder) A Lot Of Code Reorganization Some GUI Changes C.A.T. Official 2.5 New Market Explorer Panel Now you can restore orders (due to crash or any other reason) from the Market Explorer with a right click on MyOrders Table (multiple selection allowed by pressing CTRL Key) Now you can select multiple markets (by pressing CTRL or CTRL+SHIFT) and open them at the same time with a right click -> Open Market Now it's possible to open the same market as many times you want (to create different algo running on the same market) Added the RAM Usage (Expressed in MB) on the Main Toolbar Some Gui Changes Some Code Fix Code Reorganization C.A.T. Official 2.6 Add a Panel "Advanced" in Ping-Pong Algo Creator Add 4 new options - If Necessary, Adequate order to Min Total (Qty*Price) (Advanced) - Stop after X completed pingpong trades - Never Buy Over Your Last Sell Price - Never Sell Under Your Last Buy Price Now you can set a negative % Gains. Wich means that you'll be able to trade always on top of orders book (and accept eventually a loss%) Market Log have now color text and it will be easier to read Add a new Panel in the Status & Stats Panel. 2 Info Are Moved in : Start Time + Run Time, 2 Info are added : Last Buy/Sell Price  When an Order creation fails, the "Order To Restore" is recalculated before a new order creation attempt Some Code reorganization Some Gui Changes Fix HITBTC problems (site changes Api Format) C.A.T. Official 2.7 - Some Code Reorganization - Some improvements on the XML save/file method. - Add Advanced option : Merge Equals Ping-Pong Orders Into a New One - Add Advanced option : Merge Equals Trades Into a New One - Add Ping-Pong Option : Create Ping Orders Only If % Market Spread Is > (it replaces option "Always Try To Create Orders From Buy/Sell Pool") - Move Price Calculator from STATIC Ping-Pong Panel to Exchange Toolbar - Log Scrollbars are always set on the last line (bottom) - Log Scrollbar is now faster when use the mouse wheel - Move Analyzer from DASHBOARD to TOOLS C.A.T. Official 2.8 - Added BitFinex API - Fix : "% Check Failed Reference Price" message will print the MinSpreadPingCreation when order is a Ping and the MinPercGain when order is a Pong - Add option "Never Create Ping with Quantity > x" to the Buy/Sell Pool Option - Add option "Don't create new ping if Total Sum Orders Amount is > X" - Reduce "orders to restore" qty by x% before a creation retry - Login  on Exchange is now done in a separate thread (this avoid the "UI Frozen" when try to log on a exchange while is down) C.A.T. Official 2.9 - Lot of internal Code reorganization/mininization - Fix the "never buy over/under last sell/buy" parameter - Fix a Bug with Nonce on poloniex exchange - Fix a problem on Bittrex Return Message (a new Antispam message "THROTTLED_1_SECOND") - Now you can change the order type from STATIC to DYNAMIC with a right click on order table and vice versa. - Order Table show Dynamic/Static order type (and also the market log) - New Option "NEVER CREATE PING WITH QUANTITY Available Qty Then Use All Available Qty" C.A.T. Official 3.3 - Some Fix (thanks to C.A.T. users) - Some code changes/Optimization - Full Image (icon,Png,jpc) resize with a power tool to preserve quality (-1 MB Space in compiled source)  - When you change Algo Mode, C.A.T. will change suggested order type creation (Dynamic/Static) - the "Current" tab in Ping-Pong Tab is now set on the RIGHT and when you update Parameters there's no auto-focus on it - New Option "Highlight Markets With QTY Bal > 0" in "MARKETS List" Panel - Now Exchanges option are saved/loaded on XML File (OPTIONS.XML Inside CATSYSTEM/EXCHANGE folder) - When a Ping-Pong is Completed you can send an HTTP POST containing Ping-Pong data to a personal URL (Check Tool->Option Tab) - When double click on a market and the market is already open, you have a new question "Go To Market Tab". C.A.T. Official 3.4 - Added YOBIT Api - Some code refactor/ API fix - Added Parameter : "Put X% of your value into buy pool". - Added Parameter : "Put X% of your value into Sell pool". - Added Parameter : Never change QTY during recalculation C.A.T. Official 3.5 - Added C-CEX Exchange - Lot of Code Reorganization - Start a Sub-Project about Saving Ram Usage over the GUI Part - Dust Panel Added into Ping-Pong Panel Creator     - Ping Order is Dust if Current QTY is < X     - Ping Trade is Dust if QTY is < X     - Ping Trade is Dust if Trade Total < Min Total Market Order     - Dust Elements are Discarder/Put into Buy/Sell Pool C.A.T. Official 3.6 (BETA) - Now You can (Finally) Save/Restore Orders from/To XML File - Code Reorganization (A LOT) - Code Optimization - Some Fix (Vaultoro Changes an Api Response Format from String to Integer) - GUI Changes on PING-PONG Panel      - Update Button is more visible     - Added Label Ping-Pong Parameters     - Switch position from Ping-Pong Parameters Panel and Ping-Pong Generator Panel     - Change Label on Button "Validate Status & Parameters" to "Check Status & Suggest Prices" - In the "main" single market panel you can remove/move/add panels (thanks to a new combobox)  - Some panels are not stored in memory while they are invisible (closed) - QTY Combobox in Order Creation Panel will suggest amount to buy (at suggested buy price) using 100%/75%/50%/25% of your balance - Now You can Set Any LOOKUP Time You want (> 1 second).  C.A.T. Official 3.6 (BETA2) - Change XLS Export to CSV Export : file is a txt with comma separator, easier to manipulate and XLS library removal will free 600KB+ in JAR File - Market Explorer is now loaded inside a Fixed width Frame.  - Code reorganization - Fix a Bug on FEES calculation when PING QTY is < PONG QTY C.A.T. Official 3.7 - Remove Cryptsy Exchange (it won't open again, deal with it) - Internal Code reorganization - Add new Exchange Option (Print All Api Call). To help users in debugging API problems - Now the Error Console is the General Console (not only errors will be printed) - The Button "UPDATE PING-PONG PARAMETERS" is more visible on the Ping-Pong Algorithm Option Panel C.A.T. Official 3.8 - ADDED cryptomic Exchange - Create a New Panel in PING-PONG Normal Mode : Buy/Sell Limit - Now You are free to Create your Limit Prices Rule - Size Optimization : now C.A.T. total size is Less than 1 MB!!! - Lot of code reorganizazion/Some Fix - Fixed a CSV format Export Problem - Split Attribute SKIP ORDER WITH TOTAL LESS THAN X in SKIP BUY/SELL... - Last Buy/Sell Ping/Pong values are added to the Status & Statistic Panel C.A.T. Official 3.9 - ADDED CEX.IO API - Some GUI Changes - C.A.T. is able to manage (not only for Bitstamp) Login with Public+Private+UserId. (Bitstamp Users Need to reinsert their key) - New About Page with HTML Link - Code Reorganization/Fix/Optimization - Remove The old Analyzer  - Tools -> Calculator is now "not modal and always on top" - New General Console (with clear function like Market Log) C.A.T. Official 4.0 - Added Cryptopia API - Upgraded BITSTAMP Api to V2 (you can trade on all markets) - Various Fixes/Gui Changes - Now CAT Will Create (on startup) a file called : "CAT_Log_.txt"      - Particular kind of error will be written on that file.     - If file is empty during CAT Program Exit it will be deleted.     - If file is  not empty, it will be a good idea to send me that file :-) C.A.T. Official 4.1 - Add OKCoin API - Some Optimization in API Interfaces - Usual code refactor + FIX - A Lot of code reorganization to allows the introduction of Ping Trade Pool from Version 4.2 and a lot of new parameters - Now you will get a MSGBox if an error occurs during Login Phase - Improve The "Order To Restore" (from XML) function when you have A LOT of orders to restore.  - Add the info "Creation/ReCreation Life" in Pool,Order & Trades tab - Rename Option "Never Buy/Sell Directly" to "Avoid Immediate Price Match In Order Book" - Update CAT Code to Poloniex FEE System, FEES will be directly read from API Return Call. C.A.T. Official 4.2 - Added Kraken Api - Various Changes/Fixed (Nothing important) - Big Refactor in API/HTTP CAT System (full refactor / re-test of all API system) - Various FIX in API/HTTP CAT System  - Bitfinex now Load Markets Without using the Exchange.XML File - Fix a Bug on Limit Price Rules. C.A.T. Official 4.3 - Added Livecoin.Net API - Removed Cryptomic Exchange - Added Console API (to print api Responses or check for API errors) - Some optmization/code reorganization/Improvements - A Fix Over Poloniex Fees Calculation - Various Regression Fix (Problems were introduced from heavy code changes occurs from 4.0 to 4.1 & 4.2 versions) - Path CATSystem\\ErrorLogs is now CATSystem\\ExchangeLogs inside you could find     - GENERAL_ERROR_LOG (If an error occurs not at market level)      - _ERROR_LOG (If an error occurs at single market level)     - GENERAL_API_LOG (For Error at API Level or API Results if user ask for print them) - XML Save Order/Parameters    - Market Algo Panel are saved/restored considering the Tab original position.   - If there is more than one algorithm (market Panel) over the same market, orders are saved/restored considering each individual Tab - Market Limit Panel is now divided in 2 part : The static Rule and the Dynamic Rule.  - You can edit a limit rule by double clicking a the rule from the list. - Some update/improve (remove old code/gui element) from MyBalances Panel. - Remove the Management of TAG from EXCHANGE.XML File - Remove EXCHANGE.XML where possible, only Bitstamp/OKCoin need that file currently  C.A.T. Official 4.4 - RAWX Exchange API Added - Exchange API Added - Various Fixes/Code Changes. - Order Creator and Buy sell pool are now merged into a new Panel - Ping-Pong Algorithm Parameters is now a separated panel. - Improve in Login Panel : now you can log on more than one exchange without close/Open the window - Fixed another problem on Poloniex FEES (i hope this time forever)  - No Markets.XML Is now needed. - From this version The "CATSystem hierarchy folder" is created only when needed - Added 2 new advance Options :      - Subtract Fees From Ping Trade Buy Qty Before Create Pong Sell     - Subtract Fees From Ping Trade Sell Total (Qty x PricE) Before Create Pong Buy - Your order are highlighted in Green/Yellow color in Market Explorer Market Buy/Sell Order Tables - Market Actions/Global markets actions has been grouped in "Menu" - A new Single Market Toolbar has been added, currently with MarketLabel/Market Panels/Market Actions/Lookup Status. Combobox and Labels has been deleted. - New Market/Global Market Tabs has been Added      - "Remove Orders From CAT" (works like DELETE Function but orders will remain on Exchange)      - "Reset" with functions "Reset Ping-Pong Running Time" and "Reset Ping-Pong Completed Counter" C.A.T. Official 4.5 - Code Reorganization (A Lot) - Minor GUI Changes - Improvements on internal Algorithms - A a new STOP LOSS Panel for Dynamic Algo, where you can add a set of STOP LOSS CONDITIONS - Now you can create LIMIT RULES that works on PING on PONG or BOTH (2 checkboxes are added to the LIMIT PANEL) - When you select a Panel from the Toolbar (Main Frame or MArket Frame) that panel will become the active panel. - Buy/SEll Pool And Manual Order Creator Are put inside a TabbedPane - Info Like "Market Limit","Market Spread" and "Available balance" are in a separate Panel over the Order Creators Tabs - PIng Pong Parameter Panel is come back near the Order Creator Panel (faster to use). Panel name is "Generator & Parameters" - Added 3 New Options to PROCESS TAB     - Stop Ping Creation if number of Active ORders is > x     - When Convert All to Became Active, delete BUY PING     - When Convert All to Became Active, delete SELL PING - Move Parameter "Stop Ping Creation if Total Orders Amount is >" from Pool Options to Running Options - A new XML Environment has been created (this will speed-up some load/save routines) - Now you can save/load markets (parameter+orders) at the same time. - Market Explorer is now auto-resizable and it will fit the CAT Frame. - Some changes on login screen : when userId is needed a label appear and Exchange list is sorted by login frequency C.A.T. Official 4.6 - Added Coinsecure API - Remove RAWX Api (trade on exchange is no more active and it will close during 2017) - Various Fixes/Code Refactor/GUI Minor Changes (thanks to various CAT users) - Buy/Sell Pool Panel Gui Refactor - Now Buy/Sell Pool and Ping Order Creator are on the same panel  - New Panel Filters (Dynamic Mode). You can now filters Orders (Buy/Sell) for Qty (market Currency) Or Total (Partner Currency)  - In Panel Filters a PREVIEW Table is added. With this table you can have a preview about the filter applied by C.A.T. during price calculation. - Added a Menu Item in "Other Market Action" Menu : CLOSE ALL OPEN TABS (For running algorithm a C.A.T. will ask you to close or not) - Table Gain and Global Table Gain have different background renderer for odd/even lines number - Auto Backup Option (Orders + Parameters) is now available from Exchange Option Panel - Now you can force CAT to wait at least X Milliseconds from 1 Api Call to Another. You can find this new option in Exchange Option Panel - Now you can set the Number Of Visible Elements (1 Elements could have more than 1 lines of text) of all C.A.T. logs (market/error market/Api/Exchange Console) C.A.T. Official 4.7 - Added TuxExchange API - Addeq Liqui API - Added the LOGS MANAGER. You can reach it from the MAIN Toolbar TOOLS -> LOG MANAGER. You'll be able to delete logs from CATSystem Folder. - XML File have now the same header format with CAT Version Attribute(this could be useful in the future) - Various GUI/Code Fix/Improvements/Some Algo Parameters has been moved to a more appropriate panel - Starts a Big Improvements in some market log messages (more verbose, more info, easier to read) - XRP Markets on Bitstamps are Available - Complete Review Of Current Parameters Print Routine (Parameters are reorded according to parameter tabs)  - Now Api calls are able to maintains original data result even if an error occurs. When an api parse error occurs (for any reason)    you will have a CONSOLE LOG with Error + Api Response + Error Trace. This will help me a lot to give support and you to understand some errors (ex "Error:Too Many Api Call") - On The Rock Trading Exchange/Poloniex you can now have Available and Held Portfolio Amount. - After a Ping-Pong complete a full summary of the ping-pong will be added in the MARKET LOG (with Green Font). - 2 Advanced Options Are Added :    A - Consider % Of Your Real / Balance (this will allows CAT to consider less than your real portfolio value)   B - Subtract All Buy/Sell Pool Current Values While Considering Available Amounts (this will allows CAT to subtract the temporary buy/sell pool values from available amounts) - 1 Buy/Sell Pool Option is Added : "If Necessary, Adequate Pool Order to Min Total (Qty*Price)" this option will be only for new PING From Pool.   The old Option is renamed to "If Necessary, Adequate Ping/Pong Order to Min Total (Qty*Price)" and it will works for all the other cases. - 2 Buy/Sell Pool Option Added :      - Add Fix Amount into Sell Pool Every Pool Lookup (expressed as MARKET QTY, CAT will convert into using last market price)     - Add Fix Amount into Buy Pool Every Pool Lookup (expressed as PARTNER QTY) - Added a Check Option for Buy/Sell Pool : If Pool Values > Available Amount then Adequate Pool Values to Available Amount - Added a Buy/Sell Pool Option "RESET BSP if current left value is < X" - Options "Stop Ping Sell/Buy Creation if Value is >/< X" are renamed into "Stop Ping Creation If Current Market Sell/Buy Value is >/< X" and are moved into Buy/Sell Pool Options   And they works also for STATIC Algorithm (previously they works only for Dynamic Algorithm) - Options "Stop Ping Creation After X Ping-Pong Completed"/"Stop Ping Creation If number Of Active Orders Is"/"Stop Ping Creation If Total Order Amount is > X" Are moved to Buy/Sell Pool Options C.A.T. Official 4.8 - Various Improvements in Thread Concurrency/Memory Optimization - If 'Unhandled Exceptions' are written into CAT_Log_.txt (in CATSYSTEM Folder) a message will advice you during CAT Exit Routine. - Greate Improvements in Http Layer (improve synchronization routines with parallel calls) - Start Lookup Is More Verbose (You will have a summary about situation) - Main Window is no more full screen by default, but is 1500px X 900px. Window still remain resizable.  - Internal Frames Are Removed : For Any Exchange you're logged in a TAB Will be added to a Max-Sized TabbedPanel (With DragNDrop Functions) - Backgrond CAT Image will be displayed only when you're not logged on any exchange. - Remove Active EXchange Tab From JFrame Toolbar - Market Errors are now also printed on Market General Log inside a Text Frame Around the message. - A multi-editor has been added to the "Order & Trades" Panel :      - This editor Replace the Right Click Function     - Editor appear/disappear when needed     - Now You can open multiple Elements (by double click) at the same time     - An Element in Edit Status will be suspended from the Current Running Algorithm until edit is finish     - This new Architecture will be easier to maintain/improve - The "Super Thread" that search for "Frozen Ping-Pong Algorithm" to force restart, is now able to manage Lookup over 15 minutes - Template Parameters has ben added to the GENERATOR & PARAMETERS Panel     - Now You can Save Your Current Algo Parameters As a Template to reload anytime you need     - I'll be able to add new kind of templates in the future     - You can delete templates     - Templates are Stored as XML Files into new CATSystem/Exchange/AlgoPresets Folder - Added an Info to PONG Table in Order & Trades Panel : % Spread Ref/Current that is the % Spread between the current pong price and reference price - Added A Checkbox into RESTORE ORDERS PANEL (From XML) : Restore/Restart All Without Prompt Any Message.    Checking this option before press the Restore Orders button won't ask you for any confirmation : all orders will be restored and parameters started. - 2 Options are added to exchange options : Delete MArket Logs older than x Days and Delete Exchange Logs Older Than x Day   During startup C.A.T. will prompt a message about files to delete and you'll need to confirm delete from disk operation.   Deleted file path will be printed in CAT General Console - Added Limit Option : "When Limit Is Applied Adequate Price To Limit". With this option limit won't stop order creation/recreation but will set price = limit C.A.T. Official 4.9 - Yobit now shows Held and Available information in MyPorfolio panel - Added a new set of checks between Application Layer and Api Layer. This will improve errors management. - A lot of improvements/code reorganization - Some Fix (Thanks to CAT users) - Starting some improvements in Load Orders routine (it will be completed in 5.0 release) - A new process will check the error file into CATSystem folder (CAT_Log_). Is something is written inside during CAT run a message will advise you - Added a new Advanced Option : Find Trades Using My Trades Api Call / Current Order Qty VS Previous   - My Trades Api Call : on exchanges that offers this function, any Trade have the OrderId related. CAT will be more precise, but for any trades a pong will be created   - Current Order Qty VS Previous : CAT will works on Current Order Qty VS Previous : if Difference Qty will be the sum of 2 or more trades, CAT will create only 1 PONG - A Tooltip is added to PING/PONG Tables in Order&Trades Panel : point the mouse on a single line will trigger a Tooltip showing all Trades occured on the selected Order - Logs Reorganization :    - Single Market Error are printed inside a "BorderMessage" into General Market Log, and without Border Message inside General Console (with label Market origin reference)   - Single Market Error Log is Removed   - Exchange API LOG and GENERAL Console are merged into a Single Console.   - Any message that goes into new Console will have an info about the Kind of Message : Info/ApiPrint/Error   - New Console Txt File into CATSystem\\ExchangeLogs will be named : GENERAL_API_LOG_ - Exchange Options "No More Than 1 Api Call Ever X Milliseconds" is set to 200 Milliseconds  - On Static Price Panel In Ping-Pong Algorithm you can now set A BuyPrice >= Sell Price. A Confirmation message will appear in that case.
.Posted in CAT User Guide
GUIDE - HOW TO USE C.A.T. (UPDATED TO 4.7 VERSION) BTC Start  BTC     From the Start Screen you can - Exit C.A.T. - Login Into an exchange - Expand/Collapse current running exchanges - View C.A.T. Version Info - View Current RAM Usage Frame is Resizable from Full Screen To Minimum Size BTC Login BTC      Press LOGIN Item on the Main Toolbar :  - Choose the site you want to log-in to. - Insert your private and public keys and press enter. If exchange needs the user-id a third textbox will appear. - C.A.T. will verify your key and will try a call to the trading site you've chosen. - No Third Party Server Will be ever called by C.A.T. If KeyPair is accepted you will get a Welcome Message. You can now close the login window, and the main trading GUI will appear. Or you can also login into another exchange before closing the login window. - C.A.T. will save your Public and Private Keys in a file named Key.XML. This file is located inside the CAT System Directory.    - C.A.T. Root directory is "currentRunCATdirectory\CATSystem\" - Exchange Root directory is "currentRunCATdirectory\CATSystem\ExchangeName\" - Inside the ExchangeName folder you will find these folders/files : ExchangeLogs (You will find logs at Exchange level, API print, Errors etc...) MarketLogs  (You will find logs at Single Market level) GainLogs (You will find logs about your Gains) EXCHANGER.xml (Exchange Options) - If these folders doesn't exists, C.A.T. will create them. - C.A.T. Will also create a File Named : CAT_Log_YYYY-MM-DD_HH_MM_DD.txt in CATSystem folder If an error not handled by C.A.T. will occur, it will be printed inside this file. If file will be empty during C.A.T. quit routine, that file will be deleted. Otherwise SEND ME the file and i will take a look BTC Exchange Frame BTC Exchange Frame will appear after a successfull login. Action From The Toolbar :  - File Save Open Markets Parameters/Current Orders or Both Load Markets Parameters/Restore Orders or Both Exit Exchange - Dashboard Open Markets List Your Balances Global Gain General Statistics General Console - Markets Global Action (Action chosen is sent to all open markets)  cancel/remove all kind of orders/trades start/stop/restart single processes reset some value - Other Market Action :  Check Difference Between Best Buy/Sell Orders on Each Open Markets Sort Current Open Market/Utility Tabs Close All Open Panels (for Markets Panel with Running Algorithms a confirmation message will appear) - Tools :  Options Calculator - Execute A Full Automatic Backup Every X Minutes. You can choose to save all your open markets parameter and orders in automatic mode inside the Folder \AutoBackups every X Minutes. - No More Than 1 Api Call Every X Milliseconds. Useful when you want to set a limit to the number of API Calls that will be performed by the CAT Api System during a certain amount of time.  This is very useful when your connection have problems and all markets are in Lookup Status : when connection will return active all pending request will be processed at the same time causing a possible flood to the exchange, you can avoid this behaviour using this option. Or you can use this option for exchanges who give limit like "No More than 60 calls / Minutes". In that case you will set this option to 1000 Milliseconds and you won't have any ban problems. - Limit CAT Log Elements to X : A CAT Log Elements is a message composed by 1 or more lines. With this option any logs will have a maximum number of messages to be shown. When limit is reach old messages will be removed (FIFO queue). Market Log Files on Disk (In folder \ExchangeLogs and \MarketLogs) are not affected by this option. Set a Very high value could cause RAM saturation, suggested value is 100-300. - Print Api Call Result to Api Console. Useful to print and look at Api responses. Usually used when a debug log is needed - Reproduce a Sound when a Ping-Pong is complete. You will hear a "dling-dling" sound for every completed ping-pong. - Make a Post To URL When a Ping-Pong Is Completed. When this option is activated a POST Call will be performed and data about ping-pong will be sent to a REST Page. An useful calculator that will help you to calculate the Buy/Sell Price According to the % GAIN you wants to have - Api Connection: Every API call, you will see a "red blink". If connection drops, icon will change from green to red.  BTC Markets List BTC Markets are group by "Partner Currency" (BTC/USDT/XMR/ETH in the image) For any group you will have a tab where you can - Load Markets by pressing the "Get Markets Data Button" - Add some statistics calculation by check the "Load With Order/Trades Statistics" (this operation is longer than the normal market load process) - Highlight market where you have a Market Currency balance > 0 by check the "Highlight Markets with QTY Bal > 0" These are the statistics calculated :  - % Difference is the price difference between the Highest and Lowest trades over the last 24 hours. - Sell Order/Buy Order is the numbers of orders currently open. - Sell Trade/Buy Trade 24H is the number of trades completed in the last 24 hours. You can sort this table in Ascending/Descending Order by clicking on the Column Header Double Click On a Row will Open a new Tab for the selected Market. You can open MULTIPLE Markets at the same time using the CTRL (for single multiple select) or CTRL+CAPS (for multiple range select) and then RightClick->OpenMarket  BTC My Balances BTC   If you want to check your balances press the button "Load Balances" Your Balances are highlighted in green. If Exchanges API returns the Held Values you will also see the HELD column. You can sort the table by Column. You Can Open A Market By Double Click the Coin Name (A Popup Will Ask You wich markets you want to open) You can Export Your Portfolio to CSV Format. Estimated Portfolio Values are calculated this way : BTC Amount + Sum of All AltCurrency * LastMarketPrice BTC Market BTC The image shown is a what you'll see after opening a Market using the Market List There's a dedicated tab for each open market.  Quick Summary :  Market Panel has a Toolbar with :  - Market Label (just information about market name) - 2 Dropdown List The "Market Panels" Menu containing all the Panel you can open/collapse. The "Market Actions"  Menu containing a set of actions you can perform on your Algorithm/Order/Trade. This is very similar to the Action Menu you can find on CAT Exchange Frame Toolbar - an Algorithm Status label that helps you understand the Algorithm status Market Panel have 6 Specific Panels   Generator & Parameters : Used to Create Orders/Edit The BuySell Pool and Set Up Your Algorithm Orders & Trades: Used to monitor and edit all the current market structures Logs: Where you can read what actions/events are occuring while your algo is running. There's also an Error Log Tab that is very important to check. Status & Statistics Panel : There you can perform some reset action and take a global look at some current/historical statistics Gains : Where you can check/export all your gains Market Explorer : Where you can load Your Order/Trades and Market Order/Trades. You can also use this panel to RESTORE your personal orders    - The "Market Panels" Menu contains all the panel you can expand/collapse.  - The "Market Operations" Menu containing a number of options which can be sent to the market : Start/Stop the entire process Stop/Restart a single task (for example the Ping Order Creation Process) Delete Orders (you have many options here about what kind of orders you wants to delete) Remove Trades (no PONG will be created from the removed trades) Reset some comulative value   Status Label Meanings :  - Wait (Green) : Algo Is Sleeping - Lookup (Yellow) : Algo is checking for trades/order creation/order recreation, etc... - Red (Zombie) : Market is inactive, no Buy/Sell Pool values, No Ping, No Pong, No Trades - Stop (Black) : Algo is not running BTC Generator & Parameters BTC This is where you create orders and update the Ping-Pong Algo. This is the most important tab. This panel has 2 main panels : - The PING-PONG Generator Panel Using this panel you can : Create new Ping Orders (GUI will help you choose best price, qty and static/dynamic order type) Update the buy/sell pool and let CAT create your pings for you (this is considered an advanced features so you must first fully understand how pool works) Check Your Balance/Get Current Market Spread/Get a Suggested Buy/Sell Price Check Market Limits : max/min quantity,prices,total and number of digits for the specific market. -   Order Creator Usage Example :  Press the Check Status & Validate Price Button if you want to get : - Your Primary/Secondary Currency Balances - The % difference between the Lowest Sell Price & the Highest Buy Price - A suggestion about the price to start a Sell/Buy Orders (according to the algo parameter you have set). Create/Add User Ping Orders. - Choose Type+Price+Quantity+Mode(Static/Dynamic) and press ADD PING ORDER (repeat for each order you want to create) - Press the CREATE ORDERS button and C.A.T will create new orders. During Ping-Pong Running - You can Update All Your Ping-Pong Parameters by pressing the Update Ping-Pong Parameter Button. - You can add New Ping Orders (Add New Ping Orders Button).  Buy/Sell Pool Edit Example :  The value you must insert is a TOTAL Value (QTY * PRICE) in other words is a value expressed as PARTNER CURRENCY You press the "New Values Preview" to take a look at how CAT will create your orders. That is only a preview based on current market values. All your limit/filters are not considered - The PING-PONG Parameters panel, where you can set all the Ping-Pong Algo Parameters attributes. Panel is composed by few tabs, that lets you modify Ping-Pong algorithm paramers. When you want to UPDATE the current running Algorithm, you must press the UPDATE CURRENT PING-PONG PARAMETERS Mode Static Mode Choose a fixed price for Buy/Sell and C.A.T. will always Buy/Sell at these prices, without any adjustment. Normal Mode - Min % Guaranteed Gain. Is the minimal % of GAIN you want guaranteed from C.A.T. after a Buy-Sell/Sell-Buy operation. If this percentage is not guaranteed, C.A.T. will wait. Default Value is Exchange Buy Fees + Sell Fees + 0.1% - Create Ping Orders Only If Market Spread % Is > X : With this option Checked, C.A.T. will create new Ping Orders (From the Buy/Sell Pool) only if the current % Spread Between best market prices is > X - Don't create ping with total < Than : After a successfull Ping-Pong the total amount of this order will be put in the "Buy/Sell Pool" and from the "Buy/Sell Pool"  new sell/buy orders will be created. With this option activated you will limit the creation of "little orders". If the total in the "Buy/Sell Pool" is < than this parameter, then C.A.T. will wait. - Always Create Pong Orders From Trade : C.A.T., by default, tries to create your Pong Order on top of the sell/buy book order. If this is not possible (there's no % Gain Guaranteed) C.A.T. will retry later. With this option activated, C.A.T. will calculate the minimum price (TradePrice +/- %GAIN) and will create the order INSIDE the Order Book. - Avoid Immediate Price Match Order Book : with this option you will never buy/sell directly (your Price directly match an active order). If a Price Match Occurs CAT will recalculate the price adding/subtracting a single market price unit. - Check To Not Buy/Sell To Yourself : When you have Buy and Sell orders at the same time, after the price calculation, C.A.T. will check to not buy or sell to yourself. BUT in markets with 1 Satoshi difference between best buy/sell price, you  must remove this option.  - Try to Stay Alone on Top Orders Book : With this options C.A.T. will always try to create your orders in the best position and alone with others orders Normal Mode - Filters  When CAT load orders it loads the full order book. Then all calculation will be performed according to the best prices and order values. If you want to DISCARD some order during MarketOrder API Call you can set 4 discard limits here. 2 For Buy Book and 2 For Sell Book A Limit could work on QTY (when you want to set a limit for the Market Currency) or on TOTAL (Qty X Price) When you want to set a limit for Partner Currency) You can press the Preview Button to understand how CAT will remove orders and if you decheck the option "Remove Filtered Orders From Preview" you'll be able to understand the reason about remove action. Don't Forget that FILTERS is the first action CAT Perform before any other calculation Normal Mode - Limit Rules  Anytime an order is created, last price statistics are update. Your order have 2 Attributes : Ping/Pong Type and Buy/Sell Type CAT actually is able to manage LAST SellPrice/SellPingPrice/SellPongPrice/BuyPrice/BuyPingPrice/BuyPongPrice So you can create limits according to these values. But you can also create limits using static values. In this panel you have 2 Editor : one for the static rules and another for the Dynamic rules. After a rule is added you will be able to read the description in the LIMIT List. You can now Edit/Remove rules. To Edit a Rules double click on the rule, then confirm/discard updates by pressing the OK Button or Cancel Button. Normal Mode - Pong Stop Loss Rules  Very similar in usage as the LIMIT Panel, you can add STOP LOSS RULES for PONG Orders Stop Loss Rules could be on both sides : "Sell All" and "Buy All". Rule could be STATIC or DYNAMIC The Static rule is based on current market price, so the limit will be triggered if the Market Value will match the limit. The Dynamic rules are based on the % SPREAD between the REFERENCE PRICE (The Ping Trade Price that generate the PONG) and the current market price. Suggestion is to set values < -10% (-15,-20 etc..) Stop Loss Action will be executed at current matching market price. Ping Pong Buy/Sell Pool Options The buy sell pool is the structure where new PING are calculated. Values are updates in 2 ways - User Edit The Values - A Ping-Pong is completed and the Pong trade total value is put inside the Buy/Sell Pool - Values are usually expressed as (Primary Currency is the Currency that you use to express the PRICE, usually is BTC) Only the ADDING OPTION (% AND FIX) are expressed as QTY from user side (and converted into PrimaryCurrency by CAT) - Limit Buy/Sell Pool Max Value to : If this value is reached new adding values will be discarded. - Reuse % of total Pong Trade into Buy/Sell Pool : with this option active, only the % of the total (Qty*Price = PrimaryCurrency Value) of a Pong Trade will be reused into the buy/sell Pool.  - Never Create Ping With quantity >/< X : by Default CAT try to use 100% of your total buy/sell pool to create new orders. With this option activated you can limit the total Quantity of a single new ping-order. - Add % Amount into / Pool Every Pool Lookup : This option will directly take a % Amount from your portfolio. % Is always calculated on QTY % QTY calculated for MarketCurrency will be converted to PrimaryCurrency using current Market Values. - Add FIX Amount into / Pool Every Pool Lookup : Like the option "ADD %" but using a FIXED Value. Values are expressed as QTY FIX QTY calculated for MarketCurrency will be converted to PrimaryCurrency using current Market Values. - Stop Ping Creation If Sell Value Is > : You can decide to Stop the Ping Order Creation if the Current Best Sell Value is too high. C.A.T. will restart Ping Order Creation if the Best Sell value returns to lower than your specified parameter. - Stop Ping Creation If Buy Value Is X : if the number of your active orders on that market is > X then ping creation will be stopped. - Stop Ping Creation if Total Orders Amount is > X : If total sum of orders amount (qty x price) will be > X ping creation will be stopped. - Set Pool Value Amount to 0 if current amount is < X : This option is used to clear the market pool if value inside is too small. This option is set by default with Total Min Market Amount allowed (Qty x Price) - If Needed Adequate new Ping Pool Order to Min Total (Qty x Price) : Starting from the Current Pool value, CAT could calculate an order where the total Amount is under the min amount allowed by the exchange. With this option activated you will force CAT to reach the Min Amount Allowed adding some Qty to the Order. With this option, if you trade with 100% of your amount there's an high risk to get a NO FUNDS Error from Exchange. - If Pool Values > Available Amount then Adequate Pool Values to Available Amount : As the option say, if pool value is over your available amount you can update it to your real available amount.  Ping Pong Dust Elements It could happens that Partially filled orders and MicroTrades will be too small. In some cases are too small from the user point of view (strategy), in some other cases are too small to allows CAT recreate them or create an order from them (In case of Trade Over Ping). Usually CAT try to adequate the order to the mimimum values allowed by the exchange. But this behaviour could be changed using these options. - Ping Order is Dust if QTY is < X : A Ping order will be flagged as "Dust" if his current QTY is < X - Ping Trades is Dust if QTY is < X : A Trade from Ping will be flagged as "Dust" if his QTY is < X - Ping Trades is Dust if TOTAL (qty x Price) is < Min Total Market Orders (Qty x Price) : Min Total Market Orders is the Min Value allowed by a Market (usually it's an Exchange rule) to create an order. This means that if a Trade is under that value, C.A.T. will need to adequate the Trade to that minimum value to create a Pong Order. With this option activated you will consider the trade As Dust - Dust Elements are  Discarded/Put Into BuySell Pool : with this option you decide what to do with a dust element. Ping Pong Running Option - Exec a Lookup routine every X sec. : you can change this value to make C.A.T. lookup faster/slower than default value. Be careful with this value because some exchanges performs an ip-ban if too much calls happens in little time. - Exec an order recalculation routine very x Lookup : with this option you can choose how many lookups must be performed before an order recalculation routine. - Check Buy/Sell Pool every x Lookup : with this option you can choose how many lookups must be performed before a Buy/Sell Pool check - Run Algorithm For XX Minutes and then return all to / : With this option, C.A.T. will run normally for the numbers of minutes set by user, then it will stop creating Buy/Sell Ping Orders - When Convert All To is Active delete Sell Ping : When RETURN TO is triggered, you can choose to delete the PING SELL. - When Convert All To is Active delete Buy Ping : When RETURN TO is triggered, you can choose to delete the PING BUY. Ping Pong Advanced Options - If Necessary, Adequate Order to Min Total (Qty*Price) : when option is active (by default is active) if the min-total value of an order is not reached (the Exchange will discard the new order request) CAT will adeguate the quantity to reach the minimum value to create an order. - If Calculate Order QTY > Available QTY Then use all available QTY : Sometimes the Order QTY calculated/recalculated is higher than the QTY Available into Portfolio. With this option activated you will use the Available QTY instead of accept the order creation request failure. - Merge Equals Order/Trades into a new one : when option is active, if there are 2 or more equal orders/trades (same price, buy/sell type, ping/pong type) CAT will merge them into a new one. - Never Recalculate Orders QTY during recalculation routine : By default C.A.T. use the TOTAL (QtyXPrice) original Amount to redetermine the new QTY after a new Price is Calculated. With this option you will have always the Same QTY even if Price will change. FEES are calculate by CAT This way : Qty x Price = Total (Partner Currency) - %FEES Over Toal = Available For Pong (If Trade is Ping) / Available For Buy/Sell Pool (If Trade Is Pong) Then if PONG Order is a SELL, C.A.T. will also calculate the fees expressed as Qty. And that Qty will be the Available Amount to create the PONG. - Subtract Fees From Ping Trade Buy Qty before creating Pong Sell : Some exchanges remove fees from your so if you want to use 100% QTY without remove fees (and use 100% bought qty) you must decheck this option. But Take care about the way exchange gets your fees from a buy trade. - Subtract Fees From Ping Trade Sell Total (Qty x Price) before creating Pong Buy : Sell Fees are always deduct from so this is a normal option. Decheck this option only if you don't trade with 100% Amount and you won't consider FEES - Subtract All Buy/Sell Pool Current Values while considering available amounts : API for Balances doesn't know nothing about the values into the buy/sell pool, but on CAT side that coins should be used as soon as possible. With this option active, CAT will subtract the buy/sell pool values during calculation of Available Amount. - Reduce orders to restore Qty by % before a creation retry : Usually when you have an order to restore, there's something that goes wrong during an order creation. Sometimes is a temporary problem, and sometimes you don't have enough funds (usually due to some fees rounding). With this option you can try to reduce the total amount before a new order creation call. - Consider X% of your real / Currency : If you want to hide a percentage of amount from CAT view, you can simply change this value to a little value, for example 90%. CAT will discard the other 10%. This could be useful to let some amount for CAT rounding routines. Sometimes use 100% of available amount could be risky when micro orders and micro trades comes in play. Ping Pong Current Parameters You can always take a look at the current parameters from the CURRENT TAB  BTC Order & Trades BTC   - Orders To Restore : If an order creation will fail (after a delete/recreate routine) C.A.T. will put the order creation request inside this tab. Creation will be retried in the next lookup. - Ping Orders : Ping Orders are the orders created from the GUI by the users or the automatic orders created from the Buy/Sell Pool - Trades From Ping : From here new Pong Orders will be created. - Pong Orders : Pong Orders are created from Trades. When a Pong Order is completed you will have a GAIN. With a Right Click on a single Element you could : - Recreate/Delete An Order. - Re-Set/Delete data of an "Order To Restore". - Delete a Trade. These actions are not taken immediatedly, but in the next lookup. So you have time to change your mind.  BTC Logs BTC Here you can find 2 TABS : Market Log and Error Log Market Log it's a very important tab All the action taken by CAT are described inside LOG. Different colors are used to help user read the various actions performed by all the internal CAT Processes. LOG show only an amount of record according to the CAT Parameter "LIMIT CAT LOG ELEMENTS TO". But the full log file is written in : CATROOT\CATSystem\\MarketLogs\_GENERAL_LOG_.TXT When an error/problem occurs, you can find the log into the Error Log. BTC Status & Statistics BTC This is only a statistics/info panel. NO Action could be taken by the user. With the Panel on The Left You can Check  - General Status : info about starts time, running time and last user prices. - Processes Status : info about CAT algorithms (Ping Creation, Pong Creation, Main Process) - General Statistics : Sum of current/historical orders/trades values/types With the Panel On The Right You can Check Buy/Sell Pool Values Ping/Pong Values Trade Values All Values are expressed as CURRENT and CUMULATIVE BTC Gains BTC This is only a statistics/info panel.    Here you can have a look at every market's Ping-Pong completed Cycle. You will have all the info about PING - PONG and Final GAIN Expressed as % and PARTNER-CURRENCY You will also have a comulative Gain (Previous Gain + Current Gain) Gain are Also Written in : CATROOT\CATSystem\\GainLogs\_GAIN_.TXT BTC Market Explorer Tab BTC If you want to have a look at the current market status press the "Refresh Status Button" and wait some seconds. This is the information displayed  - The market's current orders - Your current orders - The market's last completed trades - Your last completed trade With a right click on one or more (for multiple selection press the CTRL button) orders, you can open a RESTORE function. From the restore fuction you must choose the order type (Ping or Pong) and in the case of a PONG you must set the Reference Price. BTC  Restore Orders BTC The Prerequisite to restore an orders is that the order must be active on the Exchange. There are 2 ways to restore an orders :  1 - File -> Load Orders (you need to load the XML File previously saved with File -> Save Open Markets Current Orders)   Then you'll need to choose what to do A - Restore All Orders And Open Needed Markets : this means that C.A.T. will open all the markets where there's an order to restore. B - Ask Me for any Restore : C.A.T. will ask you for any market if you wants to restore the orders. C - Restore Order If Market is Actually Open : You need first to open manually the markets, then only orders associated with open markets will be restored. 2 - From Single Market Panel -> Market Explorer -> Refresh Status -> MyCurrent Buy/Sell Order Table -> Choose Orders (you can use the CTRL button to multiple selection) -> Right Click -> Restore The same window will appear :    Here you can see - A Tab for Any Markets (Orders to restore are grouped by market ID) - Inside any tab a little panel for any order to restore - A set of button to apply changes properties to all orders (All Pong/All Buy/All Static/All Dynamic) - A Button to restore all orders (and start algorithms on markets if they are not running) In a Single Order To Restore Panel you can get/set info - Order Id - The Panel Border could have 3 colors Green : order is matched on the Exchange (you can restore the order) Yellow : order is matched on the exchange but QTY is changed (you can restore the order) Red : order is no more active (you can't restore that order) - Status : is the description of what happens during "input orders vs exchange orders matching research algo" - A combobox to set Ping/Pong Type - A Textbox to set the reference price if order type is a Pong - A Type Combo to set order as Static/Dynamic type BTC Global Gain BTC You Can Reach Global Gain Panel From the Exchange Toolbar -> DASHBOARD -> GLOBAL GAIN Global Gain is very similar to Market Gain, but is at Exchange Level. CAT is able to recognize all the PartnerCurrency from the Market List. For Any PartnerCurrency a Tab will be Added to the Market Global Gain Panel (In the Example BTC and USD) When a Gain is added to the Market Gain Panel, it will be also added to the Tab at Global Market Gain. In other words all the BTC Gain will be put into the Tab BTC  There's a new Attribute here : Total Comulative Gain that is the sum of all Market Comulative Gain. You can Export this table to CSV File. BTC General Statistics BTC You Can Reach General Statistics Panel From the Exchange Toolbar -> DASHBOARD -> STATISTICS   Very similar to the Status And Statistics Market Panel (You can take a look at the current/comulative values of all markets at level, in other words all the BTC/USD/XMR etc Current Values/Comulative Values) There's another panel (shown in the image) that show you the number of ping-pong completed. BTC General Console BTC You Can Reach General Console Panel From the Exchange Toolbar -> DASHBOARD -> GENERAL CONSOLE Here you can find 2 Logs - General Exchange Log : where various messages could be printed - Api : where API Results will be printed (if Print Option is active) but you can also find error occurs inside the CAT API System. Logs Is also Saved in :  CATROOT\CATSystem\\ExchangeLogs\GENERAL_API_LOG_.txt CATROOT\CATSystem\\ExchangeLogs\GENERAL_ERROR_LOG_.txt
.Posted in CAT Tips and Tricks / FAQs
TIPS & TRICKS / FAQS  - What i need to run C.A.T. and How can i run it? First of all C.A.T. need java 8 official ( for your operative system (Linux/Windows/Mac) and nothing more. C.A.T. doesn't need installation : Once you have installed Java, you can simply double click che CAT.JAR File. If JAR extension is already used by another program (for example Winrar) you can simply Right Click JAVA.JAR -> Open with Java. C.A.T. is fully portable : you can copy your full CAT Folder and move to USB/Another PC without problems. These are che combination you can perform using C.A.T. - Run 1 CAT Instance on 1 PC and Log on X Exchanges -> For every exchange a dedicated panel will be shown. - Run X CAT instance on 1 PC and log on Y Exchanges -> For every CAT instance you will have a dedicated FRAME, for every exchange logged for any instance you will have a dedicated panel (for example you can run 2 CAT instance and log on 3 exchange for instance 1 and 1 exchange for instance 2) - Same combination as before but using different PC : You can run CAT on your Mac and another on your Windows PC. Try to avoid :  - Run more than 1 CAT instance from the same folder : CAT 1 and CAT 2 will works on the same files. Only few of them could have a collision, but General Console LOG and CAT_LOG (the one create in CATSystemFolder) are 2 files where collision could happens. Solution is simple : if you want to run X CAT Instance, then create X CAT Main folders. - Run 2 CAT Instance and log on the same Exchange. This could cause bad behaviours (2 examples) - if you launch a "DELETE ALL ORDERS" from CAT 1 then CAT 2 could have big problems. - the NONCE (a progressive number always increased) API parameters could have collision : CAT 1 and CAT 2 could calculate same Nonce -> Exchange will refuse one of the 2 calls. - How Does a Ping-Pong Cycle Work? In a Ping-Pong cycle there are some factors involved :  - The User who wants to create orders - The automatic Ping-Pong Algorithm - The Exchange Trading system that match buyers/sellers orders A Ping is an order of Buy or Sell Type. In case of Dynamic Algoritm is free to move (automatic-recreation if needed) according to the ping-pong algorithm parameters (ex : price limits) A Pong is an order of Sell or Buy Type (Opposite from the original Ping type). It is created by CAT after a Trade occurs over a Ping. The difference between Ping and Pong is that Pong have 1 more attribute that restrict the possibility about price movements and order recreation : the Reference Price. The reference price is the price of the Trade Occurs over the Ping. The Pong price is calculated considering Ping Trade Price + % Gain Requested By The User + Current Market Price. Calculated price must guaranteed at least the % Gain set by the user. This is the workflow of a Ping Pong Order. Loop is INFINITE (but of course you can set stop conditions). USER Can Anytime Add Orders or Edit The Buy/Sell Pool. - Buy/Sell Pool (Automatic)/Ping-Pong Order Creation (User) -> Ping -> TRADE (Reference Price) -> Pong (At least % GAIN) -> GAIN -> TOTAL (Minus Fees) IN BUY/SELL POOL and then loop restart Explanation with Examples (for explation simplification without considering FEES and User Parameters) :  Buy/Sell Pool : Values are expressed as , partner is the currency wich you express the Price (or Total Value) Example : on BTC/LTC, LTC is , BTC is Every Pool Lookup (that could occurs ever X lookups) CAT will try to use 100% of the Pool to create a new Order. Buy Pool to create new Buy Orders Sell Pool to create new Sell Orders You can limit this behaviours setting Pool Limits about Qty and Pool Activations conditions. A simple example (without considering limits and user parameters) :  Sell Pool 0.3 BTC, Best Market Sell Price is 0.00013 -> 0.3/0.00013 = 2307 new QTY -> New Sell Order will be Sell 2307@0.00013 BUY Pool 0.01 BTC, Best Market Buy Price is 0.00012 -> 0.01/0.00012 = 83 new QTY -> New Buy Order will be Sell 83@0.00012 Now a Trade Occurs over your Order Sell 2307@0.00013 Let's say it's a partial trade : Sell 1500@0.00013 We consider a Gain of 5%   So, REFERENCE PRICE Is 0.00013 -> 0.00013 - 5% (In case of Sell Pong it will be REFERENCE PRICE + % GAIN) = 0,0001235 New Pong Price So New Order Pong will be Sell 1500@0.0001235 When a Trade Will Occurs Over the Pong You will have a GAIN expressed by CAT as  - % (percentage difference between price)  and (Total Orders Difference - (Buy + Sell Fees)) The TOTAL Value (Qty x Price) could be reuse (100% or Part of it) into the Buy/Sell Pool to create new PING ORDERS. In a Ping-Pong Cycle, each order will have his indipendent "life" Partial trades will generate more ping and more gains. Example :  Ping Sell 1000@X  Trade 1 Sell 500@X -> PONG T1 Buy 505@Y Trade 2 Sell 300@X -> PONG T2 Buy 303@Y Trade 3 Sell 200@X -> PONG T3 Buy 202@Y PONG T1 Buy 505@Y Trade 1 Buy 200@Y -> 1 LINE OF GAIN in Gains Table Trade 2 Buy 305@Y -> 1 LINE OF GAIN in Gains Table. In this example, from 1 PING, 3 PONGS Are generated, and from 1 PONG 2 GAINS are generated. Usually this happens when you have very BIG Ping Orders. CAT will proportionally Calculate PING Fees According to Final Pong Trades. On Final Pong Trade "Trade 1 Buy 200@Y" CAT will calculate the % Percentage of the original  Ping "Trade 1 Sell 500@X" Fees. Example :  Ping Buy 100@X -> Total Fees is 0.01 If a Final Pong will be Buy 10@X (that is 10% Qry of the original Buy) Total Fees From Ping will be 0.001 (10% of 0.01) PING-PONG Schema This is the Infinite Ping-Pong cycle. This is a simplified view, but it's useful to understand how flow work. User can update/change elements but the most important actions are : - Add a Ping Using the GUI Interface - Update the buy/Sell Pool Values. Ping Pong parameters works over the Ping-Pong workflow :  Example :  - Price limit works on Ping (by default, but you can also add a Limit on Ping) - Stop Loss rules works on Pong - Reuse Rules works on Trades From Pong - Merge rules works on Ping/Pong/Trades From Ping When you have a clear idea about ping-pong cycle it will be easier to understand WHERE you need to set your parameters to optimize your ping-pong algorithm - How often C.A.T. will check markets? Every 40 Seconds (for each markets) a Lookup is performed. - How is calculated the % DIFF? Percentage difference is calculated via this formula : (price1 - price2) / price2 * 100; Where price1 could be from : Best Market Sell Order or Order Reference or New Value Calculated By C.A.T. Where price2 could be from : Best Market Buy Order or Order Reference or New Value Calculated By C.A.T. Ex :  Best Buy Price VS Best Sell Price (is the CHECK Button Result in Ping Pong Creator) Reference Price VS New Order Price Calculated (In case of BUY Order) New Order Price Calculated VS Reference Price  (In case of SELL Order) - How can i Choose Best Markets to Run PING-PONG? A single answer doesn't exists. It depends on your strategy. Be aware of these factors :  - In "low fluctuation" markets,  markets with high and similar number of trades in last 24 hours, it's easy to have a lot of successful Ping-Pongs. Example of "High And Equilibrate in terms of 24H Trades" : 500/550 - 300/400 - 400/600 ..... - % Min Gain have his meaning for each market.  Ex :  LTC/BTC Best Sell : 0,025 Best Buy : 0,0249 Difference is : 0,0001 % Difference is : 0,4%    DOGE/BTC Best Sell : 0,00000111 Best Buy : 0,00000110 Difference is : 0,00000001 % Difference is : 0,9%  So, choosing 1% for LTC/BTC could be a good idea, choosing 1% For DOGE/BTC could be a bad idea. - Study the MAX Value & MIN Value of markets during 24/48/72 hours. The number of times that market hits MAX-Y and MIN+Y (A window of value where you know that many times/day you will reach that value). Place a Buy when Market is near MIN+Y, place a Sell when Markets is Near MAX-Y Set a % difference near % Diff Between MIN and MAX - You don't need to have a lot of Ping-Pong cycles completed to make money with C.A.T. You can have 1 Ping-Pong/Day but with enormous Gain. Some markets move +/- 30% in a 24 hour period. - What can i do for Market Devaluation? - During a general market devaluation phase you will lose money. Stop using CAT if you don't have time to study markets and choose the ones to work on.  - After you stop using CAT you will notice that you will lose money the same. (Because it's not C.A.T.'s fault when you loose money) - A manual Sell of some currencies in BTC could be a good idea. - How does the "Skip Order With Total < Than" work? This command, when activated, will be the first operation that C.A.T. will do before any other check Example (BTC/LCT Market) :    TOP 6 SELL ORDERS 0.02354986   6.68382294   0.15740309 0.02354988   0.04345361   0.00102333 0.02354989   0.03050035   0.00071828 0.02354990   5.74587878   0.13531487 0.02354992   1.27806294   0.03009828 0.02354993   0.54047313   0.01272810 other orders....   TOP 6 BUY ORDERS 0.02340506   0.03000000   0.00070215 0.02340157   1.21655125   0.02846921 0.02330005   4.00000000   0.09320020 0.02330003   0.09000000   0.00209700 0.02330002   0.01098146   0.00025587 0.02330001   101.20393854 2.35805278 other orders.... If you set Skip Order With Total < Than 0.1 this will be the "filter" result :    TOP SELL ORDERS 0.02354986   6.68382294   0.15740309 0.02354990   5.74587878   0.13531487 other orders....     TOP BUY ORDERS 0.02330001   101.20393854 2.35805278 other orders.... So, BEST Sell Price Order will be 0.02354986 and BEST Buy Price Order will be 0.02330001 - Does the % GAIN That C.A.T. calculates include market fees? Orders all have fees. And the % calculated are with fees included. So you must calculate that there is always a 0.X% fee on a buy order and 0.X% fee on a sell order. C.A.T. doesn't pre-calculate fee but is able to know fees quantity after a trade, and subtract them from the total amount used for new Pong Orders or New Ping Orders From buy/sell Pool - How does the Ping-Pong Algo Work? This happens every 40 seconds and all the steps are not always completed. - Check Pending User Operation (request like delete orders or stop process) - Update last time lookup (this is useful to detect frozen condition) - Check if there's at least 1 active order or a trade or a buy-sell pool value (if not, market will be in ZOMBIE status) - Check Run Condition (if there's some option active like Return All To Primary/Secondary Currency) - Update (With Api Call) Market Orders+MyOrders+MyTrades - Check Orders To Restore (orders that in previous lookup got errors) - Check Each Active Order (if a trade is happening, if there are condition to retry a recalculation to place order in better market condition) - Check Each Trade to create New Pong Order (if Trade From Ping) or to add total trade value into Buy/Sell Pool (if Trade From Pong) - Check if there are new Ping Orders to create from Buy/Sell Pool (this happens every 5 lookup) - Is my Estimated Portfolio Value Accurated? No it is not. Estimated portfolio value is only the sum of all your Coins, converted to BTC using the LAST ORDER PRICE. This means that if you have 10 Coins X, and this is the Order Book: Price Quantity  0.05   0.02 0.04   0.1 0.03   0.1 0.02   0.1 0.01   0.1 0.005   500 And the last trade is Buy 0.02@0.05, your Estimated Value will be 100 * 0.05 = 0.5 BTC Your Real Portfolio Value is the distribution of your 100 Coins over the book order. So :  0.05 * 0.02 +  0.04 * 0.1 +  0.03 * 0.1 +  0.02 * 0.1 +  0.01 * 0.1 =  0,001+0,004+0,003+0,002+0,001 = 0.011 Total Value distribute on the value of the first 5 orders. Quantity distribute is 0.42, it will remain  9.58 to distribute over the last order (500@0.005) = 9.58 * 0.005 = 0,0479 Your ESTIMATED Value is 0.5 BTC  Your REAL Value is 0.011 + 0.0479 = 0.0589 BTC