Cryptopump Versions Save

CryptoPump is a free, open source cryptocurrency trading tool that focuses on high speed and flexibility. The algorithms utilize Go Language and WebSockets to react in real-time to market movements based on Bollinger statistical analysis and pre-defined profit margins.

v1.6.4

2 years ago
  • Added Return on Investment (ROI) to Telegram status report
  • Documentation improvements
  • Code refactoring for Snyk Security compliance
  • Code refactoring for StaticCheck compliance
  • Many under-the-covers improvements

v1.6.3

2 years ago
  • Added documentation on How to Compile
  • Added documentation on How to Install
  • Added documentation on How to Use
  • Added support for crypto pairs with 4 letters (example GALA)
  • Implemented Snyk Security Recommendations
  • Implemented Codacity Security Recommendations

v1.6

2 years ago
  • Added STOPLOSS function to execute a transaction sale when the price drops below a certain level. (0 to Disable)
  • New harnessed profit calculation method, with more accuracy.
  • Multiple code improvements and re-write of multiple functions.
  • Improvements to achieve more simultaneous transactions per second.
  • Implemented unit tests to support cloud-based builds.

(Known Issue: Previous profit calculations won't show up in total profit)

This new release requires a database update if you are already running Cryptopump in production. If you are deploying for the first time, simply use cryptopump.sql.

  1. Open the GetProfit Stored Procedure and replace its content with:
CREATE DEFINER=`root`@`%` PROCEDURE `GetProfit`()
BEGIN
SELECT 
    SUM(`source`.`Profit`) AS `sum`,
    AVG(`source`.`Percentage`) AS `avg`
FROM
    (SELECT 
        `orders`.`Side` AS `Side`,
            `Orders`.`Side` AS `Orders__Side`,
            `orders`.`Status` AS `Status`,
            `Orders`.`Status` AS `Orders__Status`,
            `orders`.`ThreadID` AS `ThreadID`,
            `Orders`.`CummulativeQuoteQty` AS `Orders__CummulativeQuoteQty`,
            `orders`.`CummulativeQuoteQty` AS `CummulativeQuoteQty`,
            (`Orders`.`CummulativeQuoteQty` - `orders`.`CummulativeQuoteQty`) AS `Profit`,
            ((`Orders`.`CummulativeQuoteQty` - `orders`.`CummulativeQuoteQty`) / CASE
                WHEN `Orders`.`CummulativeQuoteQty` = 0 THEN NULL
                ELSE `Orders`.`CummulativeQuoteQty`
            END) AS `Percentage`
    FROM
        `orders`
    INNER JOIN `orders` `Orders` ON `orders`.`OrderID` = `Orders`.`OrderIDSource`) `source`
WHERE
    (`source`.`Side` = 'BUY'
        AND `source`.`Orders__Side` = 'SELL'
        AND `source`.`Status` = 'FILLED'
        AND `source`.`Orders__Status` = 'FILLED');
END
  1. Open the GetProfitByThreadID Stored Procedure and replace its content with:
CREATE DEFINER=`root`@`%` PROCEDURE `GetProfitByThreadID`(IN in_param_ThreadID varchar(45))
BEGIN
DECLARE declared_in_param_ThreadID CHAR(50);
    SET declared_in_param_ThreadID = in_param_ThreadID;
SELECT 
    SUM(`source`.`Profit`) AS `sum`,
    AVG(`source`.`Percentage`) AS `avg`
FROM
    (SELECT 
        `orders`.`Side` AS `Side`,
            `Orders`.`Side` AS `Orders__Side`,
            `orders`.`Status` AS `Status`,
            `Orders`.`Status` AS `Orders__Status`,
            `orders`.`ThreadID` AS `ThreadID`,
            `Orders`.`CummulativeQuoteQty` AS `Orders__CummulativeQuoteQty`,
            `orders`.`CummulativeQuoteQty` AS `CummulativeQuoteQty`,
            (`Orders`.`CummulativeQuoteQty` - `orders`.`CummulativeQuoteQty`) AS `Profit`,
            ((`Orders`.`CummulativeQuoteQty` - `orders`.`CummulativeQuoteQty`) / CASE
                WHEN `Orders`.`CummulativeQuoteQty` = 0 THEN NULL
                ELSE `Orders`.`CummulativeQuoteQty`
            END) AS `Percentage`
    FROM
        `orders`
    INNER JOIN `orders` `Orders` ON `orders`.`OrderID` = `Orders`.`OrderIDSource`) `source`
WHERE
    (`source`.`Side` = 'BUY'
        AND `source`.`Orders__Side` = 'SELL'
        AND `source`.`Status` = 'FILLED'
        AND `source`.`Orders__Status` = 'FILLED'
        AND `source`.`ThreadID` = declared_in_param_ThreadID);
END

  1. Create a new stored procedure called GetThreadTransactionByPriceHigher and replace it with the following content:
CREATE DEFINER=`root`@`%` PROCEDURE `GetThreadTransactionByPriceHigher`(IN in_param_ThreadID varchar(45), IN in_param_Price float)
BEGIN
    DECLARE declared_in_param_ThreadID CHAR(50);
    DECLARE declared_in_param_Price FLOAT;
    SET declared_in_param_ThreadID = in_param_ThreadID;
    SET declared_in_param_Price = in_param_Price;
    SELECT 
    `thread`.`CummulativeQuoteQty` AS `CummulativeQuoteQty`,
    `thread`.`OrderID` AS `OrderID`,
    `thread`.`Price` AS `Price`,
    `thread`.`ExecutedQuantity` AS `ExecutedQuantity`,
    `Orders`.`TransactTime` AS `TransactTime`
FROM
    `thread`
        LEFT JOIN
    `orders` `Orders` ON `thread`.`OrderID` = `Orders`.`OrderID`
WHERE
    (`thread`.`ThreadID` = declared_in_param_ThreadID
        AND `thread`.`Price` > declared_in_param_Price)
ORDER BY `thread`.`Price` DESC
LIMIT 1;
END

v1.5

2 years ago
  • Websocket latency is now displayed on UI (best kept below 200ms)
  • Telegram bot reporting has been improved to display Fund, Profit, Thread Count, System Status, and Master Node
  • Telegram now proactively message you when a system fault is detected
  • An improved thread locking mechanism
  • Improved databased handling (database updated and new stored procedures)
  • Logging improvements
  • Fixed WebSocket restart issue
  • Added various Binance exchange error handlers for stability
  • Decommissioned Telegram individual commands for Fund, Profit, Thread Count, System Status, and Master Node
  • Multiple code improvements and re-write of multiple functions

This new release requires a database update if you are already running Cryptopump in production. If you are deploying for the first time, simply use cryptopump.sql.

  1. Execute the following SQL query against the session table:
ALTER TABLE `cryptopump`.`session` 
ADD COLUMN `Status` TINYINT(1) NOT NULL AFTER `FiatFunds`;

  1. Open the UpdateSession Stored Procedure and replace its content with:
CREATE DEFINER=`root`@`%` PROCEDURE `UpdateSession`(in_ThreadID varchar(45), in_ThreadIDSession varchar(45), in_Exchange varchar(45), in_FiatSymbol varchar(45), in_FiatFunds float, in_Status tinyint(1))
BEGIN
SET SQL_SAFE_UPDATES = 0;
	UPDATE `session`
	SET `session`.`FiatFunds` = in_FiatFunds,
		`session`.`Status` = in_Status
	WHERE `session`.`ThreadID` = in_ThreadID;
SET SQL_SAFE_UPDATES = 1;
END
  1. Open the SaveSession Stored Procedure and replace its content with:
CREATE DEFINER=`root`@`%` PROCEDURE `SaveSession`(in_ThreadID varchar(45), in_ThreadIDSession varchar(45), in_Exchange varchar(45), in_FiatSymbol varchar(45), in_FiatFunds float, in_Status tinyint(1))
BEGIN
INSERT INTO session (ThreadID, ThreadIDSession, Exchange, FiatSymbol, FiatFunds, Status)
VALUES (in_ThreadID, in_ThreadIDSession, in_Exchange, in_FiatSymbol, in_FiatFunds, in_Status);
END

  1. Create a new stored procedure called GetSessionStatus and replace it with the following content:
CREATE DEFINER=`root`@`%` PROCEDURE `GetSessionStatus`()
BEGIN
SELECT `session`.`ThreadID` AS `ThreadID`, `session`.`Status` AS `Status`
FROM cryptopump.session
WHERE `session`.`Status` = 1;
END

v1.4

2 years ago
  • Various exchange error handlers were added for better stability
  • Cryptocurrency funds are now displayed on the UI
  • Executed Quantity not displayed for each transaction on the UI

This new release requires a small database update if you are already running Cryptopump in production. Open the GetThreadTransactionByThreadID Stored Procedure ans replace its content with:

CREATE DEFINER=root@%PROCEDUREGetThreadTransactionByThreadID(IN in_param_ThreadID varchar(45)) BEGIN DECLARE declared_in_param_ThreadID CHAR(50); SET declared_in_param_ThreadID = in_param_ThreadID; SELECT thread.OrderIDASOrderID, thread.CummulativeQuoteQtyASCummulativeQuoteQty, thread.PriceASPrice, thread.ExecutedQuantityASExecutedQuantityFROMthreadLEFT JOINorders OrdersONthread.OrderID=Orders.OrderIDWHEREthread.ThreadID= declared_in_param_ThreadID ORDER BYthread.PriceASC; END

v1.3

2 years ago
  • New Simple Moving Average line 7 and 14 plotting
  • Improved HTML interface
  • Improved error handling
  • Improved correlation between buy and sell transactions

This new release requires a small database update if you are already running in production. Execute the following SQL:

ALTER TABLE `cryptopump`.`orders` 
ADD COLUMN `OrderIDSource` BIGINT NOT NULL AFTER `OrderID`;

Open the SaveOrder Stored Procedure ans replace its content with:

CREATE DEFINER=`root`@`%` PROCEDURE `SaveOrder`(ClientOrderId varchar(45), CummulativeQuoteQty float, ExecutedQuantity float, OrderID bigint, OrderIDSource bigint, Price float, Side varchar(45), Status varchar(45), Symbol varchar(45), TransactTime bigint, ThreadID varchar(45), ThreadIDSession varchar(45))
BEGIN
INSERT INTO orders (ClientOrderId, CummulativeQuoteQty, ExecutedQuantity, OrderID, OrderIDSource, Price, Side, Status, Symbol, TransactTime, ThreadID, ThreadIDSession)
VALUES (ClientOrderId, CummulativeQuoteQty, ExecutedQuantity, OrderID, OrderIDSource, Price, Side, Status, Symbol, TransactTime, ThreadID, ThreadIDSession);
END

v1.2.2

2 years ago

Binance API error handling

v1.2.1

2 years ago

WebSockets error handling for uncommon errors that stall CryptoPump.

v1.2

2 years ago

Lot's of improvements in this release:

  • TestNet configuration moved from launch.json to config.yml and is displayed in UI
  • UI changes for better user experience, including real-time stats and price updates, and reactive buttons
  • Telegram bot now support /report command for a more comprehensive status report
  • Added option to start NEW thread processes on the UI.
  • Added option to hold a sale of RSI7 is above a certain threshold. This function help to increase profits for each transaction, not selling at the minimum profit level.
  • Default browser now open automatically for each thread
  • Fixed a browser memory leak and added additional error handlings
  • Add GitHub security analisys to the build process
  • MIT License now added to the project
  • Removed MACD settings, we will focus on RSI and Market Direction

Important: This version include changes to config.yml and default_config.yml. Please, verify your configuration files upon updating to this release.

v1.1

2 years ago

1.1 GA Release