Author

Topic: Sistemas y automatización (Read 3756 times)

legendary
Activity: 1960
Merit: 1130
Truth will out!
August 22, 2016, 02:36:44 PM
#51
Para los que seáis de Javascript también tenéis alguna que otra cosilla por Github con la que empezar, se trata de Gekko. Un bot de trading en node.
https://github.com/askmike/gekko

Antes de ir a la batalla y arriesgar tenéis la opción de realizar backtests basados en los históricos de las cotizaciones. También incluye estrategias básicas basadas en:
DEMA
MACD
PPO
RSI
StochRSI
CCI
talib-macd
https://github.com/askmike/gekko/blob/stable/docs/Trading_methods.md

y aquí explican como podéis realizar vuestra propia operativa Wink
Soporta bastantes exchanges: https://github.com/askmike/gekko#supported-exchanges

Hilo en bitcointalk: https://bitcointalksearch.org/topic/gekko-a-javascript-trading-bot-and-backtesting-platform-209149
sr. member
Activity: 407
Merit: 250
August 09, 2016, 04:41:34 AM
#50
Me ha costado lo mío digerir tu explicación, pero creo que lo he pillado.
Gracias por compartirllo !! Lo que a mi el marco semanal para BTC se me hace eteeeeerno

Por mi lado ha transcurrido un mes desde que tengo automatizada mi estrategia el marco de 15' y así es como se ha comportado en el último mes.



No está mal... ¿que opinais?
legendary
Activity: 1974
Merit: 1029
July 25, 2016, 02:22:36 PM
#49
Esto es lo que estuve haciendo este viernes y sábado pasados:



La gráfica es de bitcoin, semanal. Las líneas azules que siguen al precio son, como puede suponerse, medias móviles. Tanto el precio como estas medias se corresponden con la escala de la izquierda.

Aparte, usando otra escala diferente (que no está pintada porque realmente no hace falta) hay 3 lineas horizontales de color añil, en +x, 0 y -x. La línea roja es el resultado de dividir las medias móviles entre sí; por tanto cuando las medias se cruzan, la roja atraviesa el nivel 0 (las típicas señales por cruce de medias de toda la vida). Cuando la línea roja sube, el escenario es positivo para estar largo (la media móvil de corto plazo está por debajo de la otra y se acerca, o está por encima de la otra y la deja atrás). Inversamente, cuando la línea roja baja, lo suyo es estar corto. La línea púrpura es una media móvil sobre la roja. El cruce de la roja con la púrpura nos da las señales para operar. La línea verde es otra representación de este cruce, de la misma forma que la línea roja representa al cruce de las medias sobre el precio. Cuando la verde está por encima de 0, largos; cuando está por debajo; cortos. Está exagerada verticalmente para que los cruces con el nivel 0 se vean claramente.

Ahora bien, puede ocurrir que la señal a veces llegue demasiado pronto. Por ejemplo al principio de la gráfica, el 8 de marzo, tenemos una señal para abrir largo, pero puede verse que las medias móviles están bajando con bastante alegría y, aunque en este caso particular no hay graves daños, lo normal es que sí los haya, que el precio mantenga la tendencia a la baja y las líneas roja y púrpura se vuelvan a separar (o sea, que la verde vuelva a bajar de 0). Esta es la razón por la que están las otras dos líneas añil. Realmente no abrimos largo hasta que la roja supera el nivel -x, es decir, el 3 de mayo. Y cogemos hasta un precio mejor y todo Smiley. Cerramos largo cuando la verde baja de 0, el 28 de junio. Aquí abriríamos corto, y lo hacemos realmente porque la roja está por debajo de +x. El precio se da la vuelta y en la siguiente vela volvemos a largo. […] Hay un par de señales más hasta que el 24 de enero la verde cruza hacia abajo, pero la roja está muy arriba (las medias sobre el precio están subiendo mucho), así que solo cerramos largo y nos salimos. El corto se abre el 6 de marzo.

Estas señales son patéticas, pero es que los períodos de las tres medias y el valor de x no son los óptimos para bitcoin semanal.

Este sistema da beneficios con bitcoin, Antena 3, Abertis, Abengoa, ACS, Acerinox, Amadeus, Acciona, BBVA… pero con Bankia me lo ha perdido todo en una sola operación (ejem, sube de 1€ a 6€ en una sola vela, para que luego hablen de la volatilidad de bitcoin xD). Ahora estoy analizando Bankinter Tongue
aTg
legendary
Activity: 1358
Merit: 1000
July 10, 2016, 03:09:40 AM
#48
Por ejemplo, este es uno de los míos contra Antena 3

Justamente estoy haciendo esto mismo en qtbtct, que el bot lance por el log las estadísticas en tiempo real y le estoy dando la misma estética que cgminer Cheesy Pero en mi programa se reinician y no se almacenan.

Veo que vamos cada uno por un lado distinto.

sr. member
Activity: 407
Merit: 250
July 09, 2016, 11:28:52 AM
#47
Ahora necesitas estadísticas monas, que no todo en un sistema es la pasta que saca Wink Por ejemplo, este es uno de los míos contra Antena 3, en la bolsa de verdad:

Pues si estaría bien, ¿no hay por ahí nada que se  usar que este ya hecho?
legendary
Activity: 1974
Merit: 1029
July 09, 2016, 06:50:33 AM
#46
Ahora necesitas estadísticas monas, que no todo en un sistema es la pasta que saca Wink Por ejemplo, este es uno de los míos contra Antena 3, en la bolsa de verdad:

Code:
+----------------------------------------------------+
|                       Trades                       |
+-------+--------------+--------------+--------------+
|       |long          |short         |total         |  
+-------+--------------+--------------+--------------+
|winning|   8 ( 34.78%)|  12 ( 54.55%)|  20 ( 44.44%)|
|losing |  15 ( 65.22%)|  10 ( 45.45%)|  25 ( 55.56%)|
|total  |  23 (100.00%)|  22 (100.00%)|  45 (100.00%)|
+-------+--------------+--------------+--------------+

+----------------------------------------+
|             Total profits              |
+-------+----------+----------+----------+
|       |long      |short     |total     |
+-------+----------+----------+----------+
|winning|  328.53% |  178.98% | 1095.49% |
|losing |  -60.88% |  -53.17% |  -81.68% |
|net    |   67.66% |   30.64% |  119.02% | (6.67% annual, 1.76% per trade)
|ratio  |          |          |   13.41  |
+-------+----------+----------+----------+
Maximum drawdown: 50.17%
B/H pct gain/loss: 285.17% (11.74% annual)

+-----------------------------------+
|     Statistics about profits      |
+-----+---------+---------+---------+
|     |largest  |average  |median   |
+-----+---------+---------+---------+
|win  |  83.27% |  14.23% |  10.24% |
|loss | -22.06% |  -6.44% |  -5.13% |
|ratio|   3.78  |   2.21  |   2.00  |
+-----+---------+---------+---------+
Largest pct loss / Annual pct gain/loss: 3.31 years to recover largest loss

+-------------------------------------------------+
|                     Durations                   |
+-----+----------------+------+---------+---------+
|     |total           |max   |average  |median   |
+-----+----------------+------+---------+---------+
|win  |  883 ( 28.67%) |  101 |   44.15 |   47.50 |
|loss |  432 ( 14.03%) |   59 |   17.28 |   14.00 |
|out  | 1765 ( 57.31%) |  217 |   38.37 |   29.50 |
|total| 3080           |      |         |         |
+-----+----------------+------+---------+---------+
Most consecutive wins/losses: 3/8
Current position after 4435 days: Out
Expectancy: 2.74
sr. member
Activity: 407
Merit: 250
July 09, 2016, 06:12:54 AM
#45
Os dejo unas capturas de como se hubiera comportado el bot desde el 1 de junio hasta ayer.
He hecho algunas modificaciones en el código original, para que por ejemplo no compre aunque haya habido sobreventa y el WMA se haya dado la vuelta si cuando toca comprar RSI esta marcando sobrecompra (o lo contrario para cortos), también para que cuando salte el stoposs no lo ejecute hasta que precio no esté sobrecomprado/sobrevendido. Lo he afinado para el marco de 15' con este setup:

