def sell(api_key): data = request.get_json() account = Account.api_authenticate(api_key) if account: ticker = request.get_json()['ticker'] amount = request.get_json()['amount'] Withdrawal = request.get_json()['type'] current_position = Position.from_account(account.pk, ticker) if current_position.num_shares < int(amount): return jsonify({"Insufficient_funds": "Insufficient_funds"}) transaction_price = get_price_of_ticker(ticker) * int(amount) account.balance += (transaction_price) account.equity -= transaction_price current_position.equity -= (transaction_price) current_position.num_shares -= int(amount) current_position.save() time = data.get('unix_time') new_trade = Trade(account.pk, ticker, amount, current_position.equity, Withdrawal, time) new_trade.equity = transaction_price new_trade.insert() account.save() return jsonify({"ticker": ticker, "amount": amount}) return jsonify({'error': 'invalid key'})
def buy(api_key): data = request.get_json() account = Account.api_authenticate(api_key) if account: ticker = request.get_json()['ticker'] amount = request.get_json()['amount'] Deposit = request.get_json()['type'] current_price = get_price_of_ticker(ticker) * int(amount) if account.balance < current_price: return jsonify({"Insufficient_funds": "Insufficient_funds"}) account.balance -= current_price account.equity += current_price current_position = Position.from_account(account.pk, ticker) current_position.equity += current_price current_position.number_shares += int(amount) current_position.save() time = data.get('unix_time') new_trade = Trade(account.pk, ticker, amount, current_position.equity, Deposit, time) new_trade.equity = current_price new_trade.insert() account.save() return jsonify({"ticker": ticker, "amount": amount}) return jsonify({'error': 'invalid key'})