Σ

Price equations for Bitcoin advertisements

For most Bitcoin traders, adjusting the price of advertisements by setting a margin works well enough. But if you are a high volume trader the price equation feature allows you more control over your price. This guide explains the fundamentals on how you can use complex price equations to your advantage to beat the competition.

What is a price equation?

Price equations allow you to automatically update your price with the price fluctuations of Bitcoin. They work by taking price information that we automatically fetch from market data sources (Other Bitcoin exchanges) and updating the price of your advertisement as soon as new price information is fetched. To create a custom price equation you select your market data sources and combine or modify them using operators.

The default price equation we use for advertisements uses a special market data source called btc_in_usd and a simple multiplication operator to place a margin on top of the market data price.

The market data source btc_in_usd returns the median price from several different trusted exchanges. This means that even if one or many of the exchanges start giving erroneous information the price source will still give an accurate median price.

Advertisement prices are on average updated once every five minutes. When there is extra load on the service or if an API is slow to respond this process may take longer to run. The final price calculated from the price equation is for 1 BTC. Market data sources also always return the price for 1 BTC.

If the equation returns more than one value or no value, the equation is not valid and won't work. Market data sources may not always return a price if there is, for example, low to no recent volume in that market. If an equation is not valid or does not fully resolve the advertisement will be turned off automatically.

Make your own equation

Step 1: Choose your pricing sources

The first and most important part of your equation is the selection of market price source(s). You should carefully choose which exchange you base your price on, you can find a list of all available market sources at the end of this guide. A simple equation only uses one market data source, the below market source takes the 24 hour average price from the Bitcoin exchange Bitstamp:

bitstampusd_avg

This is already on it's own a working equation, but to make some profit selling Bitcoin you will want to modify this with an operator.

Step 2: Use operators to modify your equation

Operators are different mathematical functions that you can use to adjust and change your price equation to fit your own needs. You can see the operators that are supported in the table below.


Operator Example equation Example value Description
+ 1 + 1 2 Add two values together
- 5 - 1 4 Subtract the right value from the left one
* 2 * 5 10 Multiply two values
/ 5 / 2 2.5 Divide the left value by the right one
min min(25, 100)
25 Minimum gives returns the smaller of the two values inside the parenthesis. You can chain min() inside another to get the smallest value of multiple numbers. e.g.
min(min(25, 100), min(20, 300)) = 20
max max(25, 100)
100 Maximum gives returns the larger of the two values inside the parenthesis. You can chain max() inside another to get the largest value of multiple numbers. e.g.
max(max(25, 100), max(20, 300)) = 300


The simplest equation ads just a percentage markup on top of the market price. To add, for example, a 12% margin on top of the price you need to multiply the market price source by 1.12 to increase the price by 12%. The resulting equation looks like this:

bitstampusd_avg*1.12

If you buy your Bitcoin that you sell from two different exchanges, let's say Bitstamp and Bitfinex, you probably want to make sure that your Bitcoin price is based off of the exchange that has the higher price so that your margin stays correct. Using two market data sources has the added benefit of protecting you in case one exchange experiences a sudden price crash while the other doesn't.

To do this the max() operator is useful. It is used to choose the larger of two values given to it. To use the max() operator you enter two values separated by a comma into the parenthesis. The values entered can be a market data source or any number.

In our example we want to use the higher price of two different exchanges, Bitstamp and Bitfinex. First we search for their market data source name from the table below and then we add _avg after the market data source name to get the 24h average price. We then multiply the whole max() operator with 1.12 to add our margin:

max(bitstampusd_avg, bitfinexusd_avg)*1.12

This equation will first fetch pricing data from the two exchanges, Bitfinex and Bitstamp, and turn it into two numbers. The max() operator then selects the more expensive price of the two. Finally, it multiplies that price with 1.12 to get the final advertisement price.

Step 3: Convert the price to your own currency

If you're using a price source that is not in your own currency the final step is to convert it to the correct currency. For this, you can convert the price from USD to another currency using the USD_in_[currency] data source. For example, if I trade in Euros I would need to convert the example equation in the Step 2 from USD to EUR by multiplying the whole equation by USD_in_EUR. The resulting equation looks like this:

max(bitstampusd_avg, bitfinexusd_avg)*1.12*USD_in_EUR

You can find a list of all of the USD exchange rate sources further down on this page.

Test your equation

You can play around with your own equations using the field below. Choose which currency you trade in and enter any equation to see what the price would be.

Market price sources

We have hundreds of market data sources available to use in your price equations. Here is a table that lists all available market data sources. For most sources we fetch six different prices: high, low, bid, ask, close, and avg. We recommend you use the avg (average) price, the other price types have specific meaning and fluctuate often and can result in your price not being what you expect. Each market data source always gives the price for one whole Bitcoin, this table shows the current price returned from each market data source and price type.

In order to use the market price sources you need to take the data source name from the market column and add to it the price type.
For example, if you want to use the average bitfinexusd price you take the name of the market and add an underline and the text avg.

bitfinexusd_avg

high The highest price of completed trade during the last 24h.
low The lowest price of completed trade during the last 24h.
bid The bid price is the highest price that a buyer is willing to pay.
ask The ask price is the lowest price that a seller is willing to accept.
close The price of the latest completed trade.
avg The average price of completed trades for the last 24 hours.