Quote
INTERVAL = 900
WMA_PERIOD = 14
WMA_SLOPE_DEPTH = 5
WMA_SLOPE_MAX = 0.2
WMA_SLOPE_MIN = -0.2
RSI_TYPE = 'wilder' #['wilder', 'cutler, 'modern']
RSI_PERIOD = 16
OVERBOUGHT = 75
OVERSOLD = 27
SAFE_LONG = 1.25 #[1.00, Not safe = 1]
SAFE_SHORT = 0.75 #[0.xx, Not safe = 1]
RSI_DEPTH = 60
HIGH_DEPTH = 16
LOW_DEPTH = 16
STOPLOSS_CURRENCY = 0.970
STOPLOSS_ASSETS = 1.030





hero member
Activity: 865
Merit: 1006
July 07, 2016, 10:44:45 AM
#44
He añadido este programa y otro que ya tenía a Github:

https://github.com/xcbtrader

Saludos
hero member
Activity: 865
Merit: 1006
July 06, 2016, 11:58:09 AM
#43
Las mejoras de hoy...

Ya calcula el RSI i el máximo/minimo de un periodo.

El periodo depende del número de capturas que haga y del tiempo entre capturas.
En el ejemplo puesto:

lapso = 30  Esto indica 30 segundos entre lecturas.
perRSI = 120 Esto indica 120 lecturas para estudiar el RSI. Aprox. 1 Hora

El programa guarda un fichero con los valores capturados, una vez empieza a contar el RSI.
Tened en cuanta que el RSI no empieza a marcar hasta que no se ha llegado al número mínimo de lecturas.

Yo no soy programador, por lo tanto, este programa hay que utilizarlo con cuidado...

Code:
__author__ = 'xcbtrader'
# -*- coding: utf-8 -*-
# PROGRAMA PARA AUTOTRADER EN BITCOINS UTILIZANDO LAS APIs DE POLONIEX

import urllib
import requests
import json
import time

class Clase_btc:
BTC_fecha = time.strftime('%d %b %y')
BTC_hora = time.strftime('%H:%M:%S')
BTC_last = 0.0
BTC_high24hr = 0.0
BTC_percentChange = 0.0
BTC_low24hr = 0.0
BTC_highestBid = 0.0
BTC_lowestAsk = 0.0
BTC_baseVolume = 0.0

def actualizar_valores(self):
err = True
while err:
try:
request = 'https://poloniex.com/public?command=returnTicker'
response = requests.get(request)
content = response.json()
err = False

self.BTC_fecha = time.strftime('%d %b %y')
self.BTC_hora = time.strftime('%H:%M:%S')
self.BTC_last = content ['USDT_BTC'] ['last']
self.BTC_high24hr = content ['USDT_BTC'] ['high24hr']
self.BTC_percentChange = content ['USDT_BTC'] ['percentChange']
self.BTC_low24hr = content ['USDT_BTC'] ['low24hr']
self.BTC_highestBid = content ['USDT_BTC'] ['highestBid']
self.BTC_lowestAsk = content ['USDT_BTC'] ['lowestAsk']
self.BTC_baseVolume = content ['USDT_BTC'] ['baseVolume']
except KeyboardInterrupt:
exit()
except:
print ('### ERROR DE CONEXION - ESPERANDO 10 SEGUNDOS ###')
err = True
time.sleep(10)
def imprimir_valores(self):
print ('######################################################')
print ('  FECHA:      ' + self.BTC_fecha + ' -- ' + self.BTC_hora)
print ('  LAST:       ' + self.BTC_last)
print ('  HIGH24HR:   ' + self.BTC_high24hr)
print ('  MOVIMIENTO: ' + self.BTC_percentChange)
print ('  LOW24HR:    ' + self.BTC_low24hr)
print ('  HIGHESTBID: ' + self.BTC_highestBid)
print ('  LOWESTASK:  ' + self.BTC_lowestAsk)
print ('  BASEVOLUME: ' + self.BTC_baseVolume)

def RSI(periodo):
global datosBTC

final = len(datosBTC)
if periodo > final:
print('### ERROR PERIODO RSI INCORRECTO ###')
return 0

inicio = final - periodo
incMed = 0.0
decMed = 0.0
for d in range (inicio, final):
incRSI = round((float(datosBTC[d].BTC_last) - float(datosBTC[d-1].BTC_last))/float(datosBTC[d-1].BTC_last),10)
if incRSI != 0:
if incRSI > 0:
incMed = incMed + incRSI
else:
decMed = decMed + abs(incRSI)
incMed = round(incMed/periodo,10)
decMed = round(decMed/periodo,10)
if decMed > 0:
return float(100-(100/(1+(incMed/decMed))))
else:
return float(100-(100/(1+incMed)))

def calcular_MinMax(periodo):
global datosBTC, vMinBTC, vMaxBTC
# CALCULA VALOR MAX Y VALOR MIN DE UN PERIODO. SI PONEMOS 0 COGE TODOS LOS DATOS
if periodo == 0:
vMinBTC = round(float(datosBTC[0].BTC_last),10)
vMaxBTC = round(float(datosBTC[0].BTC_last),10)
for d in range (1,len(datosBTC)):
if datosBTC[d].BTC_last > vMaxBTC:
vMaxBTC = datosBTC[d].BTC_last
if datosBTC[d].BTC_last < vMinBTC:
vMinBTC = datosBTC[d].BTC_last
else:
final = len(datosBTC)
inicio = final - periodo
if inicio < 0:
print ('### ERROR - PERIODO INCORRECTO ###')
return
vMinBTC = round(float(datosBTC[inicio].BTC_last),10)
vMaxBTC = round(float(datosBTC[inicio].BTC_last),10)
for d in range (inicio,final):
if datosBTC[d].BTC_last > vMaxBTC:
vMaxBTC = datosBTC[d].BTC_last
if datosBTC[d].BTC_last < vMinBTC:
vMinBTC = datosBTC[d].BTC_last
#PROGRAMA PRINCIPAL #################################################
global datosBTC, vMinBTC, vMaxBTC

datosBTC = []

n = 0
lapso = 30
perRSI = 120
vMinBTC = 0.0
vMaxBTC = 0.0

fEstadist = open('./EstPoloniexAPI.txt', 'a')

while True:
btcAct = Clase_btc()
btcAct.actualizar_valores()
datosBTC.append(btcAct)
btcAct.imprimir_valores()
if n > perRSI:
Vrsi = RSI(perRSI)
fEstadist.write(str(btcAct.BTC_fecha) + ';' + str(btcAct.BTC_hora) + ';' + str(btcAct.BTC_last) + ';' + str(Vrsi) + ';' + str(vMinBTC) + ';' + str(vMaxBTC) + '\n')
print ('  >>RSI' + str(perRSI) + ':     ' + str(Vrsi))
else:
print ('  >>RSI:    ####' )
if n > perRSI:
calcular_MinMax(perRSI)
print ('  >>ValMin:   ' + str(vMinBTC))
print ('  >>ValMax:   ' + str(vMaxBTC))
else:
print ('  >>ValMin: ####')
print ('  >>ValMax: ####')
print ('######################################################')
print ('ESPERANDO ' + str(lapso) + ' SEGUNDOS')
n +=1
time.sleep(lapso)

