Ejemplo n.º 1
0
def init_trade(update, context):
    query = update.callback_query
    bot = context.bot
    chat = update.effective_chat
    asset = context.user_data['asset']
    currency = context.user_data['currency']
    trade_time = context.user_data['trade_time']
    trade_amount = context.user_data['trade_amount']
    total_bal = context.user_data['total_bal']
    default_acct = context.user_data['default_acct']

    reply_markup = InlineKeyboardMarkup(button_states['FOURTH']['INIT_TRADE'])

    if query.data == 'call':
        t = Trade(60 * trade_time, trade_amount, total_bal, 'CALL')
        bet_quote = t.get_price(currency)
        first = "SPOT QUOTE: <b>$" + str(round(
            bet_quote, 4)) + "</b>\nTRADE TYPE: <b>" + t.trade_type + "</b>"
        result = None

        bot.edit_message_text(
            chat_id=query.message.chat_id,
            message_id=query.message.message_id,
            text=first,
            # reply_markup=reply_markup,
            parse_mode=ParseMode.HTML)

        last_quote = bet_quote

        for i in range(0, t.duration, 5):
            current_quote = t.get_price(currency)
            first = "SPOT QUOTE: <b>$" + str(round(
                bet_quote, 4)) + "</b>\nCURRENT QUOTE: <b>$" + str(
                    round(current_quote,
                          4)) + "</b>\nTRADE TYPE: <b>" + t.trade_type + "</b>"
            if (i >= t.duration):
                break
            result = t.call(bet_quote, current_quote, 80)

            if current_quote != last_quote:
                bot.send_message(
                    chat_id=query.message.chat_id,
                    message_id=query.message.message_id,
                    text=first + "\n\n" + result['state'],
                    # reply_markup=reply_markup,
                    parse_mode=ParseMode.HTML)
                last_quote = current_quote

            time.sleep(5)
            i += 5

        bot.send_message(chat_id=query.message.chat_id,
                         message_id=query.message.message_id,
                         text="<b>TRADE IS DONE!!!</b>" + "\n\n" +
                         result['state'],
                         reply_markup=reply_markup,
                         parse_mode=ParseMode.HTML)
        binary_db = BinaryDB()
        res = binary_db.db.users.update_one(
            {"tgram_uid": query.message.chat_id},
            {'$set': {
                "account.demo_balance": result['new_balance']
            }}) if default_acct == 'demo' else binary_db.db.users.update_one(
                {"tgram_uid": query.message.chat_id},
                {'$set': {
                    "account.ngn_balance": result['new_balance']
                }})
        print(res)

    else:
        t = Trade(60 * trade_time, trade_amount, total_bal, 'PUT')
        bet_quote = t.get_price(currency)
        first = "SPOT QUOTE: <b>$" + str(round(
            bet_quote, 4)) + "</b>\nTRADE TYPE: <b>" + t.trade_type + "</b>"
        result = None

        bot.edit_message_text(
            chat_id=query.message.chat_id,
            message_id=query.message.message_id,
            text=first,
            # reply_markup=reply_markup,
            parse_mode=ParseMode.HTML)
        last_quote = bet_quote

        for i in range(0, t.duration, 5):
            current_quote = t.get_price(currency)
            first = "SPOT QUOTE: <b>$" + str(round(
                bet_quote, 4)) + "</b>\nCURRENT QUOTE: <b>$" + str(
                    round(current_quote,
                          4)) + "</b>\nTRADE TYPE: <b>" + t.trade_type + "</b>"
            if (i >= t.duration):
                break
            result = t.put(bet_quote, current_quote, 80)

            if current_quote != last_quote:
                bot.send_message(
                    chat_id=query.message.chat_id,
                    message_id=query.message.message_id,
                    text=first + "\n\n" + result['state'],
                    # reply_markup=reply_markup,
                    parse_mode=ParseMode.HTML)
                last_quote = current_quote

            time.sleep(5)
            i += 5

        bot.send_message(chat_id=query.message.chat_id,
                         message_id=query.message.message_id,
                         text="<b>TRADE IS DONE!!!</b>" + "\n\n" +
                         result['state'],
                         reply_markup=reply_markup,
                         parse_mode=ParseMode.HTML)
        binary_db = BinaryDB()
        res = binary_db.db.users.update_one(
            {"tgram_uid": query.message.chat_id},
            {'$set': {
                "account.demo_balance": result['new_balance']
            }}) if default_acct == 'demo' else binary_db.db.users.update_one(
                {"tgram_uid": query.message.chat_id},
                {'$set': {
                    "account.ngn_balance": result['new_balance']
                }})
        print(res)

    return FOURTH