Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Розмістіть свій проєкт безплатно та почніть отримувати пропозиції від фрилансерів-виконавців уже через хвилини після публікації!

Потрібен бот для tradingview.com

Translated11 231 UAH

Додатки 2

Перегляд додатків доступний тільки зареєстрованим користувачам.
  1. 474    2  0
    14 днів22 463 UAH

    Доброго часу доби, уточніть, будь ласка, біржу, з якою ми будемо працювати.

    Вже реалізовував торгового бота (Binance + TradingView)

    В якості інтерфейсу пропоную використовувати простий телеграм-бот: з кнопками або командами - на ваш смак.

    Проект оцінюю мінімум у 500$. В залежності від дедлайнів або додаткових вимог, ціна і терміни можуть бути вищими.

    Якщо влаштовує мій підхід, - давайте уточнимо деталі в ЛС. Буду радий виконати такий цікавий проект!

  2. 1970    45  3   1
    7 днів11 231 UAH

    Доброго часу. Я маю необхідний досвід, готовий зробити бота для автономної торгівлі. Зроблю все якісно і завжди на зв'язку. Буду радий співпраці з вами!

  3. 3853    24  0
    1 день17 970 UAH

    Доброго дня,

    Я готовий створити автоматизований скрипт для вашого проєкту. Спеціалізуюсь на автоматизації бізнес-процесів і можу реалізувати торгового бота, використовуючи обрану вами стратегію. Спроектую алгоритм для автономної торгівлі при появі нової лінії підтримки або опору, управління ордерами та реалізацію мартингейла.

    Можу надати 3 варіанти стратегії, які можна буде легко змінювати, а також додати функцію запам'ятовування налаштувань для зручності використання бота.

    Готовий розпочати роботу. Мій рейт -16$ на годину.

    З повагою,
    Максим

  4. Mykhailo Pavlov SolidWay
    8867    60  0   1
    21 день89 851 UAH

    Доброго дня!

    Готовий реалізувати скрипт для автономної торгівлі.

    Є досвід створення подібних проектів. Кейси можу надати в ЛС.

    Пишу на Python. Займаю 2-е місце на платформі за даною мовою.

    Портфоліо: Freelancehunt

    Буду радий співпрацювати!

  5. 1786    19  0   1
    21 день40 433 UAH

    Вітаю.
    Займаємось розробкою ПЗ, сайтів з нуля, а також їх доопрацюванням.
    Працюємо з: WordPress, 1C, Opencart, Shopify, WIX, Python, JavaScript, C++, C#, Unity 3D, SQL, Microsoft SQL Server, WPF, WinForms.
    Є досвід у: Системне програмування, Управління проєктами розробки, Захист інформації, Програмування ігор, тощо.
    Виконаємо вашу роботу, незалежно від її рівня складності.
    Після завершення роботи пропонуємо підтримку проєкту протягом 14 днів.
    Будемо раді співпраці!

  6. Ще 3 ставки приховано
    1 ставку приховано
  • Viatcheslav Schiebelbein
    15 вересня 2024, 12:25 |

    Вот пример, как может выглядеть подобный скрипт на Python с использованием библиотеки ccxt (для подключения к биржам), но можно адаптировать для других платформ (например, MetaTrader).


    Основные задачи:

    Определение уровней поддержки и сопротивления.

    Автоматическое открытие ордеров в зависимости от выбранной стратегии.

    Управление ордерами (рыночный, отложенный, стоп).

    Реализация стратегии мартингейл в случае убытков.

    Настройки для возможности изменять стратегии.

    Пример кода:


    import ccxt  # Для подключения к биржам, например Binance

    import time

    import numpy as np


    # Конфигурация вашего API и биржи

    exchange = ccxt.binance({

        'apiKey': 'ВАШ_API_KEY',

        'secret': 'ВАШ_SECRET_KEY',

    })


    # Функция для получения текущих цен на актив

    def get_current_price(symbol):

        ticker = exchange.fetch_ticker(symbol)

        return ticker['last']


    # Функция для открытия ордера

    def place_order(symbol, order_type, side, amount, price=None):

        if order_type == 'market':

            return exchange.create_market_order(symbol, side, amount)

        elif order_type == 'limit':

            return exchange.create_limit_order(symbol, side, amount, price)

        elif order_type == 'stop':

            return exchange.create_stop_order(symbol, side, amount, price)


    # Определение уровней поддержки и сопротивления

    def find_support_resistance(prices, window=20):

        support = np.min(prices[-window:])

        resistance = np.max(prices[-window:])

        return support, resistance


    # Реализация стратегии Мартингейла

    def martingale_strategy(current_price, initial_amount, multiplier, max_attempts):

        attempt = 0

        amount = initial_amount

        

        while attempt < max_attempts:

            result = simulate_trade(current_price, amount)  # Функция симуляции торговли (реализуйте сами)

            if result == 'loss':

                amount *= multiplier

                attempt += 1

            else:

                break


    # Пример использования стратегии

    def trading_strategy(symbol, strategy_type, support, resistance, points_before, points_after, amount):

        current_price = get_current_price(symbol)

        

        if strategy_type == 1:

            # Стратегия 1: Открытие ордера до уровня

            if current_price < (support - points_before):

                place_order(symbol, 'market', 'buy', amount)

            elif current_price > (resistance + points_before):

                place_order(symbol, 'market', 'sell', amount)

        

        elif strategy_type == 2:

            # Стратегия 2: Открытие ордера на уровне

            if current_price == support:

                place_order(symbol, 'limit', 'buy', amount, support)

            elif current_price == resistance:

                place_order(symbol, 'limit', 'sell', amount, resistance)

        

        elif strategy_type == 3:

            # Стратегия 3: Открытие ордера после уровня

            if current_price > (support + points_after):

                place_order(symbol, 'stop', 'buy', amount)

            elif current_price < (resistance - points_after):

                place_order(symbol, 'stop', 'sell', amount)


    # Запуск бота

    def run_trading_bot(symbol, strategy_type, initial_amount, points_before, points_after, martingale=False):

        prices = []  # Массив для хранения цен

        while True:

            current_price = get_current_price(symbol)

            prices.append(current_price)


            if len(prices) > 20:

                support, resistance = find_support_resistance(prices)

                trading_strategy(symbol, strategy_type, support, resistance, points_before, points_after, initial_amount)

                

                if martingale:

                    martingale_strategy(current_price, initial_amount, 2, 5)  # Пример использования мартингейла

                    

            time.sleep(60)  # Пауза на 1 минуту


    # Пример запуска бота

    symbol = 'BTC/USDT'

    strategy_type = 1  # Выбор стратегии

    initial_amount = 0.01  # Количество для торговли

    points_before = 100  # Пункты до уровня

    points_after = 100  # Пункты после уровня


    run_trading_bot(symbol, strategy_type, initial_amount, points_before, points_after, martingale=True)


    Объяснение:

    get_current_price: Получает текущую цену для выбранной пары (например, BTC/USDT).

    find_support_resistance: Вычисляет линии поддержки и сопротивления на основе последних цен.

    place_order: Размещает рыночный, лимитный или стоповый ордер в зависимости от параметров.

    martingale_strategy: Реализует стратегию мартингейла для увеличения объема ордера при убытках.

    trading_strategy: Использует выбранную стратегию для открытия позиций до, на или после уровня.

    run_trading_bot: Запускает основную логику бота.

    Переключение стратегий:

    Чтобы переключить стратегию, достаточно изменить параметр strategy_type при вызове функции run_trading_bot.


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


  • Roman Freelancer
    15 вересня 2024, 16:46 |

    Здравствуйте
    Этот скрипт будет работать с индикатором на трейдингвью?
    задача или настроить бот на базе трейдингвью или на базе бынанс но тогда нужно что бы прям точно скопировать логику  индикатора на бинанс если это реально
     

  • Viatcheslav Schiebelbein
    16 вересня 2024, 18:25 |

    Да, скрипт, который я предложил, изначально написан для работы с биржами через API (например, Binance через библиотеку `ccxt`), но если ваша цель — реализовать торговую стратегию, основанную на индикаторах с TradingView, то можно адаптировать решение для TradingView.


    Есть несколько путей, как это можно сделать:


    1. Использование Webhook и Pine Script на TradingView

    TradingView не предоставляет прямого API для торговли, но вы можете использовать **вебхуки** для автоматизации торговли на базе индикаторов TradingView. Этот способ позволяет отправлять сигналы на ваш бот, как только возникают необходимые условия.


    План действий:

    1. Создание индикатора или стратегии в Pine Script на TradingView:

       - Напишите или используйте готовый индикатор/стратегию на Pine Script (это язык для написания индикаторов на TradingView).

       - Добавьте логику, которая определяет линии поддержки/сопротивления и условия для открытия ордеров.

       

    2. Добавление вебхуков в стратегию:

       - В Pine Script можно добавить код для отправки вебхуков. Когда возникает условие для открытия ордера, TradingView будет отправлять запрос на URL вашего бота.

       

       Пример на Pine Script:


       ```pinescript

       //@version=5

       strategy("My Strategy", overlay=true)


       // Логика вашего индикатора

       support_level = ta.lowest(close, 20)

       resistance_level = ta.highest(close, 20)


       // Условия для ордеров

       if (close < support_level)

           strategy.entry("Buy", strategy.long)


       if (close > resistance_level)

           strategy.entry("Sell", strategy.short)


       // Вебхук на покупку

       if (strategy.opentrades == 1)

           alert("Buy signal", alert.freq_once_per_bar_close)

       ```


       После этого вы можете задать вебхук URL в настройках оповещений TradingView. Вебхук будет передавать данные в ваш скрипт на сервере, который откроет ордер на бирже (например, через API Binance).


    3. Бот на стороне сервера:

       - Создайте сервер (например, на Python с использованием Flask), который будет принимать вебхук от TradingView и затем через API (например, с использованием `ccxt`) открывать ордера на Binance.

       

       Пример простого сервера на Flask:


       ```python

       from flask import Flask, request

       import ccxt


       app = Flask(__name__)


       # Настройки API Binance

       exchange = ccxt.binance({

           'apiKey': 'ВАШ_API_KEY',

           'secret': 'ВАШ_SECRET_KEY',

       })


       # Обработчик вебхуков от TradingView

       @app.route('/webhook', methods=['POST'])

       def webhook():

           data = request.json

           if data['action'] == 'buy':

               exchange.create_market_order('BTC/USDT', 'buy', 0.01)

           elif data['action'] == 'sell':

               exchange.create_market_order('BTC/USDT', 'sell', 0.01)

           return 'success', 200


       if __name__ == '__main__':

           app.run(port=5000)

       ```


    4. Подключение к Binance через API:

       - После получения сигнала от TradingView бот откроет соответствующие ордера на Binance через API, используя ту же логику, что и в исходном скрипте.


    2. Реализация индикаторов напрямую через Binance

    Если вы хотите реализовать стратегию на стороне Binance напрямую без использования TradingView, то вам нужно будет скопировать логику индикатора TradingView. Логика большинства индикаторов на Pine Script может быть воссоздана на Python.


    Пример для простой копии индикатора поддержки/сопротивления на Python:


    ```python

    import ccxt

    import numpy as np


    # Подключение к Binance

    exchange = ccxt.binance({

        'apiKey': 'ВАШ_API_KEY',

        'secret': 'ВАШ_SECRET_KEY',

    })


    # Получение исторических данных

    def get_historical_data(symbol, timeframe='1h'):

        ohlcv = exchange.fetch_ohlcv(symbol, timeframe)

        return np.array(ohlcv)


    # Вычисление уровня поддержки и сопротивления

    def find_support_resistance(data, window=20):

        lows = data[:, 3]  # Минимумы свечей

        highs = data[:, 2]  # Максимумы свечей

        support = np.min(lows[-window:])

        resistance = np.max(highs[-window:])

        return support, resistance


    # Тестирование работы

    symbol = 'BTC/USDT'

    timeframe = '1h'

    data = get_historical_data(symbol, timeframe)

    support, resistance = find_support_resistance(data)

    print(f"Support: {support}, Resistance: {resistance}")

    ```


    Что выбрать?

    - **TradingView + Webhooks**: Это проще и быстрее для реализации, так как все индикаторы уже готовы и легко настраиваются. Вам нужно будет только писать логику для обработки сигналов.

    - **Binance API + Python**: Более сложный вариант, так как требует воссоздания индикаторов вручную, но дает больше контроля и автономности, поскольку бот полностью независим от сторонних платформ.


    Вывод: Если вы хотите автоматизировать торговлю на основе индикаторов с TradingView, проще использовать вебхуки и Pine Script.

  • Roman Freelancer
    17 вересня 2024, 2:13 |

    Спасибо за столь детализированный ответ
    это просто вау
    Но у меня подключен на прямую трейдингвью к бинанс
    image
    В таком случае какой вариант подходит?


  • Viatcheslav Schiebelbein
    23 вересня 2024, 11:29 |

    Рад, что мой предыдущий ответ оказался полезным! Поскольку у вас уже настроено прямое подключение TradingView к Binance, давайте рассмотрим, как оптимально интегрировать автоматизированный торговый бот с учётом ваших требований. 


    ### Варианты интеграции


    1. **Использование Вебхуков с TradingView**:

       - **Описание**: TradingView позволяет отправлять сигналы через вебхуки при срабатывании условий, заданных в индикаторах или стратегиях на Pine Script. Эти сигналы можно принимать вашим ботом и выполнять соответствующие действия на Binance.

       - **Преимущества**:

         - Гибкость в настройке стратегий.

         - Возможность реализовать сложные логики, такие как Мартингейл.

         - Полный контроль над исполнением ордеров.

       - **Недостатки**:

         - Требуется настройка и поддержка серверной части для приёма вебхуков.

         - Дополнительная разработка для обработки сигналов и управления ордерами.


    2. **Использование Прямого Подключения TradingView к Binance**:

       - **Описание**: Если ваше подключение позволяет настраивать типы ордеров и стратегии напрямую через интерфейс TradingView, это может упростить процесс. Однако, возможности могут быть ограничены по сравнению с собственным ботом.

       - **Преимущества**:

         - Простота настройки через интерфейс TradingView.

         - Меньше необходимости в дополнительной разработке.

       - **Недостатки**:

         - Ограниченные возможности для реализации сложных стратегий, таких как Мартингейл.

         - Меньше гибкости в настройке типов ордеров и логики управления рисками.


    ### Рекомендация


    Для реализации ваших требований (различные типы ордеров, Мартингейл, изменение стратегий и сохранение настроек) **наиболее подходящим вариантом будет использование вебхуков TradingView в сочетании с собственным ботом на сервере**. Это даст вам максимальную гибкость и контроль над торговыми процессами.


    ### Пошаговое Руководство


    #### 1. **Создание Стратегии на TradingView с Вебхуками**


    - **Написание Pine Script**:

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


      ```pinescript

      //@version=5

      strategy("Support/Resistance Strategy with Webhook", overlay=true)


      // Определение уровней поддержки и сопротивления

      support_level = ta.lowest(low, 20)

      resistance_level = ta.highest(high, 20)


      // Условия для открытия позиций

      if (close < support_level)

          strategy.entry("Buy", strategy.long)


      if (close > resistance_level)

          strategy.entry("Sell", strategy.short)


      // Отправка сигналов через вебхуки

      if (strategy.opentrades == 1 and strategy.position_size > 0)

          alert(json.encode({"action": "buy"}), alert.freq_once_per_bar_close)


      if (strategy.opentrades == 1 and strategy.position_size < 0)

          alert(json.encode({"action": "sell"}), alert.freq_once_per_bar_close)

      ```


    - **Настройка Оповещений (Alerts)**:

      После добавления стратегии на график, создайте оповещения (alerts) с использованием вебхуков. Укажите URL вашего сервера, который будет обрабатывать сигналы.


      ![Настройка Alert с Webhook](https://www.example.com/image.png)  

      *(Пример изображения настроек оповещений с вебхуком)*


    #### 2. **Создание Сервера для Приёма Вебхуков**


    Используйте Python и Flask для создания простого сервера, который будет принимать сигналы от TradingView и выполнять соответствующие действия на Binance.


    ```python

    from flask import Flask, request, jsonify

    import ccxt

    import json


    app = Flask(__name__)


    # Настройки API Binance

    exchange = ccxt.binance({

        'apiKey': 'ВАШ_API_KEY',

        'secret': 'ВАШ_SECRET_KEY',

        'enableRateLimit': True,

    })


    # Настройки торговли

    symbol = 'BTC/USDT'

    initial_amount = 0.001  # Начальное количество для ордеров

    martingale_multiplier = 2

    max_attempts = 5

    current_attempt = 0


    # Функция для размещения ордера

    def place_order(action, amount):

        try:

            if action == 'buy':

                order = exchange.create_market_buy_order(symbol, amount)

            elif action == 'sell':

                order = exchange.create_market_sell_order(symbol, amount)

            print(f"Order placed: {order}")

            return order

        except Exception as e:

            print(f"Error placing order: {e}")

            return None


    # Реализация стратегии Мартингейл

    def martingale(action, amount, attempt):

        if attempt > max_attempts:

            print("Max martingale attempts reached.")

            return

        new_amount = amount * martingale_multiplier

        print(f"Martingale attempt {attempt}: Placing order with amount {new_amount}")

        place_order(action, new_amount)

        # Здесь можно добавить логику проверки результата ордера и повторного вызова martingale при необходимости


    @app.route('/webhook', methods=['POST'])

    def webhook():

        global current_attempt

        data = request.json

        print(f"Received webhook: {data}")


        action = data.get('action')

        if action in ['buy', 'sell']:

            order = place_order(action, initial_amount)

            if not order:

                martingale(action, initial_amount, current_attempt + 1)

                current_attempt += 1

        return jsonify({'status': 'success'}), 200


    if __name__ == '__main__':

        app.run(port=5000)

    ```


    **Пояснения:**

    - **Маршрут `/webhook`**: Принимает POST-запросы от TradingView с сигналами `buy` или `sell`.

    - **Функция `place_order`**: Размещает рыночный ордер на Binance.

    - **Функция `martingale`**: Реализует стратегию Мартингейл, увеличивая объём ордера при убытке.

    - **Переменные**: `initial_amount`, `martingale_multiplier`, `max_attempts` можно настроить в соответствии с вашими требованиями.


    #### 3. **Развертывание Серверной Части**


    - **Хостинг**: Разместите сервер на надёжном хостинге (например, AWS, Heroku, DigitalOcean).

    - **Безопасность**: 

      - Ограничьте доступ к вебхуку с помощью секретного ключа или токена.

      - Используйте HTTPS для шифрования данных.

    - **Мониторинг**: Настройте логирование и мониторинг для отслеживания работы бота и обработки ошибок.


    #### 4. **Настройка Сохранения Настроек и Стратегий**


    Для реализации возможности изменять стратегии и сохранять настройки, можно использовать файл конфигурации (например, JSON или YAML) или базу данных.


    **Пример с использованием JSON:**


    ```python

    import json


    # Загрузка настроек из файла

    def load_settings():

        with open('settings.json', 'r') as f:

            return json.load(f)


    # Сохранение настроек в файл

    def save_settings(settings):

        with open('settings.json', 'w') as f:

            json.dump(settings, f, indent=4)


    # Пример структуры settings.json

    """

    {

        "symbol": "BTC/USDT",

        "initial_amount": 0.001,

        "martingale_multiplier": 2,

        "max_attempts": 5,

        "strategies": {

            "strategy1": {

                "type": 1,

                "points_before": 100,

                "points_after": 100

            },

            "strategy2": {

                "type": 2,

                "points_before": 150,

                "points_after": 150

            }

        }

    }

    """

    ```


    **Интеграция в бота**:

    - При запуске бота загружайте настройки из файла.

    - Добавьте интерфейс (например, API-эндпоинты) для изменения настроек и сохранения их в файл.


    #### 5. **Реализация Различных Стратегий**


    В зависимости от выбранной стратегии, адаптируйте логику обработки сигналов.


    **Пример:**


    ```python

    def handle_signal(data, settings):

        action = data.get('action')

        strategy = settings.get('current_strategy')

        strategy_settings = settings['strategies'][strategy]

        

        if strategy_settings['type'] == 1:

            # Стратегия 1: Ордер до уровня

            # Реализуйте логику размещения ордеров до уровня

            place_order(action, settings['initial_amount'])

        

        elif strategy_settings['type'] == 2:

            # Стратегия 2: Ордер на уровне

            # Реализуйте логику размещения ордеров на уровне

            place_order(action, settings['initial_amount'])

        

        elif strategy_settings['type'] == 3:

            # Стратегия 3: Ордер после уровня

            # Реализуйте логику размещения ордеров после уровня

            place_order(action, settings['initial_amount'])

    ```


    ### Дополнительные Рекомендации


    1. **Тестирование**:

       - Перед запуском бота на реальных средствах, протестируйте его на демо-счёте или с использованием небольших объёмов.

       - Убедитесь, что все сценарии (например, успешные ордера, убытки, Мартингейл) работают корректно.


    2. **Управление Рисками**:

       - Стратегия Мартингейл может привести к значительным убыткам при длительной серии неудач. Рассмотрите внедрение ограничений на максимальный объём ордеров и количество попыток.

       - Используйте стоп-лоссы и другие механизмы управления рисками.


    3. **Мониторинг и Уведомления**:

       - Настройте систему уведомлений (например, email, Telegram) для получения оповещений о выполнении ордеров, ошибках и других важных событиях.

       

       **Пример с Telegram:**


       ```python

       import telegram


       bot_token = 'ВАШ_TELEGRAM_BOT_TOKEN'

       chat_id = 'ВАШ_CHAT_ID'

       bot = telegram.Bot(token=bot_token)


       def send_telegram_message(message):

           bot.send_message(chat_id=chat_id, text=message)


       # Использование в функциях

       send_telegram_message("Order placed: Buy 0.001 BTC")

       ```


    4. **Логирование**:

       - Ведите подробные логи всех операций бота для анализа и отладки.

       

       ```python

       import logging


       logging.basicConfig(filename='trading_bot.log', level=logging.INFO,

                           format='%(asctime)s %(levelname)s:%(message)s')


       def place_order(action, amount):

           try:

               if action == 'buy':

                   order = exchange.create_market_buy_order(symbol, amount)

               elif action == 'sell':

                   order = exchange.create_market_sell_order(symbol, amount)

               logging.info(f"Order placed: {order}")

               return order

           except Exception as e:

               logging.error(f"Error placing order: {e}")

               return None

       ```


    ### Заключение


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


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


    Удачной торговли!

Актуальні фриланс-проєкти в категорії Криптовалюта та blockchain

Потрібен інженер/ментор смарт-контрактів

359 405 UAH

Я хочу знайти інженера/ментора смарт-контрактів, який має великий досвід у розробці смарт-контрактів на Solidity.

Криптовалюта та blockchainІнжиніринг ∙ 3 дні 17 годин тому ∙ 11 ставок

Замовник
Roman Freelancer
Канада Abbotsford  21  0
Проєкт опублікований
1 рік тому
171 перегляд