Перейти к публикации
Форум ботоводов
ZergeZ

Какой GUI легче всего прикрутить к ботам?

Рекомендованные сообщения

Было бы интересно прочитать статью об использовании того или иного варианта GUI для совместной работы с ботом. Например для наглядной выдачи информации о текущей ситуации по торгуемым монетам. Ну, например - доходность на текущий момент, в какой  стадии работы находится бот - покупает/ продает.  Вывод текущего курса и тд, много чего можно  сделать. Так что бы на одном экране была видна нужная информация.  Можно добавить и то или иное управление  ботом, например  - вкл/выключить  ту или иную монету( из списка имеющегося в config), изменить заданный профит,  переключить стратегию, ну и тд

Обмен с ботом можно вести через БД.  Вопрос в том, какую GUI лучше прикрутить - их,  я посмотрел  - более десятка как минимум. Может быть есть опыт практичесокй работы с тем или иным GUI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я в основном делаю через веб, это удобно, когда например бота переносишь на облако и управляешь им потом с телефона. Правда при этом приходится писать больше кода, и не всегда на питоне.. Но зато универсально и кроссплатформенно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

01.03.2020 в 16:19, admin сказал:

Я в основном делаю через веб, это удобно, когда например бота переносишь на облако и управляешь им потом с телефона. Правда при этом приходится писать больше кода, и не всегда на питоне.. Но зато универсально и кроссплатформенно

можешь сделать статью или цикл статей как делать привязку бота к вебу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
05.03.2020 в 04:58, roster сказал:

 

можешь сделать статью или цикл статей как делать привязку бота к вебу?

+1, тоже актуально

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос, что продразумевает фраза  "перевод  бота в облако".  Можно по конкретней?

Что касается Web - то же пришел к аналогичному выводу.  Сделать  управление  локальным ботом  на питоне  через  web страничку, которая    то же на локальном сервере

Если надо, можно  дать к ней доступ и извне.

Эта страничка:

1)    будет отображать необходимую информацию  о данных  по работе бота,  профит, курсы, количество открытых ордеров, выбор стратегии Шорт/Лонг/флет,    итд и тп

2)  будет управлять таблицей  в БД, из которой Бот получает  данные для работы ( то, что сейчас бот берет из текстового файла config.py) и при каждом цикле опроса

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

 

Сразу на одной странице управление/отображение всеми парами.  Мне кажется это удобно, оперативно, и информативно. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вот и напиши как сделать управление питонботом через веб страницу. Пусть и на локальном сервере. По аналогии с Андреем. С объяснением, с картинками...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В Питоне есть Ткинтер, вот в нем и стоит сделать ГЮИ

# Биткоин тикер, отображает курс БТЦ к Тезер на бирже Бинанс
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(lastprice)
        string = str(lastprice)
        lbl.config(text = string)
        lbl.after(500, ticker)
    except requests.ConnectionError:
        print ("Error CONNECT")
        pass
        lbl.after(100, ticker)
# Стилизуем виджет метки так, чтобы тикер
# выглядел более привлекательно
lbl = Label(root, font = ('calibri', 200, 'bold'),

            background = '#002137',
            foreground = 'orange')
# Размещение в центре
# окна tkinter
lbl.pack(anchor = 'center')

ticker()
mainloop() # для чего это не знаю, может работать и без этой строки

clockrest!.exe

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
05.02.2020 в 02:30, ZergeZ сказал:

Было бы интересно прочитать статью об использовании того или иного варианта GUI для совместной работы с ботом. Например для наглядной выдачи информации о текущей ситуации по торгуемым монетам. Ну, например - доходность на текущий момент, в какой  стадии работы находится бот - покупает/ продает.  Вывод текущего курса и тд, много чего можно  сделать. Так что бы на одном экране была видна нужная информация.  Можно добавить и то или иное управление  ботом, например  - вкл/выключить  ту или иную монету( из списка имеющегося в config), изменить заданный профит,  переключить стратегию, ну и тд

Обмен с ботом можно вести через БД.  Вопрос в том, какую GUI лучше прикрутить - их,  я посмотрел  - более десятка как минимум. Может быть есть опыт практичесокй работы с тем или иным GUI.

Вот сделал с использованием Tk и SQLite  "Так что бы на одном экране была видна нужная информация."

В бота вставил блок, который загоняет данные (курс, стратегию, стоплосс/трейлстоп ит.д. ) в БД, 

  1.  conn = sqlite3.connect("tplong.db")
  2.         cursor = conn.cursor()
  3.         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))
  4.         conn.commit()
  5.         conn.close()
  6.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отображение инфы - в отдельном скрипте

 

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(startrate)
    appl=str(pr [2])
    sl=str(pr [3])
    strat=(pr [4])
    am=str(pr [5])
    perc=str(pr [6])
    
    lbl.config(text = 'APPLY  ' + appl)
    lbl1.config(text = 'BID  ' + bid)
    lbl2.config(text = 'AMOUNT ' + am)
    lbl3.config(text = 'StopLoss ' + sl)
    lbl4.config(text = 'Strategy  '+strat)
    lbl5.config(text = 'PERC ' + perc)
    lbl6.config(text = 'Startrate ' + startrate)
    
    lbl.after(1000, tablo)

lbl = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl.place(relx=.25, rely=.01)                        
lbl1 = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl1.place(relx=.25, rely=.1)
lbl2 = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl2.place(relx=.25, rely=.2)
lbl3 = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl3.place(relx=.25, rely=.3)
lbl4 = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl4.place(relx=.25, rely=.4)
lbl5 = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl5.place(relx=.25, rely=.5)
lbl6 = Label(root, font = ('calibri', 20, 'bold'),
            background = 'purple',
            foreground = 'white')
lbl6.place(relx=.25, rely=.6)

tablo()
mainloop()

Изменено пользователем Astra

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сначала надо создать БД 

import sqlite3

conn = sqlite3.connect ("tplong.db") # или  ':memory:'чтобы сохранить в RAM
cursor = conn.cursor()

# Создание таблицы
cursor.execute("CREATE TABLE albums(bidprice real, startrate real, applied real, stoploss real, strategy text, amount real, trailperc real, id integer )")
cursor.execute("INSERT INTO albums VALUES(1, 0, 700, 0, 'Manager', 1,0,1)")
conn.commit()

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если бота запускать на Raspberry Pi , то вот еще вариант 

photo_2020-07-09_00-28-43.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


×
×
  • Создать...