Market high low bid ask close avg
bitfinexusd 5,659.50 4,855.00 4,994.70 4,994.80 4,994.70 4,994.75
gdaxusd 4,807.50 4,807.51 4,807.51
bitstampusd 5,559.69 4,694.44 4,804.85 4,809.33 4,809.35 5,094.00
oitbitusd 5,557.50 4,669.50 4,804.79 4,810.33 4,811.78
bitflyerjpy 629,670.00 527,229.00 541,500.00 541,773.00 543,051.00 583,619.09
krakeneur 4,869.30 4,000.10 4,129.10 4,129.20 4,129.10 4,406.64
krakenusd 5,564.10 4,700.00 4,820.00 4,820.30 4,820.60 5,094.46
coinsbankeur 4,917.49 4,105.14 4,156.75 4,228.28 4,195.86 4,588.20
geminiusd 4,808.08 4,808.09 4,808.09
coinsbankusd 5,562.88 4,695.99 4,761.04 4,850.70 4,810.34 5,228.96
coincheckjpy 631,959.00 525,214.00 543,046.00 543,714.00 543,025.00 582,818.99
bitstampeur 4,880.31 4,101.00 4,189.57 4,198.63 4,189.42 4,457.20
coinbaseeur 4,879.41 4,105.00 4,169.65 4,169.66 4,202.88 4,419.65
bitbaypln 21,200.27 17,555.00 18,057.00 18,259.00 18,037.01 19,144.37
btcboxjpy 631,915.00 533,264.00 545,200.00 546,289.00 544,838.00 592,116.59
zaifjpy 629,730.00 532,000.00 543,200.00 543,620.00 542,400.00 583,555.25
korbitkrw 6,427,500.00 5,559,000.00 5,696,000.00 5,699,500.00 5,695,000.00 6,001,031.89
coinbasegbp 4,415.00 3,637.02 3,764.30 3,765.00 3,772.53 3,967.83
cexusd 5,622.20 4,670.00 4,879.10 4,880.20 4,880.20 5,190.62
cexiousd 5,621.60 4,670.00 4,879.60 4,880.20 4,879.70
btcdeeur 7,420.00 2,350.00 4,100.00 4,155.80 4,150.00 4,266.10
lakeusd 6,186.73 5,333.49 5,447.40 5,449.61 5,459.47 5,922.46
coinsbankgbp 4,368.84 3,525.09 3,532.16 4,054.97 3,794.77 4,124.70
coinbaseusd 4,736.33 4,880.58
btcmarketsaud 7,590.00 6,428.08 6,560.06 6,573.16 6,573.16 6,994.00
bitxzar 83,401.00 68,666.00 70,486.00 70,487.00 70,487.00 76,532.54
rockeur 4,859.63 4,100.00 4,206.02 4,207.01 4,206.01 4,470.18
cexeur 4,920.60 4,181.50 4,261.20 4,291.30 4,275.00 4,577.06
cexioeur 4,920.60 4,181.50 4,273.50 4,282.80 4,282.70
coinsbitiousd 5,659.50 4,892.50 4,956.00 5,058.40 5,008.10 5,329.43
coinfloorgbp 4,364.00 3,690.00 3,759.00 3,765.00 3,759.00 3,966.63
btcoididr 83,400,000.00 70,645,000.00 72,335,000.00 72,336,000.00 72,336,000.00 78,243,340.96

Altcoin market price

If you want to trade your bitcoins for altcoins we provide market sources that return the price for one whole Bitcoin in the other cryptocurrency. Below you can find a table that lists all available altcoin market data sources. We fetch three different prices: bid, ask, and close. This table shows the latest price returned from each market data source and price type.

In order to use the market price sources you need to take the data source name from the market column and add to it the price type.
For example, if you want to use the close poloniexeth price you take the name of the market and add an underline and the text close.

poloniexeth_close

bid The bid price is the highest price that a buyer is willing to pay.
ask The ask price is the lowest price that a seller is willing to accept.
close The price of the latest completed trade.


Market close bid ask
krakenxmr 67.07357972 67.29022273 66.91648822
bitfinexdash 44.70472529 44.6090021 44.51963316
poloniexxem 58,445.35359439 58,651.02639296 58,445.35359439
poloniexeth 32.46753247 32.58509271 32.46982011
bitfinexeth 32.56374353 32.59664906 32.5849653
bittrexxrp 10,235.41453429 10,236.46227864 10,235.41453429
bittrexxmr 66.83464441 67.11409396 66.83580581
krakendash 44.54342984 44.64285714 44.54342984
krakenxrp 10,243.80249949 10,254.30680886 10,221.81334969
bitfinexltc 132.7069565 132.79507065 132.73337846
bitfinexxmr 67.08707903 67.18172657 67.15014773
poloniexxrp 10,223.90348635 10,238.55841098 10,224.94887526
poloniexltc 132.62599469 132.80212483 132.46401615
bitfinexxrp 10,235.41453429 10,241.70421958 10,237.51023751
bitstampxrp 10,243.80249949 10,243.80249949 10,230.17902813
bittrexxem 58,309.03790087 58,582.30814294 58,241.11822947
krakeneth 32.62642741 32.61578604 32.59452412
geminieth 32.58390355 32.61578604 32.5414904
bittrexeth 32.53338088 32.56727503 32.54790889
gdaxltc 132.62599469 132.80212483 132.62599469
bittrexltc 132.71435359 132.71435359 132.21514577
poloniexdash 44.43952647 44.60715151 44.43952647
gdaxeth 32.5732899 32.58390355 32.5732899
krakenltc 132.32764324 132.83740701 132.50298132
poloniexxmr 67.21699461 67.27211571 67.22372729
bittrexdash 44.78386634 44.7559258 44.35760212

USD exchange rates

You can get the exchange rate of 1 USD in other currencies using these data sources. To convert a price from USD simply multiply it with the correct USD_in data source. To convert other currencies into USD, get the inverse e.g. 1/USD_in_EUR and multiply it with your price.

Exchange rate data sources

Altcoin exchange rate data sources