Розробка алгоритму take profit по частинах

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка алгоритму take profit по частинах
Простий
від 1 дня до 3 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка алгоритму partial take profit

Часткове закриття позиції (partial take profit) дозволяє зафіксувати частину прибутку по мірі досягнення цілей, залишаючи залишок позиції для подальшого зростання. Компроміс між «продати все рано» та «утримувати до кінця».

Логіка часткового take profit

Замість однієї ціли — кілька рівнів фіксації прибутку:

Вхід: 1 BTC по $40,000
TP1 (25% позиції): $42,000 → продаємо 0.25 BTC, прибуток $500
TP2 (50% залишку): $44,000 → продаємо 0.375 BTC, прибуток $1,500
TP3 (залишок): trailing stop від $44k → продаємо 0.375 BTC при спрацюванні

Після TP1 переносимо stop-loss у break-even. Після TP2 — trailing stop.

Розрахунок рівнів take profit

Fibonacci-based: рівні на 127.2%, 161.8%, 261.8% від першого руху.

R:R based: якщо стоп $500 (1R), то TP1 = 1R ($500), TP2 = 2R ($1000), TP3 = 3R ($1500).

ATR-based: TP1 = entry + 1.5 × ATR, TP2 = entry + 3 × ATR, TP3 = trailing.

Реалізація

class PartialTakeProfit:
    def __init__(self, total_qty, take_profit_levels):
        """
        take_profit_levels: [(price, pct_of_current), ...]
        """
        self.remaining_qty = total_qty
        self.levels = take_profit_levels
        self.completed_levels = set()
    
    def check_levels(self, current_price):
        actions = []
        for i, (tp_price, pct) in enumerate(self.levels):
            if i not in self.completed_levels and current_price >= tp_price:
                sell_qty = self.remaining_qty * pct
                self.remaining_qty -= sell_qty
                self.completed_levels.add(i)
                actions.append({'action': 'partial_close', 'qty': sell_qty})
        return actions

Break-even stop після першого TP: при TP1 виконанні переносимо stop-loss на ціну входу. Залишок позиції — «free ride».

Розробляємо модуль часткового take profit з налаштовуваними рівнями, автоматичним переносом стопу у break-even, опціональним trailing stop для заключної частини позиції.