Estoy haciendo un bot
15-may-2021 16:01
#1
|
Soy nuevo en criptos pero me considero el puto amo de la programación, y aunque ya hace mucho tiempo que amortice este conocimiento, os cuento lo que estoy haciendo y me contáis si le veis futuro o no. Cada hora estoy recogiendo el valor de todas las criptos de binance y guardándolo en un CSV. Con esos datos cálculo el máximo, mínimo y media de los últimos 5 días. Cada hora el bot analiza si hay algo 'interesante' para comprar o para vender. Entiende que es interesante si: 1. Mínimo/Máximo > 0.2 . Esa división da un valor entre 0 y 1 2. El valor de la cripto está aproximado al mínimo (para comprar) o al máximo (para vender). El bot invierte hasta un 20% del USTD que dispone para comprar o un 20% de la crypto que quiere vender. Digo 'hasta' porque es variable en función del ratio mínimo/máximo. Llevo una semana recopilando datos cada hora y he corrido un test con esos datos. Empezaba con 500 USDT y ha terminado con el equivalente a 567 USDT (y tiene en cuenta que al comprar se llevan una comisión del 2%). Aún no lo tengo en producción, voy a esperar algunas semanas más para tener más datos y si todo va bien lo pondré a trabajar próximamente. EDIT 28/05/2021 Aqui van algunas simulaciones. He hecho otro programa con la que pinto graficas y estas se convierten en un CSV. Asi que ojo, no son reales, pero me permiten ver puntos fuertes y puntos debiles. En rojo es el valor de la crypto, y en azul la media. En todos los ejemplos empiezo con una wallet que contiene 100 USDT y 100 SYMBOL (esto es una cripto moneda inventada, imaginaos que son Bitcoins). Os pongo el valor estimado en USDT en el ultimo dia. Ejemplo 1: Un x10 Sin bot: 97100.0 USDT -> {SYMBOL=100.0, USDT=100.0} Con bot: 1052045.8919377292 USDT -> {SYMBOL=713.2485815952698, USDT=360194.7677903175} ![]() Ejemplo 2: Un x4 Sin bot: 127400.0 USDT -> {SYMBOL=100.0, USDT=100.0} Con bot: 498181.9241898482 USDT -> {SYMBOL=1.961457539575555, USDT=495684.9887419685} ![]() Ejemplo 3: El bot lo hace peor!. Si no haces nada ganas x3 Sin bot: 138100.0 USDT -> {SYMBOL=100.0, USDT=100.0} Con bot: 53423.48493605778 USDT -> {SYMBOL=1.6786922531497744E-4, USDT=53423.25327652685} ![]() Ejemplo 4: x0.4 Sin bot: 62800.0 USDT -> {SYMBOL=100.0, USDT=100.0} Con bot: 80973.79317567745 USDT -> {SYMBOL=114.47647262962533, USDT=9197.044836902358} ![]() Ejemplo 5: x2 Sin bot: 48200.0 USDT -> {SYMBOL=100.0, USDT=100.0} Con bot: 104861.4050417898 USDT -> {SYMBOL=2.531687615194065, USDT=103643.66329888145} ![]() Ejemplo 6: Casi x3 Sin bot: 52800.0 USDT -> {SYMBOL=100.0, USDT=100.0} Con bot: 145068.16395201124 USDT -> {SYMBOL=4.269145719819581, USDT=142818.32415766633} ![]() EDIT 3 30/05/2021. Con datos REALES desde 2021-05-08 08:33:48 hasta 2021-05-29 09:30:03 Las graficas son mas descriptivas ahora. En estos tests empiezo teniendo solo USDT. En las graficas se ve el valor de la wallet en cada momento, asi como cuanto se compra y cuanto se vende. La wallet empieza con un dinero que depende de la cripto moneda. Por hacer que las graficas se vean bien, mas o menos empiezo con el valor en USDT de UNA cripto moneda del test. Por ejemplo, si es ETH empieza con 3600. Los beneficios no son espectaculares, pero tened en cuenta que las criptos han ido en picado estos dias. Asi que me doy por satisfecho si mi wallet se mantiene. BAKE, esta lo hace bien, saca un x1.26 ![]() BNB, beneficios para una bolsa de pipas x1.016 ![]() Ya no comento mas, podeis sacar conclusiones mirando graficas. ![]() Tambien pierdo en alguna: ![]() Aqui esta el resultado de todos los tests con datos reales: TestResult [csv=/ADAUSDT.csv, trader=1.7597267884209442, holder=1.65, absoluteBenefit=0.1097267884209443, multiplier=1.0665010838914815, success=true], TestResult [csv=/BNBUSDT.csv, trader=648.6620087339717, holder=638.0, absoluteBenefit=10.662008733971675, multiplier=1.0167116124356923, success=true], TestResult [csv=/BTCUSDT.csv, trader=58807.4990616845, holder=59000.0, absoluteBenefit=-192.50093831549748, multiplier=0.9967372722319408, success=false], TestResult [csv=/BTTUSDT.csv, trader=0.008289619557511221, holder=0.0079, absoluteBenefit=3.8961955751122025E-4, multiplier=1.0493189313305342, success=true], TestResult [csv=/CHZUSDT.csv, trader=0.5565868569042276, holder=0.5, absoluteBenefit=0.0565868569042276, multiplier=1.1131737138084552, success=true], TestResult [csv=/DOTUSDT.csv, trader=34.50234694646801, holder=40.0, absoluteBenefit=-5.497653053531991, multiplier=0.8625586736617002, success=false], TestResult [csv=/ETHUSDT.csv, trader=3706.7852794731743, holder=3600.0, absoluteBenefit=106.78527947317434, multiplier=1.0296625776314374, success=true], TestResult [csv=/GRTUSDT.csv, trader=1.7393589311858437, holder=1.6, absoluteBenefit=0.13935893118584364, multiplier=1.0870993319911522, success=true], TestResult [csv=/SOLUSDT.csv, trader=45.27875995713899, holder=44.0, absoluteBenefit=1.2787599571389876, multiplier=1.0290627262986134, success=true], TestResult [csv=/XRPUSDT.csv, trader=1.6774057901822632, holder=1.6, absoluteBenefit=0.07740579018226312, multiplier=1.0483786188639144, success=true], TestResult [csv=/ANKRUSDT.csv, trader=0.17106841933969194, holder=0.17, absoluteBenefit=0.0010684193396919284, multiplier=1.0062848196452467, success=true], TestResult [csv=/BAKEUSDT.csv, trader=8.505812421218733, holder=6.75, absoluteBenefit=1.7558124212187334, multiplier=1.2601203586990717, success=true], TestResult [csv=/CAKEUSDT.csv, trader=30.315911341834447, holder=38.0, absoluteBenefit=-7.684088658165553, multiplier=0.7977871405745907, success=false], TestResult [csv=/DOGEUSDT.csv, trader=0.7566455397878561, holder=0.7, absoluteBenefit=0.056645539787856136, multiplier=1.0809221996969374, success=true], TestResult [csv=/SHIBUSDT.csv, trader=1.5623999281548455E-5, holder=3.5E-5, absoluteBenefit=-1.9376000718451542E-5, multiplier=0.446399979472813, success=false], TestResult [csv=/MATICUSDT.csv, trader=0.8753438123056629, holder=0.75, absoluteBenefit=0.12534381230566294, multiplier=1.1671250830742173, success=true], Ire editando poniendo mas ... Pa que luego digan que los ingenieros informaticos no somos ingenieros, me cawen dios. |
Editado: 30-may-2021 19:31 -
16-may-2021 09:38
#4
| el único problema que le veo es que cuando venga el bearmarket, no hay bot que te salve |
16-may-2021 10:43
#5
|
Futuro en cuanto a que ? Si lo dices por si vemos futuro para que puedas tenerlo en ejecución y sacarle un rendimiento.... ¿Porqué no? Dependerá mucho de la estrategia que sigas. Si lo dices por si vemos futuro para que puedas monetizarlo por licencias o venta... lo dudo mucho. Ahora mismo hay bots en el mercado con muchas opciones de configuración, diferentes estrategias y que llevan años de backtest y años de ejecución en producción. Y como consejo (yo programé un bot algo más complejo por 2018), baja la frecuencia de muestreo, una hora es mucho tiempo y vas a dejar pasar muchas oportunidades. Yo miraría cuantas request puedes hacer a la API al día, vería cuantas operaciones puedes mantener a la vez y haría un cálculo de la frecuencia de tiempo mínima con la que no te comerías las request que te ofrecen al día. Y otra cosa, los exchanges tienen mantenimientos, se colapsan en momentos puntuales, se cae tu propio servidor o internet... vamos que hay diferentes motivos por los que no te puede entrar una orden. Tienes que pensar un plan de contingencia en esas situaciones para no quedarte con operaciones colgadas. |
16-may-2021 11:45
#7
Para considerarte un puto amo, no has hecho nada especial, intenta meterle machine learning al menos
|
16-may-2021 12:16
#9
|
Soy nuevo en criptos pero me considero el puto amo de la programación, y aunque ya hace mucho tiempo que amortice este conocimiento, os cuento lo que estoy haciendo y me contáis si le veis futuro o no.
Cada hora estoy recogiendo el valor de todas las criptos de binance y guardándolo en un CSV. Con esos datos cálculo el máximo, mínimo y media de los últimos 5 días. Cada hora el bot analiza si hay algo 'interesante' para comprar o para vender. Entiende que es interesante si: 1. Mínimo/Máximo > 0.2 . Esa división da un valor entre 0 y 1 2. El valor de la cripto está aproximado al mínimo (para comprar) o al máximo (para vender). El bot invierte hasta un 20% del USTD que dispone para comprar o un 20% de la crypto que quiere vender. Digo 'hasta' porque es variable en función del ratio mínimo/máximo. Llevo una semana recopilando datos cada hora y he corrido un test con esos datos. Empezaba con 500 USDT y ha terminado con el equivalente a 567 USDT (y tiene en cuenta que al comprar se llevan una comisión del 2%). Aún no lo tengo en producción, voy a esperar algunas semanas más para tener más datos y si todo va bien lo pondré a trabajar próximamente. Un link que supongo que ha debes tener: https://github.com/binance-exchange/binance-java-api Por cierto, tendrías que hacerlo todo por websock si lo haces directamente por api rest a las 1200 peticiones por minuto te empieza a dar problemas. Con USDT una vez descartas las que tienes poca actividad te quedan casi 200 criptos con las que jugar. Suerte |
16-may-2021 20:29
#10
|
Yo tengo el mío que compra y escala. Me falta encontrar la estrategia adecuada. Había pensado usar elliot wave.
Un link que supongo que ha debes tener: https://github.com/binance-exchange/binance-java-api Por cierto, tendrías que hacerlo todo por websock si lo haces directamente por api rest a las 1200 peticiones por minuto te empieza a dar problemas. Con USDT una vez descartas las que tienes poca actividad te quedan casi 200 criptos con las que jugar. Suerte Gracias por el aporte. |
16-may-2021 20:31
#11
|
Le tengo un poco de asco a Python y de momento la versión en java de tensorflow está muy verde. |
16-may-2021 20:33
#12
|
Soy nuevo en criptos pero me considero el puto amo de la programación, y aunque ya hace mucho tiempo que amortice este conocimiento, os cuento lo que estoy haciendo y me contáis si le veis futuro o no.
Cada hora estoy recogiendo el valor de todas las criptos de binance y guardándolo en un CSV. Con esos datos cálculo el máximo, mínimo y media de los últimos 5 días. Cada hora el bot analiza si hay algo 'interesante' para comprar o para vender. Entiende que es interesante si: 1. Mínimo/Máximo > 0.2 . Esa división da un valor entre 0 y 1 2. El valor de la cripto está aproximado al mínimo (para comprar) o al máximo (para vender). El bot invierte hasta un 20% del USTD que dispone para comprar o un 20% de la crypto que quiere vender. Digo 'hasta' porque es variable en función del ratio mínimo/máximo. Llevo una semana recopilando datos cada hora y he corrido un test con esos datos. Empezaba con 500 USDT y ha terminado con el equivalente a 567 USDT (y tiene en cuenta que al comprar se llevan una comisión del 2%). Aún no lo tengo en producción, voy a esperar algunas semanas más para tener más datos y si todo va bien lo pondré a trabajar próximamente. Qué API utilizas para precios? Yo he probado la de coinbase y coinMarket pero están muy limitadas |
16-may-2021 20:35
#13
|
Futuro en cuanto a que ?
Si lo dices por si vemos futuro para que puedas tenerlo en ejecución y sacarle un rendimiento.... ¿Porqué no? Dependerá mucho de la estrategia que sigas. Si lo dices por si vemos futuro para que puedas monetizarlo por licencias o venta... lo dudo mucho. Ahora mismo hay bots en el mercado con muchas opciones de configuración, diferentes estrategias y que llevan años de backtest y años de ejecución en producción. Y como consejo (yo programé un bot algo más complejo por 2018), baja la frecuencia de muestreo, una hora es mucho tiempo y vas a dejar pasar muchas oportunidades. Yo miraría cuantas request puedes hacer a la API al día, vería cuantas operaciones puedes mantener a la vez y haría un cálculo de la frecuencia de tiempo mínima con la que no te comerías las request que te ofrecen al día. Y otra cosa, los exchanges tienen mantenimientos, se colapsan en momentos puntuales, se cae tu propio servidor o internet... vamos que hay diferentes motivos por los que no te puede entrar una orden. Tienes que pensar un plan de contingencia en esas situaciones para no quedarte con operaciones colgadas. Solo tendré downtime si binance está caído, pero no hay nada que pueda hacer para remediar esto. Mi app está en la nube así que no tengo que preocuparme de problemas técnicos propios. Además pago una ridiculez, unos 2€/mes. |
16-may-2021 20:38
#14
|
Esto: https://api.binance.com/api/v3/ticker/price Ademas no requiere ni de autenticacion. |
16-may-2021 20:43
#15
|
De momento no, pero se compone de lo siguiente. Una funcion que recopila datos en CSV cada hora. Guardo datos de: -Precios en el tiempo -Mi wallet en el tiempo. Tengo varias ciptomonedas pero guardo los USTD que valen del momento en concreto. Otra funcion que genera graficos de los CSV anteriores. Sobretodo me interesa ver el USTD en el tiempo de mi wallet para saber como lo esta haciendo el bot. Y por ultimo el bot, que es otra funcion que de momento se ejecuta cada hora. Lee del CSV de los precios en el tiempo los 5 ultimos dias y si estima que hay algo que hacer, lo hace. Todo esto lo tengo en Google Cloud como funciones y no tengo base de datos. Si usas base de datos te sale caro. |
16-may-2021 21:04
#20
|
data scrapping es hacer un bot que extraiga datos de una web de forma automatica. Mirando el robots.txt de coinmarketcap, permiten hacer scrapping de toda la web asi que puedes legalmente coger los datos que quieras. Yo uso la libreria beautiful soup, echale un ojo a ver si te vale. |
16-may-2021 21:09
#21
|
Scrapping básicamente es para quedarte con los datos que a ti te interesa de un sitio, ya sea porque la API esté muy limitada o porque directamente no tenga API. Ya hay algún repo con tu idea, yo de momento prefiero saber en qué me meto y luego ya si eso automatizarlo |
16-may-2021 21:41
#22
| Te veo perdido. Si realmente quieres analizar todas criptos tienes que tener websocket para recibir velas en tiempo real, oferta y demanda. Evitar usar ficheros csv y procurar tenerlo todo en memoria para que el análisis sea más rápido. Solo volcar a bd lo indispensable. |
17-may-2021 10:18
#23
|
No pretendo que saque tajada de cada subida y cada bajada que ocurre en minutos por el momento. Para eso tendré que usar machine learning, que es algo que tengo pensado para una segunda versión. |
17-may-2021 10:30
#24
| Ánimo shur... La idea no es mala y el profit que has expuesto está de locos. Fuerza. |
17-may-2021 10:38
#25
|
Soy nuevo en criptos pero me considero el puto amo de la programación, y aunque ya hace mucho tiempo que amortice este conocimiento, os cuento lo que estoy haciendo y me contáis si le veis futuro o no.
Cada hora estoy recogiendo el valor de todas las criptos de binance y guardándolo en un CSV. Con esos datos cálculo el máximo, mínimo y media de los últimos 5 días. Cada hora el bot analiza si hay algo 'interesante' para comprar o para vender. Entiende que es interesante si: 1. Mínimo/Máximo > 0.2 . Esa división da un valor entre 0 y 1 2. El valor de la cripto está aproximado al mínimo (para comprar) o al máximo (para vender). El bot invierte hasta un 20% del USTD que dispone para comprar o un 20% de la crypto que quiere vender. Digo 'hasta' porque es variable en función del ratio mínimo/máximo. Llevo una semana recopilando datos cada hora y he corrido un test con esos datos. Empezaba con 500 USDT y ha terminado con el equivalente a 567 USDT (y tiene en cuenta que al comprar se llevan una comisión del 2%). Aún no lo tengo en producción, voy a esperar algunas semanas más para tener más datos y si todo va bien lo pondré a trabajar próximamente. |
17-may-2021 10:50
#26
![]() ![]() ![]() ![]() Empresas gastandose millones en desarrollo de bots y el shur se piensa que con el algoritmo mas basico del mundo va a ganarle al mercado. |
17-may-2021 13:20
#27
|
De momento estoy testeando con pocos datos ciertamente. Desde 2021-08-05 hasta hoy |
17-may-2021 13:23
#28
|
Yo tambien tengo un bot pero ni de coña le doy la posibilidad de comprar y vender por su propia cuenta, no quiero despertarme y que por un bug en el código o porque el mercado le haya hecho la 13/14 al bot me quede con el 50% porque empiece a hacer cosas extrañas. Mi bot me avisa por Telegram de los cambios que tu mismo muestra en el OP pero a partir de más información y soy yo quien decide meterle o vender. |
17-may-2021 14:41
#29
|
Yo tambien tengo un bot pero ni de coña le doy la posibilidad de comprar y vender por su propia cuenta, no quiero despertarme y que por un bug en el código o porque el mercado le haya hecho la 13/14 al bot me quede con el 50% porque empiece a hacer cosas extrañas.
Mi bot me avisa por Telegram de los cambios que tu mismo muestra en el OP pero a partir de más información y soy yo quien decide meterle o vender. |










