Рубрики
Без рубрики

Самый простой способ отслеживать вашу прибыль в биткойнах

Перестаньте быть рабом графиков и автоматизировать процесс. Помечено крипто, биткойнами, сценариями, Python.

Мы часто проверяем цену биткойнов несколько раз в день, ожидая следующего пика или долины. Мы все хотим получить некоторую прибыль от волатильности рынка.

Часто это отвлекает и занимает много времени, но не больше. Давайте создадим сценарий, который автоматически проверяет цену на вашем любимом обмене, сравнивает его с вашей начальной ценой и уведомляет вас о прибыли, которую вы получаете.

Краткое руководство пользователя

Если вы просто хотите запустить сценарий, не копая в него, вы можете получить окончательный код из Здесь Анкет Затем просто скопируйте и вставьте его в файл с расширением “.py” и запустите его через терминал:

$ python bitcoin-profits.py

Скрипт побудит вас ввести некоторые данные.

  1. Ваш обмен: обмен, который вы хотите проверить, это обмен, где вы планируете продать биткойн в конце концов, или просто ваш любимый.

  2. Стартовая цена биткойна: цена, по которой вы купили свои монеты.

  3. Сумма биткойна: сумма биткойна, которую вы купили по этой цене.

  4. Ваша валюта (USD по умолчанию): фиатная валюта, в которой вы торгуете.

  5. Проверьте каждую (секунды): скрипт выполняет расчет в бесконечном цикле, поэтому этот параметр указывает, сколько стоит ждать между последующими выполнениями. Вы можете выбрать из 4 варианта для нашего API.

  6. Выберите, чтобы быть уведомленным, когда достигнут определенный предел: 1) Процентный предел, 2) предел суммы. Здесь вы указываете, когда хотите, чтобы вас уведомляли об изменении цены в биткойнах. Если вы выберете первый вариант (1), вам будет предложено ввести сумму процента. Скажем, вы входите 10, это означает, что когда цена биткойнов изменяется на 10% по сравнению с вашей начальной ценой, вы получите уведомление. Второй вариант позволяет вам указать точную сумму, здесь, если вы введете 10, вы будете уведомлены, когда цена биткойнов отклоняется 10 долларов США, образуя начальную цену (при условии, что доллары США – это ваша валюта).

Полное руководство разработчика

Шаг 1: генерирование пары ключей API BitCoinAverageverage

Чтобы иметь возможность сгенерировать пару ключей, у вас должна быть учетная запись в BitCoinaVerage. Выберите один здесь

После создания и проверки своей учетной записи вы можете сгенерировать пару клавиш API здесь.

У нас есть сложный метод аутентификации и простой. Давайте используем здесь более простой. Просто скопируйте открытый ключ и поместите его в заголовок в вашем запросе. Заголовок

x-ba-key: 

Шаг 2: Создание вызова API HTTP в Bitcoinaverage API

def main(exchange, starting_price, amount, currency, limit_type, limit):
    """
    :param exchange: The exchange where bitcoin was bought
    :param starting_price: The price at which bitcoin was bought
    :param amount: The amount of bitcoin
    :param currency: The currency bitcoin was bought in
    :param limit_type: The type of threshold, percent or amount
    :param limit: The value of the threshold
    :return: Current profit made
    """

    API_ROOT = "https://apiv2.bitcoinaverage.com"

    response = requests.get("{api}/exchanges/{exchange}".format(api=API_ROOT, exchange=exchange), headers={'x-ba-key': })
    symbol = 'BTC'+currency
    latest_bid = response.json()['symbols'][symbol]['bid']
    result = calculate_profits(currency, latest_bid, starting_price, amount, limit_type, limit)
    return result

Это основная функция, которая принимает все параметры, введенные пользователем, и пересылает их в функцию Calculate_profits, которую мы будем написать дальше.

Но прежде чем мы начнем кодирование, убедитесь, что у вас установлены потрясающие запросы HTTP Library. Получите его с: PIP установить запросы.

Давайте проверем ответ, который мы получаем от нашего API очень быстро.

{
    "name": "bitstamp",
    "display_name": "Bitstamp",
    "url": "https://bitstamp.net/",
    "timestamp": 1493816831,
    "data_source": "api",
    "symbols": {
        "XRPEUR": {
            "last": 0.0513,
            "volume": 5706005.4795,
            "ask": 0.0513,
            "bid": 0.0511
        },
        "BTCUSD": {
            "last": 1474.74,
            "volume": 9207.05,
            "ask": 1474.70,
            "bid": 1471.81
        },
        "BTCEUR": {
            "last": 1345.10,
            "volume": 1032.09,
            "ask": 1347.59,
            "bid": 1345.10
        },
        "XRPUSD": {
            "last": 0.0560,
            "volume": 12515723.6935,
            "ask": 0.0560,
            "bid": 0.0557
        }
    }
}

Как вы видите из этого ответа, вы можете обнаружить все доступные торговые пары на вашем бирже, и вы можете расширить этот скрипт, чтобы выполнить расчет проверки прибыли на более чем одной торговой паре.

На данный момент мы будем использовать значения BTCUSD только из ответа. Давайте рассмотрим, что означают эти значения: спросите, станьте, последним и объемом.