fEstadist.close()
sr. member
Activity: 407
Merit: 250
July 05, 2016, 03:28:24 PM
#42

Yo también estoy trabajando en un código para, por una parte capturar valores de POLONIEX, y una vez tenemos los valores, empezar a buscar indicadores/estrategias para analizarlos.

Pongo de momento la captura y enseñar por pantalla los valores.
Ahora estoy con el cálculo del RSI y otros...

CODIGO:

Code:
__author__ = 'xcbtrader'
# -*- coding: utf-8 -*-
# PROGRAMA PARA AUTOTRADER EN BITCOINS UTILIZANDO LAS APIs DE POLONIEX

import urllib
import requests
import json
import time

class Clase_btc:
BTC_fecha = time.strftime('%d %b %y')
BTC_hora = time.strftime('%H:%M:%S')
BTC_last = 0.0
BTC_high24hr = 0.0
BTC_percentChange = 0.0
BTC_low24hr = 0.0
BTC_highestBid = 0.0
BTC_lowestAsk = 0.0
BTC_baseVolume = 0.0

def actualizar_valores(self):
err = True
while err:
try:
request = 'https://poloniex.com/public?command=returnTicker'
response = requests.get(request)
content = response.json()
err = False

self.BTC_fecha = time.strftime('%d %b %y')
self.BTC_hora = time.strftime('%H:%M:%S')
self.BTC_last = content ['USDT_BTC'] ['last']
self.BTC_high24hr = content ['USDT_BTC'] ['high24hr']
self.BTC_percentChange = content ['USDT_BTC'] ['percentChange']
self.BTC_low24hr = content ['USDT_BTC'] ['low24hr']
self.BTC_highestBid = content ['USDT_BTC'] ['highestBid']
self.BTC_lowestAsk = content ['USDT_BTC'] ['lowestAsk']
self.BTC_baseVolume = content ['USDT_BTC'] ['baseVolume']
except KeyboardInterrupt:
exit()
except:
print ('### ERROR DE CONEXION - ESPERANDO 10 SEGUNDOS ###')
err = True
time.sleep(10)

datosBTC = []
btcAct = Clase_btc()
n = 0
lapso = 60

while True:
btcAct.actualizar_valores()
datosBTC.append(btcAct)
print ('######################################################')
print ('  FECHA:      ' + datosBTC[n].BTC_fecha + ' -- ' + datosBTC[n].BTC_hora)
print ('  LAST:       ' + datosBTC[n].BTC_last)
print ('  HIGH24HR:   ' + datosBTC[n].BTC_high24hr)
print ('  MOVIMIENTO: ' + datosBTC[n].BTC_percentChange)
print ('  LOW24HR:    ' + datosBTC[n].BTC_low24hr)
print ('  HIGHESTBID: ' + datosBTC[n].BTC_highestBid)
print ('  LOWESTASK:  ' + datosBTC[n].BTC_lowestAsk)
print ('  BASEVOLUME: ' + datosBTC[n].BTC_baseVolume)
print ('######################################################')
print ('ESPERANDO ' + str(lapso) + ' SEGUNDOS')
n +=1
time.sleep(lapso)

Que guay, que envidia me dais los que sabéis programar cosas, yo lo único que se es "toquitear" y enredar  Cheesy
Suerte con tu proyecto!
hero member
Activity: 865
Merit: 1006
July 05, 2016, 12:20:48 PM
#41
Quote
¿Compartirás el código?

No me ha salido gratis, el que lo ha hecho cobra por su tiempo como es lógico. No tengo problema en compartirlo a cambio de una modesta colaboración.
Mándame un privado si quieres.

Je je je...

No sabia que habías pagado por el.
Yo también estoy trabajando en un código para, por una parte capturar valores de POLONIEX, y una vez tenemos los valores, empezar a buscar indicadores/estrategias para analizarlos.

Pongo de momento la captura y enseñar por pantalla los valores.
Ahora estoy con el cálculo del RSI y otros...

CODIGO:

Code:
__author__ = 'xcbtrader'
# -*- coding: utf-8 -*-
# PROGRAMA PARA AUTOTRADER EN BITCOINS UTILIZANDO LAS APIs DE POLONIEX

import urllib
import requests
import json
import time

class Clase_btc:
BTC_fecha = time.strftime('%d %b %y')
BTC_hora = time.strftime('%H:%M:%S')
BTC_last = 0.0
BTC_high24hr = 0.0
BTC_percentChange = 0.0
BTC_low24hr = 0.0
BTC_highestBid = 0.0
BTC_lowestAsk = 0.0
BTC_baseVolume = 0.0

def actualizar_valores(self):
err = True
while err:
try:
request = 'https://poloniex.com/public?command=returnTicker'
response = requests.get(request)
content = response.json()
err = False

self.BTC_fecha = time.strftime('%d %b %y')
self.BTC_hora = time.strftime('%H:%M:%S')
self.BTC_last = content ['USDT_BTC'] ['last']
self.BTC_high24hr = content ['USDT_BTC'] ['high24hr']
self.BTC_percentChange = content ['USDT_BTC'] ['percentChange']
self.BTC_low24hr = content ['USDT_BTC'] ['low24hr']
self.BTC_highestBid = content ['USDT_BTC'] ['highestBid']
self.BTC_lowestAsk = content ['USDT_BTC'] ['lowestAsk']
self.BTC_baseVolume = content ['USDT_BTC'] ['baseVolume']
except KeyboardInterrupt:
exit()
except:
print ('### ERROR DE CONEXION - ESPERANDO 10 SEGUNDOS ###')
err = True
time.sleep(10)

datosBTC = []
btcAct = Clase_btc()
n = 0
lapso = 60

while True:
btcAct.actualizar_valores()
datosBTC.append(btcAct)
print ('######################################################')
print ('  FECHA:      ' + datosBTC[n].BTC_fecha + ' -- ' + datosBTC[n].BTC_hora)
print ('  LAST:       ' + datosBTC[n].BTC_last)
print ('  HIGH24HR:   ' + datosBTC[n].BTC_high24hr)
print ('  MOVIMIENTO: ' + datosBTC[n].BTC_percentChange)
print ('  LOW24HR:    ' + datosBTC[n].BTC_low24hr)
print ('  HIGHESTBID: ' + datosBTC[n].BTC_highestBid)
print ('  LOWESTASK:  ' + datosBTC[n].BTC_lowestAsk)
print ('  BASEVOLUME: ' + datosBTC[n].BTC_baseVolume)
print ('######################################################')
print ('ESPERANDO ' + str(lapso) + ' SEGUNDOS')
n +=1
time.sleep(lapso)
sr. member
Activity: 407
Merit: 250
July 05, 2016, 12:15:47 PM
#40
Quote
Ahora lo importante es hacerte con unas buenas estadísticas para comprobar su correcto funcionamiento.

En tradewave se puede hacer todo el backtesting de forma gratuita. Con gráficos puntos de entrada, salida, los indicadores ploteados muy completito.

Quote
¿Compartirás el código?

No me ha salido gratis, el que lo ha hecho cobra por su tiempo como es lógico. No tengo problema en compartirlo a cambio de una modesta colaboración.
Mándame un privado si quieres.
hero member
Activity: 865
Merit: 1006
July 05, 2016, 09:42:22 AM
#39
Bueno pues nada, informar de que tengo mi estrategia hecha en Phyton y funcionando bien en backtesting en el sitio de tradewave. Estoy haciendo pruebas y más pruebas modificando parámetros y viendo resultados en diferentes periodos históricos sobre todos en marcos de tiempo de entre 15' y 4H con algunos resultados interesantes. Veo que aquí el tema importante es elegir bien el momento de entrada al mercado y afinar muy bien los parámetros para evitar entre otras muchas cosas excesos de transacciones y que los Fees (en caso de haberlos)  se trapiñen el beneficio.

