def quitMenu(): dramaticTyping("Do you want to try again? Y/N ") answer = raw_input("").upper() if answer == 'Y': main() else: exit()
def main(): welcome() coins = fetchCoins() currency, quantity = inputBuy() try: price = coins[currency]['price'] except Exception as e: dramaticTyping("Invalid currency entered, please try again \n") inputBuy() runSimulation(coins[currency]['price'], quantity, currency) quitMenu()
def fetchCoins(): connection = sqlite3.connect('./currency_monitor.db') cursor = connection.cursor() query = "SELECT first_leg, ask FROM prices WHERE timestamp='1520408341.52' AND second_leg='USD';" cursor.execute(query) coinAskPrices = cursor.fetchall() coins = {} for coinAskPrice in coinAskPrices: if coinAskPrice[0] in coins: continue coins[coinAskPrice[0]] = {"price":coinAskPrice[1], "curreny":coinAskPrice[0]} dramaticTyping("{} - ${} \n".format(coinAskPrice[0], round(coinAskPrice[1],4))) return coins
def runSimulation(boughtPrice, quantity, currency): valueThen = boughtPrice * quantity bestPrice, timestamp = fetchBestBidPriceFromDB(currency) bestValue = bestPrice * quantity priceDifference = (bestValue - valueThen) / float(valueThen) * 100 time = datetime.datetime.fromtimestamp(timestamp).strftime( '%A, %B %-d, %Y %I:%M %p') print("The best bid price for {} was ${} at {} \n".format( currency, bestPrice, time)) if priceDifference > 0: dramaticTyping( "Your total asset value is ${}, it has increase by {}% \n".format( round(bestValue, 4), round(priceDifference, 2))) else: dramaticTyping( "Your total asset value is ${}, it has decreased by {} \n".format( round(bestValue, 4), round(priceDifference, 2)))
def inputBuy(): dramaticTyping("Select the crypto curreny you want to buy? \n") curreny = raw_input("").upper() dramaticTyping("That's great. How much quantity you want to buy? \n") quantity = float(raw_input("")) return curreny, quantity
def welcome(): print("\n") dramaticTyping("Simple Crypto Trading Simulator \n") dramaticTyping("Hey Yo, you are back in time. It's Wednesday, March 7, 2018 7:39 AM \n") dramaticTyping("Here are the crypto currencies you can invest. \n") dramaticTyping("Fetching prices ... \n")