Таблица лидеров
Популярные публикации
Отображаются публикации с наибольшей репутацией начиная с 21.11.2018 во всех областях
-
7 баллов
-
Всем привет! Сегодня речь пойдет о создании бота на базе самодельного телеграм-клиента. Т.е. смысл такой - берутся исходники телеграма, компилируются, получаем библиотеку. С этой библиотекой работаем от своего имени на питоне - такой бот будет работать от лица пользователя, и иметь те же возможности, которые имеет каждый, у кого есть телеграм - читать, пересылать, удалять и т.п. Например, если у вас есть доступ к платному закрытому каналу, или шифрованному чату, вы сможете пересылать оттуда информацию в любой другой чат, где у вас есть право голоса - и никаких ботов не нужно бу6 баллов
-
6 баллов
-
Этап 3 - непосредственно запуск и работа В директории C:\code\examples\telegram создайте файл main.py со следующим содержимым: # -*- coding: utf-8 -*- # # Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 # # Distributed under the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) # from ctypes.util import find_library from ctypes import * import json import sys API_KEY = 111111 API_HASH = '........' PHONE_NUMBER = '+7913212313' # load shared library tdjson_path =4 балла
-
Этап 1 - сложный, его можно пропустить Для начала будет нужно скомпилировать себе библиотеку от телеграма Для этого понадобится программа Git for Windows Скачиваем, устанавливаем, теперь давайте создадим папку, где будем ТВОРИТЬ! У меня это будет папка C:/code/examples/telegram – в ней будет всё, как промежуточное, так и итоговое. В этой папке теперь создадим папку src. На новой папке src щелкаем правой кнопкой мыши, и выбираем в контекстном меню Git Bash Here: В появившемся окне пишем (обратите внимание на точку в конце: git clone https://github.com/tdlib/td.git .4 балла
-
Привет, друзья. Опубликована новая статья и выложен скрипт для трейлинга. Можем обсудить тут3 балла
-
Так-с, ну собственно задача выполнена. Немного об ограничениях - сейчас берутся 100 самых свежих чатов, из-за особенностей работы АПИ. Можно сделать больше, но это нужно больше кода писать, сейчас не вижу в этом смысла. Оба канала - источник и приемник, должны быть в первой сотне. Можете их прикрепить, тогда они всегда гарантировано будут сверху. Можете захардкодить ID каналов, что бы сразу пересылать из одного в другой. Еще бот пересылает текстовые сообщения - пусть с картинками и прочим. Это большинство сообщений телеграмма в большинстве каналов, но бот не будет пересылать пост-картинку3 балла
-
Этап 2 - подготовка На этом этапе подразумевается, что у вас уже есть файл tdjson.dll - вы или скомпилировали его, или взяли мой, или скачали откуда-то из интернета для своей платформы. Рекомендую положить его в C:\Windows\System32 (нужны права администратора), а так же скопировать в папку с программой C:\code\examples\telegram. Запустите командную строку от имени администратора, и в ней выполните команду regsvr32 tdjson.dll Впрочем, оно может выдавать ошибки, и не факт, что по делу, так что можете пока не обращать на ошибки внимания. Теперь нужно завести applicati3 балла
-
3 балла
-
# Ф-ция, которая приводит любое число к числу, кратному шагу, указанному биржей # Если передать параметр increase=True то округление произойдет к следующему шагу def adjust_to_step(value, step, increase=False): return ((int(value * 100000000) - int(value * 100000000) % int( float(step) * 100000000)) / 100000000)+(float(step) if increase else 0) если пара BNBUSDT, ее CURR_LIMITS['filters'][2]['stepSize'] получит с биржи 0.01000000 если settings['amount'] дать цифру 0.58 (settings['amount']=0.58) quantity = adjust_to_step(settings['amount'], CURR_LIMITS['filter2 балла
-
Нет. На примере бинанса: Бинанс разрешает что ваше время не может быть больше чем на 1 секунду чем время сервера, иными словами вы не можете ордер поставить из будущего. Одну сек они видимо на погрешность дают. Ваше время может быть меньше чем на бинансе, если я правильно помню они дают 5 сек на это, здесь уже расчет идет на то что сеть может быть загружена, интернет плохой т.п. Другими словами они считают нормой 5 сек если ордер затеряется, но они позволяют и вручную создавать это окно времени в которое по вашему времени может быть нормальная задержка. Это параметр recWindow, он если память н2 балла
-
у меня так работает: local_time = int(time.time()) restart_time = local_time + 82800 # 23 часа (82800 сек) def on_message(ws, message): global restart_time if 'e' in socket_data: ....... if 's' in socket_data: ......... local_time = int(time.time()) if local_time > restart_time: print("время рестарта") time.sleep(30) local_time = int(time.time()) restart_time = local_time + 82800 def on_error(ws, error): print(error) def on_close(ws): print("### cl2 балла
-
Я делал на голанге, но общий принцип одинаков: Сначала надо отправить обычный запрос (такой же, как и другие в binance_api, с заголовком ) на /api/v3/userDataStream https://github.com/binance-exchange/binance-official-api-docs/blob/master/user-data-stream.md Он вам даст ключ (строку) С этой строкой надо подлючиться через сокеты на wss://stream.binance.com:9443/ws/<listenKey> Потом он начнет спамить всё про изменения баланса и про создание/изменение статусов всех ордеров. Остается только фильтровать.. Важный момент, что нужно раз в сутки этот ключ2 балла
-
Здравствуйте! Подскажите, пожалуйста, есть ли возможность интегрировать "Бот для trailing stop на Binance" в "Бот для Binance с индикаторами"? Торгую с профитом 0,5%, но очень часто упускаю значительный рост. Спасибо!2 балла
-
Ну, а теперь последний шаг - давайте постить всё найденное на форум (IPB в данном случае). В админке я создал API ключ для своего скрипта (но вам не покажу), и познал сокрушительный удар - оказывается, Invision прячется за CloudFront, а те режут Post запросы, поля которых содержат больше 2кб.... Ну что ж делать, не выбрасывать же скрипт.. Теперь будут вороваться те новости, в которых меньше 2000 байт :) import os import re import time from bs4 import BeautifulSoup import requests from xml.etree import ElementTree as etree forum_id = 13 api_key = '....' author_id=3 max_text_size=2000 # С2 балла
-
После срабатывания ордера нужно получать его историю сделок. В истории сделок указывается, какие были сделки по ордеру, на какие суммы и какие комиссии в какой валюте были удержаны. На основе этих данных можно высчитать уже и кол-во полученных монет в результате исполнения ордера, кол-во потраченных денег в той или иной валюте и т.п.1 балл
-
Отображение инфы - в отдельном скрипте from tkinter import * from tkinter.ttk import * import json import time import sqlite3 # создание окна tkinter root = Tk() root.title('BTC USDT Binance') root.geometry("500x500") root.config(bg="purple") def tablo(): conn = sqlite3.connect("tplong.db") cursor = conn.cursor() cursor.execute('SELECT * FROM albums ') raw = cursor.fetchall() pr=raw [0] print(pr) bid=(pr [0]) bid=float(bid) bid=str(bid) startrate=float(pr [1]) startrate=str(start1 балл
-
Вот сделал с использованием Tk и SQLite "Так что бы на одном экране была видна нужная информация." В бота вставил блок, который загоняет данные (курс, стратегию, стоплосс/трейлстоп ит.д. ) в БД, conn = sqlite3.connect("tplong.db") cursor = conn.cursor() cursor.execute('UPDATE albums SET bidprice = ? , startrate = ? , applied = ?, strategy=?, stoploss=?, amount=?, trailperc=? WHERE id = ?',(bid,settings['startrate'],curr_rate_applied,settings['strategy'],settings['stop_loss_fixed'],settings['amount'],settings['stop_loss_perc'],1))1 балл
-
В Питоне есть Ткинтер, вот в нем и стоит сделать ГЮИ # Биткоин тикер, отображает курс БТЦ к Тезер на бирже Бинанс from tkinter import * from tkinter.ttk import * import json import time import requests # создание окна tkinter root = Tk() root.title('BTC USDT Binance') # Эта функция используется для # отображать курса биткоин на этикетке def ticker(): try: b=requests.get('https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT') # сюда можно вставить другую пару lastprice = float(json.loads(b.text)["price"]) print(lastprice1 балл
-
создай бат файл там же где лежит бот, например start.bat внутрь: @ECHO OFF TIMEOUT /T 30 MODE 120,20 title Yobit bot ))) setlocal set PYTHONPATH=./ python ./yobit_perc.py endlocal pause далее, ПКМ создать ярлык (ярлык это ссылка на этот бат файл) далее ПКМ на Пуск -> выполнить -> пишешь shell:startup (откроется папка автозагрузки) далее ПКМ на ярлык - > копировать -> вставить в папку автозагрузки звук проверь что диск с ))) и есть ли этот wave там: import winsound soundfile = "c:/Windows/Media/chimes.wav" winsound.PlaySound(sound1 балл
-
Приветствую, бот binance с индикаторами можно сделать, чтобы он продолжал торговать после каждой убыточной сделки и рассчитывал суммарно средневзвешенную цену для закрытия всех сделок с установленным профитом? Если требуется оплата за доработку прошу написать в личном сообщении.1 балл
-
Подскажите что делать дальше. Дошел до момента Enter code, мне пришёл код на ТГ, после чего нажимаю Enter, и глухо В папке telegram создается две папки, общий вес которых 104 кб. Пробовал скачивать VPN, так же не помогло. Что делать? Есть ли решение?1 балл
-
1 балл
-
Учите программирование, если хотите развиваться и что-то менять. Иначе так и будете простыни посылать, а толку никакого. Эта функция , как видно из файла котоырй вы привели , поиском находится в строке: from misc import adjust_to_step, sync_time, calc_buy_avg_rate, calc_sell_avg_rate, get_order_trades Эта строка говорит что функция adjust_to_step находится и берется из файла misc.py - там ее и смотрим и правим Ошибка действительно подтвердилась, это легко проверить, если поставить точку останова в самой функции и по подставлять туда разные значения. С1 балл
-
Можно например не закупать, если цена выше 70% от суточной, а так же выше 70% от месячной. Но не закупая на хаях можно пропустить весь рост, почему бы не продумать стратегию безопасного ухода с купленного хая (например, так)1 балл
-
А как его использовать? У меня правда такая ошибка... ====================================================== RESTART: C:\Telegram\Resend\main.py ====================================================== Traceback (most recent call last): File "C:\Telegram\Resend\main.py", line 25, in <module> tdjson = CDLL(tdjson_path) File "C:\Users\novikov_a\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 373, in __init__ self._handle = _dlopen(self._name, mode) FileNotFoundError: Could not find module 'C:\WINDOWS\system32\tdjson.dll'. Try using the full path with cons1 балл
-
1 балл
-
Так вы монету не передаёте, замените get_virtual_balance() на get_virtual_balance("BTC")1 балл
-
Напишу тут про синхронизацию ))) Все равно не работает синхронизация времени как написано в "Бот для бинанса с индикаторами". Я что то не до понимаю )) if __name__ == "__main__": sync_time(bot, log, False, limits) t1 = threading.Thread(target=main_flow) t2 = threading.Thread(target=sync_time, args=(bot, log, True, limits)) threads = [t1, t2] for t in threads: t.start() for t in threads: t.join() этот блок кода создаст второй поток и запустит функцию sync_time передав туда limits для определения серверного времени в функции же включи1 балл
-
Вообще такое запрещено настройками безопасности IOS или Android, ведь тогда какие-то сторонние приложения могли бы читать данные клиент-банков, смс и тп. Время от времени появляются какие-то черные способы обхода, но и их оперативно фиксят. Если уж очень нужно то наверняка можно извернуться, например получая push уведомления на какой-то менее защищенный девайс, типа смарт-часов, или снимать изображение с экрана и распознавать его через машинное зрение, все технологии для этого есть. Как вариант можно анализировать трафик, которым обменивается телефон с интернетом, ведь сигналы приход1 балл
-
В силу стратегии бот торгует не ровно, один месяц может 20% выжать, другой 0, но в целом это очень хороший сервис. Регистрируйтесь по моей ссылке и я помогу и расскажу что и как настраивать и что от чего зависит.1 балл
-
типа вот так: 'marginLoanG': {'url': 'sapi/v1/margin/loan', 'method': 'GET', 'private': True}, 'marginRepayG': {'url': 'sapi/v1/margin/repay', 'method': 'GET', 'private': True}, а иначе он постом продолжает занимать )))1 балл
-
1 балл
-
Шалом Туда, где requests.request, завести словарь и добавить его к реквесту, вот так: proxies = { 'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080', } response = requests.request(method=self.methods[command]['method'], ...., headers=headers, proxies=proxies)1 балл
-
Можно указать часть названия сайта, любое слово которое может встречаться в тексте1 балл
-
Выложен бот для Binance с индикаторами, вот бот Бот для Binance с индикаторами, вот статья https://bablofil.ru/bot-dlya-binance-s-indikatorami/ Можете мучать/тестировать)1 балл
-
Входите с той суммой, которую не жалко потерять :) Для человека без опыта зарабатывать что с ботом что без, очень сложно. Все равно приходится распределять средства, выбирать пары, иногда что то продать с убытком, иногда что-то придержать. Бот это автомат, а трейдер - солдат, и если выпустить неопытного солдата с автоматом в бой.. Ну вы поняли1 балл
-
Небольшой кусок кода для выставления вилки цен на Binance - как известно, нельзя штатными средствами выставить И тейк-профит, и стоп-лосс. В коде указываете пары, указываете цены sl и tp (стоп-лосс и тейк профит соответственно), и кол-во к продаже. Когда текущая цена окажется ниже первой или выше второй, бот продаст указанное кол-во по рынку. import sqlite3 import logging import time import os from datetime import datetime from binance_api import Binance bot = Binance( API_KEY='', API_SECRET='' ) pairs = { 'LTCBTC': { 'sl':0.00810600, 'tp':0.009098,1 балл
-
Оно работает в потоках, т.е. каждая пара независимо от других лезет на биржу, делает свои дела и потом спит сколько скажут Вы можете изменить код примерно так: Код run.py замените на import threading from config import Config from main import process_market if __name__ == '__main__': while True: for market in Config.MARKETS: process_market(market) А в main.py после строки time.sleep(Config.MARKET_WAIT_TIME) добавьте break time.sleep(Config.MARKET_WAIT_TIME) break Это такой хак будет, они пойдут друг за другом и каждый будет ждать1 балл
-
В общем тут защита от ДДОСа стоит, показывается капча и т.п. Защищаются от кого-то, ввели видимо лимиты. Придется либо ждать, либо использовать прокси1 балл
-
Поменяйте на market_log.warning(res.text) или на print(res.text) пожалуйста, мало данных1 балл
-
Смотрите, в конфиге есть такая строка LOG_LEVEL = logging.DEBUG А в боте тут и там строки вида market_log.debug Вот. В конфиге можно поставить LOG_LEVEL = logging.INFO, и тогда все сообщения лога со словом .debug не будут выводиться никуда. В самых нужных сообщениях используйте конструкцию market_log.info, она будет выводиться. ----- В общем если в конфиге стоит LOG_LEVEL = logging.DEBUG то выводятся все market_log.info и market_log.debug Если стоит LOG_LEVEL = logging.INFO то выводится только market_log.info, даже если в коде есть всякие разны1 балл
-
А сейчас работает? Проверьте, открывается ли ссылка в браузере https://api.bittrex.com/api/v1.1/public/getmarkethistory?market=USDT-BTC И вот эта https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=USDT-BTC&tickInterval=thirtyMin Еще может быть какие-то пары убрали с горя (им вчера отказали в лицензии в Нью-Йорке) Еще попробуйте временно заменить res = requests.get("https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=" + market + "&tickInterval="+period, verify=Config.SECURE).json() на res = requests.get("https://bittrex.com/Api/v2.01 балл
-
Стандартные сервера для обновления времени по интернету вечно заняты и обновляются с 20ой попытки, и если учесть что попытка эта делается раз в неделю по дефолту, то практически время автоматом и не обновляется. Вот кому надо способ: Сервера синхронизации для РФ: 0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org Как изменить период синхронизации времени в Windows: Все довольно просто. Открываем редактор реестра, для этого выбираем Пуск-Выполнить и вводим команду regedit далее следуем по следующему пути: HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet S1 балл
-
1 балл
-
У вас всё есть уже, вам надо просто совместить два скрипта, вот как то так, приложил это еще и в файлах import sqlite3 import logging import time import os import math from datetime import datetime from binance_api import Binance bot = Binance( API_KEY='', API_SECRET='' ) def process_trailing(settings): multiplier = -1 if settings['strategy'] == "Long" else 1 print("Получаем настройки пар с биржи") symbols = bot.exchangeInfo()['symbols'] step_sizes = {symbol['symbol']:symbol for symbol in symbols} for symbol in symbols: for f in symbol['filters']:1 балл
-
Можно каждую пару в отдельном потоке пускать, но все равно будет запаздывать. Поэтому нужно получать курсы по сокетам, в отдельном потоке, а в других потоках переставлять 🙂 Но проще запустить несколько скриптов одновременно и не париться1 балл
-
Периодически мне приходила мысль, что для разработки определенных стратегий необходима история торгов за длительные промежутки времени. К сожалению многие биржи довольно скупо отдают информацию лишь за небольшие промежутки времени. Обнаружил, что многие "криптоспекулянты" постоянно ее собирают кусками, через АПИ бирж, и складируют в базу на ПК. Естественно я тоже собирался идти тем же путем. Но буквально вчера обнаружил некий ресурс: https://translate.googleusercontent.com/translate_c?depth=1&hl=ru&rurl=translate.google.com&sl=auto&sp=nmt4&tl=ru&1 балл
-
Итак, теперь мы можем получать ссылки на самые последние статьи. Но нам-то нужен полный текст новости со всем содержимым - его не будет в RSS. Давайте парсить страницы. Логика усложнится - теперь мы для каждой новой новости (пфф) будем получать текст её страницы, и разбирать её на составляющие. Можно делать это регулярными выражениями или вообще голой логикой в стиле программирования на C, но мы пойдем ленивым путем и поставим модуль beautifulsoup4 pip install beautifulsoup4 И давайте испытывать её в деле. Откроем исходный код страницы любой новости с сайта и изучим. Найдем интерес1 балл
-
Демонстрация работы с биржей indx.ru (от вебмани) Полный список методов - тут Код получает баланс пользователя (подставьте свои значения). Login и пароль можно получить в личном кабинете пользователя import requests import hmac, hashlib import base64 login = "WU...V" wmid = "5...5" password = "AT...ug" culture = "ru-RU" url = "https://api.indx.ru/api/v2/trade/Balance" headers = {'Content-type': 'text/json', 'Accept': 'text/json'} # Как по ссылке, в том же порядке, везде разные payload_str = login+ ';' + password+ ';' + culture+ ';' +wmid # А тут одинаковое везде h = ba1 балл