Lo que es la herramienta en si misma, basada en RSI y WMA, me está sorprendido gratamente, es muy personalizable para poder adaptarla a los diferentes momentos del mercado. Ahora la clave es comprender y acertar bien con los parámetros que no es moco de pavo.

Felicidades...

Ahora lo importante es hacerte con unas buenas estadísticas para comprobar su correcto funcionamiento.

¿Compartirás el código?

Un saludo
sr. member
Activity: 407
Merit: 250
July 05, 2016, 06:01:18 AM
#38
Bueno pues nada, informar de que tengo mi estrategia hecha en Phyton y funcionando bien en backtesting en el sitio de tradewave. Estoy haciendo pruebas y más pruebas modificando parámetros y viendo resultados en diferentes periodos históricos sobre todos en marcos de tiempo de entre 15' y 4H con algunos resultados interesantes. Veo que aquí el tema importante es elegir bien el momento de entrada al mercado y afinar muy bien los parámetros para evitar entre otras muchas cosas excesos de transacciones y que los Fees (en caso de haberlos)  se trapiñen el beneficio.

Lo que es la herramienta en si misma, basada en RSI y WMA, me está sorprendido gratamente, es muy personalizable para poder adaptarla a los diferentes momentos del mercado. Ahora la clave es comprender y acertar bien con los parámetros que no es moco de pavo.
sr. member
Activity: 407
Merit: 250
July 04, 2016, 02:55:23 AM
#37


¿Por qué no vale? Lo he intentado mirar pero no me apetece registrarme ahora mismo. No sé si voy a poder sacar tiempo :/

Decía que con el editor visual que tienen no se puede crear mi estrategia concretamente. Otras si.
sr. member
Activity: 407
Merit: 250
July 04, 2016, 02:48:09 AM
#36
Bueno entonces deduzco que crear un indicador no tiene mucho apoyo ni interés por el momento, nos vamos a lo de toda la vida pero automatizado ¿no?

Pues me pongo a crear el programa con JL Script que es el lenguaje de QTBTCT pero en lugar de enviar ordenes hago que lance mensajes al log tipo (comprados 2BTC a 649$) y que lleve un balance propio, el tema de hacer un backtesting ya lo veo mas complicado.

SI el tema del backtesting en QTBTCT es complicado, quizás se podría clonar la estrategia en cuestión en otro lenguaje como python y probarla en el backtesting de por ejemplo tradewave que es gratis, podría ser una solución probar antes de hacerla funcionar en el QTBTCT, o os parece una marcianada esto?

Yo ya tengo la mía terminada en Phyton, aunque de momento no me funciona en backtest (ni en live) me tira errores que todavía no se seguro si son porque yo soy un zopenco, o por otra cosa...

Aparte en mi estrategia yo lo que veo más delicado es el tema de los stoploss que a veces no se ejecutan si el precio cae muy rápido más abajo/arriba de donde está situado, eso es una putada gorda ya que te deja muy muy fuera.
Pregunto:¿ en QTBTCT es posible lanzar ordenes a mercado en script? Porque con el modo visual me parece que no...
legendary
Activity: 1974
Merit: 1029
July 03, 2016, 06:10:27 PM
#35
Si yo fuera lo probaría sobre  datos de un histórico antes de lanzarlo al mercado real. A sabiendas de que comportamientos pasados no tienen porque implicar que sean los mismos en un futuro, pero permitirían afinar ciertas variables stop en función de la volatilidad o del volumen de mercado, la liquides del intercambio, marcos de tiempo, marcas Fibo, RSI, linea de tendencia, etc.

El problema de esto es que con ese método no afinas el sistema para que funcione. Lo afinas para ajustarlo al histórico sobre el que estés trabajando (curve fitting). Luego lo pones en la selva y se lo meriendan porque el mercado ya no se comporta como lo hacía antes.

Yo cojo el histórico y lo divido en varias partes y las trato como si fueran el histórico entero (realmente es un poco más complejo). Un buen sistema debe comportarse bien en todas ellas. Repito 3 veces, con históricos semanales, diarios e intradía.

Idealmente habría que probar el sistema en varios históricos de varios activos de varios tipos (stock, commodity, currency), en varios marcos temporales. Pero dudo mucho que el santo grial exista Smiley
legendary
Activity: 1974
Merit: 1029
July 03, 2016, 05:45:41 PM
#34
Este hilo no me salía en "Show unread posts since last visit" y ahora resulta que ha tenido un montón de actividad…


Ah.

Pero yo estoy hablando constantemente en el marco de automatizar y tal Smiley Por eso insisto tanto en que todo debe estar definido y previsto.
En que lenguaje programarías nuestro BOT Dserrano?

Yo hablo Perl. Todo mi tinglao de desarrollo y testing de sistemas está en Perl. Me falta poquito para ponerle que hable con el API de bitfinex, que estoy hasta el pene de llegar tarde.


Estaba mirando este sitio https://tradewave.net/ no lo conocía, me ha parecido gracioso e interesante hay un editor de estrategias muy sencillo en plan visual (que no vale para lo nuestro) pero también se pueden escribir en Python, lástima no tener ni idea sino me animaba.

¿Por qué no vale? Lo he intentado mirar pero no me apetece registrarme ahora mismo. No sé si voy a poder sacar tiempo :/
aTg
legendary
Activity: 1358
Merit: 1000
July 03, 2016, 01:20:03 PM
#33
Bueno entonces deduzco que crear un indicador no tiene mucho apoyo ni interés por el momento, nos vamos a lo de toda la vida pero automatizado ¿no?

Pues me pongo a crear el programa con JL Script que es el lenguaje de QTBTCT pero en lugar de enviar ordenes hago que lance mensajes al log tipo (comprados 2BTC a 649$) y que lleve un balance propio, el tema de hacer un backtesting ya lo veo mas complicado.
sr. member
Activity: 407
Merit: 250
July 03, 2016, 12:31:41 PM
#32
Como lo veas  Smiley
aTg
legendary
Activity: 1358
Merit: 1000
July 03, 2016, 09:46:43 AM
#31
Estupendo, cuando encuentres el filón please compartelo con todos y lo explotamos juntos  Cheesy. Yo mientas voy a ir probando con lo que me está funcionando decentemente  Smiley a ver que tal me va.



Si esta va a ser la actitud colaborativa mas bien voy cerrando el hilo...
sr. member
Activity: 407
Merit: 250
July 03, 2016, 05:29:26 AM
#30
De veras funciona el análisis técnico en una moneda tan relativamente reciente como el bitcoin? Yo he sido trader en Forex por más de cuatro años con excelentes resultados, pero veo que mi habilidad con las divisas ordinarias da de topes una y otra vez cada que he intentado el trading con altcoins.

No hombre es todo una coña, en realidad lo mejor es jugárselo a cara y cruz, ¿para qué andar mirando indicadores pudiendo confiar en la suerte?    Cheesy

Aparte de bromas, parece razonable pensar que el tiempo debería jugar a favor de la probabilidad de éxito en la utilización del análisis técnico, por cantidad de datos y movimientos acumulados. Supongo que a día de hoy el análisis técnico debería ser algo más "fiable" que hace 3 años y menos que lo que será dentro de otros 3 en lo que BTC se refiere.

