MultiCharts Easter Sale has jumped in! Up to 50% off Explore offers
+1 888 340 6572
MultiCharts Project Management
previous_open_issue.png
Go to the previous open issue
previous_issue.png
Go to the previous issue (open or closed)
star_faded.png
Please log in to bookmark issues
feature_request_small.png
Open Feature request MC-2525

Support Trading Cryptocurrencies

action_vote_minus_faded.png
18
Votes
action_vote_plus_faded.png
next_issue.png
Go to the next issue (open or closed)
next_open_issue.png
Go to the next open issue
Description

I'm opening this issue to track Cryptocurrency Trading on MultiCharts.NET. MultiCharts 12.0 added few cryptocurrency data feeds and looks like support for trading cryptocurrencies is in the plans.

Some of the limitations that I see in the current implementation of the API are the followings:

With cryptocurrencies, we need to be able to specify trade amounts in very tiny fractions, for example, the smallest unit in BTC is 0.00000001 (aka a Satoshi). The IOrderMarket.Send(int numLots) method gets numLots in 32-bit integers (Int32.MaxValue = 2,147,483,647). If a lot size is set to a Satoshi, for example, it can easily overflow the integer with a System.ArithmeticException (Overflow or underflow in the arithmetic operation). So the minimum data size needed would be a 64-bit integer (long data type in C# which is Int64) as the parameter for IOrderMarket.Send method. However, even that is not the best interface for trading cryptos. Generally for cryptos, it does not make sense to specify amounts as contracts or lots, but the best interface would be sending the amounts in the crypto units as a 128-bit decimal data type which does not have rounding issues of double. The API may then want to convert that to number of lots or whatever the underlying architecture requires. It does not have to support up to the MaxValue of decimal data type, though.

So the recommended interface for sending crypto market orders would be like:

void Send(decimal amount);

For example, if the instrument is BTCUSD, you could order to buy 25 μBTC (micro-bitcoins) like this: buyMarket.Send(0.000025m);

The second limitation, in my opinion, is the closed API for adding custom brokerages. People will not wait years and months for MultiCharts to add support for each of the brokers. They will bypass the MultiCharts trading APIs and use any of the open source implementations of the crypto broker APIs (via C#), with the downside of not being able to use any of MultiCharts' backtesting and optimization features. Or they might find it easier to move on to another platform that can plug into custom brokers.

Pretty much all of the popular crypto exchanges, including Binance, Bitfinex and Coinbase have open source implementations of their APIs in C#, that in many cases are supported officially by the exchanges. An open plug-in model for connecting to custom brokers will allow the MultiCharts community to contribute integrations with any of these exchanges. MultiCharts would be able to review and recognize some of them as supported or choose not to support them but either way, this will greatly expand the user base of MultiCharts. I think from a business standpoint, opening up such a plug-in model to connect to custom exchanges would be smart, requires much less effort than having to support everything out of the box and will put MultiCharts in good stance in the competition. That would be a huge gain and I believe it's the only way to stay competitive in the crypto trading market as a platform.

See also:

Comments (8)
#1
user-offline.png  chartsurfer (chartsurfer)
Aug 15, 2020 - 21:40

My full support!

MultiCharts absolutely needs a data feed and order execution connection to at least one of the major crypto trading exchanges.

#2
user-offline.png  bomberone1 (bomberone1)
Apr 04, 2021 - 13:16

Here the update list of the major exchange:

https://coinmarketcap.com/rankings/exchanges/

Binance
Coinbase pro
Huobi
Kraken

#3
user-offline.png  MultiCharts Support (MultiCharts)
icon_reply.pngApr 14, 15:46, in reply to comment #2

Hello everyone,

The connection to Binance is available since MultiCharts 14 both for data and for trading.

Here are the guides:
https://www.multicharts.com/trading-software/index.php/Binance
https://www.multicharts.com/trading-software/index.php/Binance_Broker_Profile

#4
user-offline.png  bomberone1 (bomberone1)
icon_reply.pngMay 03, 00:52, in reply to comment #3

WIll you add COINBASE please?

'''MultiCharts Support wrote:'''

Hello everyone,

The connection to Binance is available since MultiCharts 14 both for data
and for trading.

Here are the guides:
https://www.multicharts.com/trading-software/index.php/Binance
https://www.multicharts.com/trading-software/index.php/Binance_Broker_Profile

#5
user-offline.png  Smokless (Smokless)
Jul 12, 2021 - 05:00

my full support too, i already said in github we already have C++ and C# opensource code to use API for all crypto exchanges.

Then easy to add them in MC ....

#6
user-offline.png  william taylor (william taylor)
icon_reply.pngAug 16, 16:15, in reply to comment #4

Coinbase or FTX.US would be great additions for US based traders

https://docs.ftx.us/#overview

'''bomberone1 wrote:'''

WIll you add COINBASE please?

'''MultiCharts Support wrote:'''

Hello everyone,

The connection to Binance is available since MultiCharts 14 both for data
and for trading.

Here are the guides:
https://www.multicharts.com/trading-software/index.php/Binance

https://www.multicharts.com/trading-software/index.php/Binance_Broker_Profile

#7
user-offline.png  RandyT (tribalknowledgegroup)
Jul 25, 2022 - 23:06

Please vote for support of Binance.US API

https://www.multicharts.com/pm/public/multicharts/issues/MC-2696

#8
user-offline.png  mikeerooia (mikeerooia)
icon_reply.pngNov 23, 13:03, in reply to comment #7

Add OKX.
OKX is the a real and trust alternative at Binance in crypto world

History
Issue basics
  • Type of issue
    Feature request
  • Category
    Not determined
  • Targeted for
    Not determined
  • Status
    Under Review
User pain
  • Type of bug
    Not triaged
  • Likelihood
    Not triaged
  • Effect
    Not triaged
Affected by this issue (0)
There are no items
People involved
Times and dates
  • Posted at
  • Last updated
Issue details
  • Resolution
    Not determined
Attachments (0)
There is nothing attached to this issue
Commits (0)
There are no code checkins for this issue
Duplicate issues (0)
This issue does not have any duplicates