The largest aspect of my previous Bittrex trading program was how the program collected market data. Market data was collected in "ticks", or "candlestick". Each tick was period of time that it covered, in varying lengths. For example, a tick length might be an hour. The tick for that specific hour in time would contain data like the highest price (during that hour), the lowest price, what it started at at the beginning of that tick and what it ended at.
The program uses that data to decide when to buy or sell data. It uses it in varying tick lengths, depending on the buying criteria "style". For example, each tick could be a full 24 hour period, and it would check the last five ticks and if it's been gradually climbing from the open of the first tick to the close of the last tick it would buy. A short/quick buy criteria might be measured in one minute ticks, where if the market climbs in price by x amount in 30 minutes it would buy, or sell for the opposite result.
The Bittrex API allows you to ask for the data ticks in whatever length you require (from one minute to one day), but because I'm checking nearly a hundred markets as often as I can (ideally every minute as that's when the ticks update) I'm not able to query the server that many times (because of the rate limits). Instead, I can get the most specific data for the markets, and scale it up to whatever length I want.