hero member
Activity: 966
Merit: 507
July 02, 2016, 08:05:00 PM
#29
De veras funciona el análisis técnico en una moneda tan relativamente reciente como el bitcoin? Yo he sido trader en Forex por más de cuatro años con excelentes resultados, pero veo que mi habilidad con las divisas ordinarias da de topes una y otra vez cada que he intentado el trading con altcoins.
sr. member
Activity: 407
Merit: 250
July 02, 2016, 05:29:40 PM
#28
Quote
no comprendo porque después de recomendar este gran programa te as ido a utilizar los bots de terceros.
Obviamente por desconocimiento y porque he empezado a pensar la automatización hace poco, y he ido a lo más fácil. Yo el QTBT lo uso con las reglas y grupos de reglas, lo de los script lo vi en su día me sonó a chino. Ahora que lo has dicho, llevas toda la razón, así que gracias. Esa ha sido buena.

Quote
Yo lo que haría primero es crear un indicador propio mas ajustado al comportamiento de Bitcoin teniendo en cuenta datos de la API de blockchain.info por ejemplo en vez de estar utilizando indicadores genéricos de bolsa y mercados financieros.

Si damos con un filón programar la estrategia para operarlo es sumamente fácil, pero si no estamos dando palos de ciego.
Estupendo, cuando encuentres el filón please compartelo con todos y lo explotamos juntos  Cheesy. Yo mientas voy a ir probando con lo que me está funcionando decentemente  Smiley a ver que tal me va.
A ver esto es un entretenimiento, se empieza por algo y si se llega a algún sitio pues ya se va avanzando, tampoco voy meter ahí grandes sumas. Iré combinando los métodos clásicos con un poco de bot aquí y allá a ver que tal si bien genial si mal pues no pasa nada. A mejorarlo, caminado se hace camino.


aTg
legendary
Activity: 1358
Merit: 1000
July 02, 2016, 03:49:43 PM
#27
La idea es probarlo ahí en el mismo sitio y si funciona igual de bien que en modo manual, la siguiente fase sería ver la manera de enchufarlo a la API del exchange para no tener que depender de terceros. Otra cosa de la que no tengo ni zorra idea.  Huh

He estado compilando el QtBitconTrader, puedes programar indicadores y scripts que ejecutan ordenes, está conectado con el API de tu exchange, no comprendo porque después de recomendar este gran programa te as ido a utilizar los bots de terceros.

Yo lo que haría primero es crear un indicador propio mas ajustado al comportamiento de Bitcoin teniendo en cuenta datos de la API de blockchain.info por ejemplo en vez de estar utilizando indicadores genéricos de bolsa y mercados financieros.

Si damos con un filón programar la estrategia para operarlo es sumamente fácil, pero si no estamos dando palos de ciego.
hero member
Activity: 865
Merit: 1006
July 02, 2016, 01:51:42 PM
#26
Buenas.

He hecho bastantes programas (no muy complejos) en Python.
No soy programador, pero me gusta aprender y ya llevo más de un año con este lenguaje.
Si os puedo ayudar en algo, yo también tengo mucho interés en sistemas de trader automáticos.

Hice algunas pruebas en POLONIEX, con sus APIs. La verdad es que python en ese sentido es muy potente, y hay mucha información...

Un saludo
sr. member
Activity: 407
Merit: 250
July 02, 2016, 12:28:22 PM
#25

No entiendo mucho sobre este tema, que por otra parte me parece muy interesante. No se si diré una perogrullada. Creo entender que el sistema es autónomo y debe generar el todas las ordenes de compra y venta en base al mercado. Si yo fuera lo probaría sobre  datos de un histórico antes de lanzarlo al mercado real. A sabiendas de que comportamientos pasados no tienen porque implicar que sean los mismos en un futuro, pero permitirían afinar ciertas variables stop en función de la volatilidad o del volumen de mercado, la liquides del intercambio, marcos de tiempo, marcas Fibo, RSI, linea de tendencia, etc.
Una vez afinado sobre históricos, probarlo con una cuenta simulada o si le va a uno el riesgo con pasta en un intercambio con mucha liquidez en el que nuestro sistema perturbe lo menos posible.

Saludos.



Claro, es de sentido común. Además es necesario hacer un backtest para que el sistema tenga los datos de los primeros Stoploss a colocar. También es importante que python es un lenguaje sencillo, si ya tienes la lógica hecha modificar parametros no tiene mucho misterio.
De todos modos un sistema automatizado no significa desatendido. El problema que le veo yo a esto es que se pierde el factor error humano, cuando lo haces manualmente muchas veces llegas tarde dejando atrás las señales y te pierdes cosas sobre todo en marcos de tiempo cortos que es como lo voy a usar. Lo que a veces te vienen bien y otras mal, vaya se pierde un poco el factor suerte, lo que no se si eso será positivo o negativo.
hero member
Activity: 690
Merit: 500
July 02, 2016, 11:39:28 AM
#24

No entiendo mucho sobre este tema, que por otra parte me parece muy interesante. No se si diré una perogrullada. Creo entender que el sistema es autónomo y debe generar el todas las ordenes de compra y venta en base al mercado. Si yo fuera lo probaría sobre  datos de un histórico antes de lanzarlo al mercado real. A sabiendas de que comportamientos pasados no tienen porque implicar que sean los mismos en un futuro, pero permitirían afinar ciertas variables stop en función de la volatilidad o del volumen de mercado, la liquides del intercambio, marcos de tiempo, marcas Fibo, RSI, linea de tendencia, etc.
Una vez afinado sobre históricos, probarlo con una cuenta simulada o si le va a uno el riesgo con pasta en un intercambio con mucha liquidez en el que nuestro sistema perturbe lo menos posible.

Saludos.


sr. member
Activity: 407
Merit: 250
July 02, 2016, 11:00:26 AM
#23
Buenas he estado bicheando estos días con el haasbotonline y con el sitio que linkee en el anterior post Tradewave con la idea de poder automatizarme un poco. En mi opinión el haasbot es muy cool y tal, pero es complicado y algo limitado, supongo que el que controle mogollón de indicadores y como analizarlos y combinarlos puede resultarle útil sin embargo para mi teniendo unos conocimientos de analisys técnico pobres lo veo limitado ya que ni se puede automatizar la estrategia que estoy usando y es sencillita. Que paradoja no?