Последнее: последняя цена, по которой биткойн была продана или куплена ставка: лучшая (самая высокая) ставка. Самая высокая цена кто -то готов купить биткойн на вашем обмене прямо сейчас. Спросите: лучший (самый низкий) спросите. Самая низкая цена, которую кто -то готов продать биткойн на вашем обмене прямо сейчас. Том: общее количество биткойнов, купленных и продано на этом бирже за последние 24 часа.

Из этих ценностей нас интересует только «ставка», потому что если бы мы продавали наши монеты прямо сейчас, это цена, которую мы бы получили для них. Таким образом, после извлечения ставки мы просто передаем все значения в функцию Calculate_profits.

Шаг 3: Алгоритм проверки нашей прибыли

def calc_percent_diff(now, base):
    difference = now - base
    return difference * 100 / base

def calculate_profits(cc, latest_bid, starting_price, amount, limit_type, limit):
    difference = abs((latest_bid - starting_price) * amount)
    single_diff = latest_bid - starting_price
    if limit_type == 'percent':
        percent_difference = calc_percent_diff(latest_bid, starting_price)
        if percent_difference >= limit:
            return "The bitcoin price has increased by {:.2f} %, you have a profit of {:.2f} {}\n That is {:.2f} {} per coin.".format(percent_difference, difference, cc, abs(single_diff), cc)
        elif percent_difference <= -1 * limit:
            return "The bitcoin price has decreased by {:.2f} %, you have a loss of {:.2f} {}\n That is {:.2f} {} per coin.".format(abs(percent_difference), difference, cc, abs(single_diff), cc)
    else:
        if single_diff >= limit:
            return "The bitcoin price has increased by {:.2f} {}, you have a profit of {:.2f} {}\n That is {:.2f} {} per coin.".format(single_diff, cc, difference, cc, abs(single_diff), cc)
        elif single_diff <= -1 * limit:
            return "The bitcoin price has decreased by {:.2f} {}, you have a loss of {:.2f} {}\n That is {:.2f} {} per coin.".format(single_diff, cc, abs(difference), cc, abs(single_diff), cc)

То, что мы делаем здесь, это сравнение стартовой цены с последней ценой ставки, которую мы получили от API.

Если сценарий настроен для проверки процента, мы делаем это, в противном случае мы проверяем абсолютную разницу в долларах между двумя ценами.

Если последняя цена отклонилась от начальной цены больше, чем определенная сумма, мы создаем полезное сообщение, которое мы представим конечному пользователю.

Шаг 4: Запуск скрипта в бесконечной петле и отображение уведомлений на рабочем столе на Linux и Mac

if __name__ == '__main__':
    my_exchange = input("Your exchange:")
    starting_price = input("Bitcoin starting price:")
    amount = input("Bitcoin amount:")
    currency = input("Your currency (default USD):")
    check_every = input("Check every (seconds):")
    threshold = input("Choose to be notified when a certain limit is reached\n1) Percent limit: \n2) Amount limit: \n ")
    limit_type = None
    limit = 0
    if threshold == '1':
        limit_type = 'percent'
        limit = input("Percent:")
    elif threshold == '2':
        limit_type = 'amount'
        limit = input("Amount:")
    if not currency:
        currency = 'USD'
    notifications = input("Choose desktop notifications: \n0) No\n1) Mac\n2) Linux\n")
    while True:
        result = main(my_exchange, float(starting_price), float(amount), currency, limit_type, float(limit))
        if result:
            if notifications == '1':
                content = 'display notification "{result}" with title "Bitcoin Profits" '.format(result=result)
                subprocess.run(['/usr/bin/osascript', '-e', content])
            elif notifications == '2':
                subprocess.run(['notify-send', 'Bitcoin Profits', result])
            else:
                print(result)
            break
        time.sleep(int(check_every))

Сначала мы получаем все данные, которые нам нужны, от пользователя, а затем используем бесконечное цикл (хотя истинно:) Мы выполняем основную функцию из ранее. Если эта функция возвращает нам какой -то ответ, это означает, что есть что показать пользователю.

В зависимости от его выбора Linux или Mac настольного уведомления будет создано. Если он не выбрал уведомления или является пользователем Windows, сообщение будет напечатано в терминале.

Уведомления Linux настольных компьютеров

Я пробовал это только на Ubuntu Linux, поэтому они могут не работать на других распределениях Linux. Библиотека для генерации уведомлений называется уведомлением о том, что она очень проста в использовании. В нашем примере выше я использую это так.

notify-send 'Bitcoin Profits' result

Это покажет результат как тело уведомления и «прибыль биткойнов» в качестве названия.

Mac Desktop уведомления

osascript -e 'display notification "You have made 10% profit" with title "Bitcoin profits" '

Полный код

Полный код для сценария можно найти здесь: https://gist.github.com/KolevDarko/e4e57825871c89adfaf0bf09eded3b45

Если у вас есть какие -либо вопросы о расширении этого сценария или о чем -то подобном, не стесняйтесь спрашивать в комментариях.

Оригинал: “https://dev.to/darkokolev/the-easiest-way-to-track-your-bitcoin-profits-39i2”