How to avoid price pumps & dumps when trading with bot? Recently I recieved $500 USD in credits for trading with Coinsetter, a NYC based bitcoin exchange, so I decided to use them and coded a bitcoin trading bot for myself (never have done such thing before); The problem I'm having right now is that my bot seem to be "buying higher, selling lower" and I don't know why, you see:

If I go to the bot's logs, I get something like this:



The prices shown there are the prices at which the market order is requested, (giving an invalid price as an argument for the API request supposedly results in a failed order, so I request the live price first from coinsetter twice before I do a buy/sell operation); BUT if we go to the coinsetter transaction history we have this instead:



So everytime I do a BUY I pump up the market, and every time I do a sell I dump it, how can this be avoided? I'd prefer buying at the lower prices and selling at the higher ones.

P.S. Another question would be: What you think is the real price at which I'm buying/selling? The price I REQUEST or the price coinsetter tells me at it's history?

Thanks for your advice.
In a normal exchange, you have an order book of buys and sells. Usually, they don't cross over, that is, if the highest buy is 219, the lowest sell will be higher than that.

What you're doing is buying at market (aka market order) so any buys you do simply match the lowest sell and any sells you do simply match the highest buy. Whenever the two cross, they are simply filled by each other, so the gap will be there 99% of the time.

What you can do if you want to avoid this is to use limit orders. Generally, though, you have to wait for them to fill as you need price movement in order for that to happen.