El otro sitio que estoy mirando, tradewave lo veo mucho más flexible y conveniente ya que puedes escribirte las estrategias tu mismo si sabes Python claro. La gente comparte códigos etc y hay algunas estrategias sencillas ya montadas para elegir. También hay un constructor con una interfaz visual que para hacer cosas sencillas o si tirenes una mente acostumbrada a pensar en modo "condicional", la verdad yo no tengo ganas de hacer experimentos y pruebas y mas pruebas. Quiero ir al grano así que lo que he hecho ha sido contactar con un usuario del foro de tradeware, que tiene muchas cosas hechas y buena reputación y le he pedido a ver si me escribía en python la estrategía. Me ha dicho que si que me va a hacer una Shocked[ State Machine , asì que en un par de días podré ver y probar el resultado.

Pongo el esquema básico al final muchas cabezas piensan más que una, así que si tenéis alguna idea al respecto bienvenida sea.

Quote
if RSI(14) (is or recently was) < 30:
    if WMA(14) is positive slope:
        if holding usd:
            buy_price = buy()
            mode = 1
       
if RSI(14) (is or recently was) > 70:
    if WMA(14) is negative slope:
        if holding btc:       
            sell_price = sell()
            mode = -1
       
if mode is 1:
    if holding btc:
        if PRICE < buy_stoploss*buy_price:
            sell()
            mode = 0
           
if mode is -1:
    if holding usd:
        if PRICE > sell_stoploss*sell_price:
            buy()
            mode = 0


La cosa ahora es como calcular el precio del stop loss, creo que una buena idea sería algo así como el máximo menor - 0,5% que se haya producido en el intervalo entre la entrada en sobre venta y el cambio de dirección de la media, para los largos y al revés para los cortos.

La idea es probarlo ahí en el mismo sitio y si funciona igual de bien que en modo manual, la siguiente fase sería ver la manera de enchufarlo a la API del exchange para no tener que depender de terceros. Otra cosa de la que no tengo ni zorra idea.  Huh

Ya os pondré los avances.

Saludos
sr. member
Activity: 407
Merit: 250
June 27, 2016, 01:00:49 PM
#22
Ah.

Pero yo estoy hablando constantemente en el marco de automatizar y tal Smiley Por eso insisto tanto en que todo debe estar definido y previsto.
En que lenguaje programarías nuestro BOT Dserrano?
Estaba mirando este sitio https://tradewave.net/ no lo conocía, me ha parecido gracioso e interesante hay un editor de estrategias muy sencillo en plan visual (que no vale para lo nuestro) pero también se pueden escribir en Python, lástima no tener ni idea sino me animaba.
member
Activity: 69
Merit: 10
June 27, 2016, 11:04:51 AM
#21
Interesante, tomo sitio  Grin
Os dejo otro sistema muy sencillo de cryptonauta a ver que os parece.
https://forobits.com/t/sistemas-de-trading/262
sr. member
Activity: 407
Merit: 250
June 27, 2016, 09:21:03 AM
#20
Si, lo se, pero en este punto no sabría que decirte, yo creo que sería más sencillo de seguir con una única orden, es que tampoco me hago una idea de como es a nivel operativo, si tendría interfaz, como sería, que tipo de configuración se va poder poner (si se va a poner alguna) a nivel de programación tampoco se muy bien el nivel de complejidad que resulte si se hace de una forma o de otra. Ahí ya me pierdo. ¿Tú que opinas?
legendary
Activity: 1974
Merit: 1029
June 27, 2016, 08:21:52 AM
#19
Ah.

Pero yo estoy hablando constantemente en el marco de automatizar y tal Smiley Por eso insisto tanto en que todo debe estar definido y previsto.
sr. member
Activity: 407
Merit: 250
June 27, 2016, 05:55:24 AM
#18
Tal y como yo uso esta estrategia no abro varias posiciones en el mismo marco de tiempo. Solo una. Para poder tener vida, más que nada...
legendary
Activity: 1974
Merit: 1029
June 27, 2016, 03:37:01 AM
#17
No, otra gráfica no, estamos todavía con esta:



Tenemos un corto abierto el 24 a las 8:00. El 25 a las 3:00 el RSI se sale parriba, pongamos que el stop no salta, y un poco después la WMA se gira, por tanto y según las condiciones, abrimos otro corto. Ah, excepto que entre las condiciones añadamos un "abrimos si no tenemos abierto ya". O también se puede estipular que vale, que se puede tener más de una posición abierta en el mismo sentido, pero entonces a la hora de cerrar mejor las cierras todas de golpe, porque como no lo hagas entonces sí que estás jodid@.

Lo de tipos de órdenes no entiendo qué pinta en esta conversación. Uno no diseña un sistema teniendo en cuenta que las órdenes se puedan a cruzar o no. Estaríamos bien…
sr. member
Activity: 407
Merit: 250
June 26, 2016, 09:11:40 PM
#16
    Quote

    Estás presuponiendo que la media ha hecho cosas que no necesariamente tiene por qué haber hecho (en el primer punto, que se ha venido hacia abajo; en el segundo, que sigue yendo hacia arriba). Estás usando RSI14 y WMA14 pero el sistema no tiene que depender de que la WMA cuando la ponemos de 14 se comporta de determinada manera en el 100% (?) de los casos. Si ahora ponemos una media de 16 o de 20 va a reaccionar más tarde y de forma diferente en general. El sistema tiene que ser agnóstico de los parámetros y tenerlo todo previsto.
    A ver si salta el SL lo que sucederá seguramente dependerá del tipo de orden que hayamos puesto:
    • -A mercado: venderá (si o si, digo yo...)
    GAME OVER, estamos fuera. (la finalidad del SL es proteger nuestra inversión y evitar males mayores).
    • Limitada: Puede que se ejecute o puede que no
    -Si se ejecuta: GAME OVER
    -Si no se ejecuta hay que esperar la señal de sobre compra y que la media apunte abajo para vender. Mientras eso no suceda (por ese orden) tenemos que estar a la espera. Que la media cambie por si misma no implica nada. Si estamos largos, para poder vender, primero la señal RSI tiene que marcar sobre compra y después la media debe girarse. No vale solo con que la media se gire.
    [/list]
    Quote
    • ¿Qué pasa si salta el stop loss (que se llama así Tongue) y la media no se ha girado? Nos quedamos fuera, vale, a veces un sistema se sale demasiado pronto.
    GAME OVER
    Quote
    • ¿Qué pasa si no salta el SL y la media se ha girado? Volvemos a abrir un segundo largo. Ouch.
    No no, lo que hacemos es esperar la señal de sobre compra.

    Mira en este gráfico está el ejemplo de lo que dices:
    Hemos tenido una sobre venta (sobre las 15:00) la media se giró a las 19.30, nos pusimos largos (ya que el RSI marcó sobre venta y la media ya se ha girado), hemos protegido nuestra compra con el SL en 607 USD (debajo del mínimo mayor anterior). A partir de ahora nuestro objetivo es vender y esto es lo que puede pasar:
    1- que el precio siga bajando y salte el SL (GAME OVER, estamos fuera, vuelta a empezar)
    2- que el RSI marque sobre compra y después que la media se gire. Venderemos con más o menos beneficio.
    3- No sucede nada de lo anterior, hay que esperar a que suceda uno de los dos puntos anteriores.

    Mientras no suceda el punto 1 o el 2 no haremos nada aunque la media baile arriba abajo.



    legendary
    Activity: 1974
    Merit: 1029
    June 26, 2016, 05:22:48 PM
    #15
    Si tenemos un largo abierto y el RSI vuelve a marcar sobre venta, podrían suceder dos cosas:
    -1 que nos salte el stopLose y vendamos, en ese caso volveriamos a ponernos largos cuando el WMA se diera la vuelta.
    -2 Que no salte el stop lose en ese caso no haríamos nada porque el WMA está hacia arriba y queremos esperar a que el RSI marque sobre compra.

    Estás presuponiendo que la media ha hecho cosas que no necesariamente tiene por qué haber hecho (en el primer punto, que se ha venido hacia abajo; en el segundo, que sigue yendo hacia arriba). Estás usando RSI14 y WMA14 pero el sistema no tiene que depender de que la WMA cuando la ponemos de 14 se comporta de determinada manera en el 100% (?) de los casos. Si ahora ponemos una media de 16 o de 20 va a reaccionar más tarde y de forma diferente en general. El sistema tiene que ser agnóstico de los parámetros y tenerlo todo previsto.

    • ¿Qué pasa si salta el stop loss (que se llama así Tongue) y la media no se ha girado? Nos quedamos fuera, vale, a veces un sistema se sale demasiado pronto.
    • ¿Qué pasa si no salta el SL y la media se ha girado? Volvemos a abrir un segundo largo. Ouch.
    sr. member
    Activity: 407
    Merit: 250
    June 26, 2016, 12:43:07 PM
    #14
    Si tenemos un largo abierto no queremos abrir otro, lo que queremos es esperar una sobre compra y que la media cambie para vender. ¿No?

    Entonces hay que poner esto entre las condiciones. Abrir largos cuando el RSI ha marcado sobreventa, no había ya un largo abierto y la WMA se da la vuelta hacia arriba. O quizá abrir largos cuando el RSI ha marcado sobreventa, la WMA se da la vuelta hacia arriba y no tenemos ya un largo abierto. Que no es lo mismo Wink

    Si tenemos un largo abierto y el RSI vuelve a marcar sobre venta, podrían suceder dos cosas:
    -1 que nos salte el stopLose y vendamos, en ese caso volveriamos a ponernos largos cuando el WMA se diera la vuelta.
    -2 Que no salte el stop lose en ese caso no haríamos nada porque el WMA está hacia arriba y queremos esperar a que el RSI marque sobre compra.
    legendary
    Activity: 1974
    Merit: 1029
    June 26, 2016, 10:57:03 AM
    #13
    Si tenemos un largo abierto no queremos abrir otro, lo que queremos es esperar una sobre compra y que la media cambie para vender. ¿No?

    Entonces hay que poner esto entre las condiciones. Abrir largos cuando el RSI ha marcado sobreventa, no había ya un largo abierto y la WMA se da la vuelta hacia arriba. O quizá abrir largos cuando el RSI ha marcado sobreventa, la WMA se da la vuelta hacia arriba y no tenemos ya un largo abierto. Que no es lo mismo Wink
    sr. member
    Activity: 407
    Merit: 250
    June 26, 2016, 07:31:54 AM
    #12
    Quote
    Pero si quieres automatizarlo, no puedes conformarte con poner el stop "por encima del último máximo". Tienes que definir concretamente cuánto por encima. Esto se convierte en un parámetro más del sistema.
    Si es verdad, creo que lo suyo sería un porcentaje más que una cantidad, entre un 1 y 2 0,5 y 1 %?

    Quote
    Se da el curioso caso de que el RSI marca sobrecompra mientras tenemos una posición corta abierta, ¿qué hacemos en este caso? Una vez más, no está definido.
    Quote
    No entiendo muy bien donde se da este caso que comentas.
    Justo en las 3 velas verdes famosas. El RSI se escapa por arriba un momento.
    Ahí no se hace nada a no ser que supere el precio del stop (684 + x%), en cuyo caso compraríamos. Si eso no sucede, lo que toca es esperar una sobreventa y que la media cambie de dirección para comprar.

    Quote
    Esto es especialmente peligroso cuando por ejemplo tenemos un largo abierto y el mercado se mueve de tal forma que nos indica abrir otro largo. Podríamos quedar en una situación donde el primer largo queda abierto indefinidamente… pero esto son elucubraciones, y sin hacer el testing formal no se puede saber. Incluso haciendo el testing, nunca sabes lo que va a hacer el mercado en el futuro.
    Si tenemos un largo abierto no queremos abrir otro, lo que queremos es esperar una sobre compra y que la media cambie para vender. ¿No?
    legendary
    Activity: 1974
    Merit: 1029
    June 26, 2016, 06:37:07 AM
    #11
    La gráfica es real sobre mis compras y ventas pero en ese caso concreto me lo perdí, lo cual me vino bien a pesar de todo.

    Oki, entendido.


    Quote
    El 25 después de las 3:00, en esas 3 velas verdes, salta el stop en la tercera (compra en $684, así a ojo, para cerrar posición).
    No llego a saltar esa compra ya que como dije el Stop se pone por encima del último máximo (684) (o por debajo del ultimo mínimo) en este caso el stop está puesto a 688 (las marcas de la gráfica están puestas a ojo).

    Pero si quieres automatizarlo, no puedes conformarte con poner el stop "por encima del último máximo". Tienes que definir concretamente cuánto por encima. Esto se convierte en un parámetro más del sistema.


    Quote
    Se da el curioso caso de que el RSI marca sobrecompra mientras tenemos una posición corta abierta, ¿qué hacemos en este caso? Una vez más, no está definido.
    No entiendo muy bien donde se da este caso que comentas.

    Justo en las 3 velas verdes famosas. El RSI se escapa por arriba un momento.


    Pero en se caso no haríamos nada ya que lo que toca es esperar a que el RASI marque sobre venta, si el precio siguiera arriba se ejecutaria el Stop del máximo (688) y si el precio falla y vuelve a caer, habría sido una operación fallida.

    Si falla y vuelve a caer, tenemos un caso de "RSI ha marcado sobrecompra y la WMA se va pabajo" por lo que tocaría abrir un corto. Ah, pero es que el RSI marcó sobrecompra cuando teníamos ya una posición abierta, no cuando estábamos fuera.

    Esto es especialmente peligroso cuando por ejemplo tenemos un largo abierto y el mercado se mueve de tal forma que nos indica abrir otro largo. Podríamos quedar en una situación donde el primer largo queda abierto indefinidamente… pero esto son elucubraciones, y sin hacer el testing formal no se puede saber. Incluso haciendo el testing, nunca sabes lo que va a hacer el mercado en el futuro.
    sr. member
    Activity: 407
    Merit: 250
    June 26, 2016, 05:23:31 AM
    #10
    Quote
    Ahí salta una compra el 23 sobre las 19:00 (ojo, a $580, a precio de cierre de vela) pero la venta no es donde está pintada allí arriba. La venta es el mismo 23 sobre las 22:00 a $605. A partir de ahí nos quedamos fuera. La venta de allí arriba (el 24 sobre las 8:00) es realmente una apertura de cortos en $660.
    Es lo que decía, hay que estar pendiente o se te puede pasar el arroz. Es lo que ha pasado en el punto que comentas, efectivamente salta la alerta de sobre compra (que no una compra) por lo que nos hubiéramos preparado para vender cuando al WMA hubiera cambiado de sentido, da igual si la alerta de sobre compra se produce un poco antes o si se repite un poco después ya que lo que es determinante para efecturar la operación es que hayan sucedido las dos cosas correlativamente (que el RSI de sobre compra y que el WMA cambie de dirección), la venta se hubiera producido en la vela de las 22:30 y hubiéramos puesto un stop a recomprar sobre 635 USD (el máximo anterior) para protegernos el caso de que el WMA hubiera vuelto a cambiar de dirección y el precio hubiera remontado. La gráfica es real sobre mis compras y ventas pero en ese caso concreto me lo perdí, lo cual me vino bien a pesar de todo.

    Quote
    El 25 después de las 3:00, en esas 3 velas verdes, salta el stop en la tercera (compra en $684, así a ojo, para cerrar posición).
    No llego a saltar esa compra ya que como dije el Stop se pone por encima del último máximo (684) (o por debajo del ultimo mínimo) en este caso el stop está puesto a 688 (las marcas de la gráfica están puestas a ojo).

    Quote
    Se da el curioso caso de que el RSI marca sobrecompra mientras tenemos una posición corta abierta, ¿qué hacemos en este caso? Una vez más, no está definido.
    No entiendo muy bien donde se da este caso que comentas. Pero en se caso no haríamos nada ya que lo que toca es esperar a que el RASI marque sobre venta, si el precio siguiera arriba se ejecutaria el Stop del máximo (688) y si el precio falla y vuelve a caer, habría sido una operación fallida. Nadie dijo que el sistema es infalible.  Grin
    legendary
    Activity: 1974
    Merit: 1029
    June 26, 2016, 04:48:00 AM
    #9
    Quote
    Abrir largo cuando RSI ha marcado sobreventa y la WMA (que va a la baja en el ¿100%? de los casos) se da la vuelta hacia arriba
    Cuando el RSI marca sobreventa, te preparas para abrir un largo, solo lo abres cuando el WMA se da la vuelta

    Que es exactamente lo que he dicho. Cuando el RSI ha marcado sobreventa (en el pasado) y la WMA se da (ahora) la vuelta.




    Ahí salta una compra el 23 sobre las 19:00 (ojo, a $580, a precio de cierre de vela) pero la venta no es donde está pintada allí arriba. La venta es el mismo 23 sobre las 22:00 a $605. A partir de ahí nos quedamos fuera. La venta de allí arriba (el 24 sobre las 8:00) es realmente una apertura de cortos en $660. El 25 después de las 3:00, en esas 3 velas verdes, salta el stop en la tercera (compra en $684, así a ojo, para cerrar posición).

    Se da el curioso caso de que el RSI marca sobrecompra mientras tenemos una posición corta abierta, ¿qué hacemos en este caso? Una vez más, no está definido.

    • Si abrimos corto lo hacemos el 25 sobre las 7:00 a $680 y con la sobreventa del RSI del final de todo nos preparamos para cerrar corto cuando la media se vuelva hacia arriba.
    • Si no abrimos corto, en la sobreventa del RSI del final de todo nos preparamos para abrir largo cuando la media se vuelva hacia arriba.
    sr. member
    Activity: 407
    Merit: 250
    June 25, 2016, 11:42:11 PM
    #8
    Seguimos con la gráfica.
    Ayer no llegué al cambio de dirección, así que esperaremos a la siguiente señal con las siguientes opciones:

    1- Si el precio sube de 685, el stop se ejecutará y comprará
    2- esperar a que RSI marque sobreventa, y comprar cuando WMA cambie de dirección.



    sr. member
    Activity: 407
    Merit: 250
    June 25, 2016, 12:42:35 PM
    #7
    Quote
    Abrir largo cuando RSI ha marcado sobreventa y la WMA (que va a la baja en el ¿100%? de los casos) se da la vuelta hacia arriba
    Cuando el RSI marca sobreventa, te preparas para abrir un largo, solo lo abres cuando el WMA se da la vuelta (si no va a la baja (raro), o si no se da la vuelta no se hace nada y se espera a que lo haga) en el caso de que se abra el largo se pone un stoplose por debajo del suelo previo no en el mismo mínimo sino debajo.

    Para corto a la inversa.
    El stop del corto se pone por encima del máximo anterior, para en caso de que falle no quedarse fuera.

    El problema si, es automatizar los stops y también el detalle de que que el RSI marque sobreventa o viceversa no tiene porque darse a la vez que el WMA se de la vuelta ya que muchas de las veces cuando el WMA se da la vuelta el RSI ya no está sobreventa o sobrecompra. es un detalle importante.

    En el hassbot no se puede hacer ni lo de los stops en el mínimo anterior ni tampoco que no se de a la vez las situaciones en los dos indicadores..

    Un ejemplo muy reciente al final ahora que el RSI ya ha marcado sobreventa, esperamos a que el WMA cambie de dirección...
    legendary
    Activity: 1974
    Merit: 1029
    June 25, 2016, 10:04:05 AM
    #6
    No es lo mismo verlo que contarlo.

    Sí es lo mismo Tongue

    Se definen 4 parámetros:

    • Período de WMA sobre cierre.
    • Período de RSI sobre cierre.
    • Nivel de sobreventa del RSI.
    • Nivel de sobrecompra del RSI.

    Abrir largo cuando RSI ha marcado sobreventa y la WMA (que va a la baja en el ¿100%? de los casos) se da la vuelta hacia arriba. Cerrar largo en mínimo previo (stop) (esto de "mínimo previo" no queda totalmente definido para automatizarlo del todo) o cuando el RSI marque sobrecompra y la WMA (que va al alza en el ¿100%? de los casos) se dé la vuelta hacia abajo.

    Para cortos, operar a la inversa.

    Es curioso porque luego en 5:00 habla de poner un stop a una venta que ha servido para salirse del mercado, no para entrar en corto. El stop significaría, por tanto, volver a entrar largo. No sé, me quedan muchas cosas sin definir. Pero como dice luego en el primer comentario, "la idea del sistema es para que trabajeis en ella y lo ajusteis a vuestras necesidades, no para usarlo sin más".
    sr. member
    Activity: 407
    Merit: 250
    June 25, 2016, 09:16:34 AM
    #5
    No es lo mismo verlo que contarlo. Está entretenido y recomiendo su visionado.
    Yo de programación poco.
    legendary
    Activity: 1974
    Merit: 1029
    June 25, 2016, 08:51:51 AM
    #4
    Me apunto al hilo!! Buena idea.
    Pego el que estoy usando hace unas semanas que también puse en el hilo del técnico.
    Quote
    Lo comparto por si queréis echarle un vistazo, es este: https://www.youtube.com/watch?v=ZmLposmKLvs

    No he visto el vídeo, me da mucha vagancia ver yutubes. ¿Es una media sobre el RSI? ¿Largo cuando el RSI está sobre la media y corto cuando está por debajo? Siéntete libre de decirme "te joes y lo miras" Tongue


    lo ideal sería poder automatizarlo para no tener que estar tan pendientes, ¿alguna idea sobre como automatizarlo?

    Yo lo que haría sería comerme la documentación del API de algún exchange (en mi caso bfx) y montármelo por mi cuenta, pero claro yo soy friki programata Smiley
    sr. member
    Activity: 407
    Merit: 250
    June 24, 2016, 10:10:15 PM
    #3
    Me apunto al hilo!! Buena idea.
    Pego el que estoy usando hace unas semanas que también puse en el hilo del técnico.
    Quote
    Yo llevo unas semanas usando uno bastante sencillo que encontré en youtube con algunas modificaciones en los parámetros que me está dando resultados bastante aceptables.
    Lo comparto por si queréis echarle un vistazo, es este: https://www.youtube.com/watch?v=ZmLposmKLvs
    Utilizo el RSI 14 (con los límites de sobrecompra y sobreventa en 70 y 30 respectivamente) y el WMA 14 realizando operaciones simultáneas en diferentes marcos de tiempo de entre 15 minutos y 4 Horas.
    En marcos de tiempo cortos hay que estar muy pendiente (sobretodo cuando el mercado está revuelto), es lo malo, pero va bastante bien.
    Con una corrección el indicador, que sería el WMA14 no el EMA. Para poder poner Stop loses y stop Buy's y otra reglas de seguridad uso el programa Bitcoin QT trader . Es una gran herramienta gratuita.
    Como ya dije en el otro hilo este sistema funciona bastante bien en marcos de tiempo de entre 15' y 4H, lo malo es que en los marcos de tiempo cortos hay que estar muy pendiente o es fácil llegar tarde...lo ideal sería poder automatizarlo para no tener que estar tan pendientes, ¿alguna idea sobre como automatizarlo?
    A raiz del comentario que hace dserrano5 en el hilo donde pone los resultado del sistema que utiliza tiempo atrás, para el tema de automatizarlo he estado mirando el Bot Haasonline para ver si puedo implementar este sistema ahí, de hecho ayer he comprado una suscripción de 3 meses para probar, lo que pasa es que todavía estoy más perdido que un pulpo en un garaje, ¿hay alguien que sepa usarlo bien y pueda echarme una mano?

    Saludos




    legendary
    Activity: 1974
    Merit: 1029
    June 24, 2016, 01:27:05 PM
    #2
    BB promete mucho a primera vista pero yo no he conseguido sacarle jugo. Probé este de cuando el canal es muy estrecho y la vela cierra por fuera, abrir posición del lado correspondiente, pero las falsas señales se comían el beneficio de las buenas. Típico.
    aTg
    legendary
    Activity: 1358
    Merit: 1000
    June 24, 2016, 10:19:51 AM
    #1
    En este hilo podemos desarrollar y compartir sistemas, automatizarlos o ejecutarlos manualmente.

    Para comenzar propongo uno sencillo que es sobre el indicador de las bandas de bollinger en velas de una hora, cuando el precio toca la banda superior daría señal de compra y al romper la media móvil hacia abajo señal de venta.

    Me comprometo a montar un bot con el que ir experimentando y compartir aquí los resultados.

    Jump to: