Poblemon para declaracion.

bertie

54 ignorados y subiendo.
Desde
18 Nov 2014
Mensajes
3.105
Reputación
5.134
Lugar
España
En 2024 tengo unas 200 opeaciones intradia con degiro que no se como meter en la declaracion de la renta, por que a mano tardare semanas, mientras resuelvo esto queria preguntaros que broker usáis que pase los datos a la agencia tributaria y no tener que introducirlo yo a mano. Cuando son cientos es una faena de dias al menos para mi.

Tengo cuenta en xtb con este broquer ya me viene en el borrado pero tiene demaciadas "comiciones" ellos dicen que no pero el spreak es muy alto y me dificulta salir con algo de ganancias en intradia.
He mirado renta4, que me aconsejais?
 
Cuando son muchas tienes posibilidad de agruparlas porque hay un límite para meter en la declaración. Yo siempre las he picado en el programa de la renta.
 
Yo me hice un script para automatizarlo y subirlo a cartera de valores.
¿Cómo se puede hacer un script para automatizar eso? ¿Hay alguna información disponible por algún lado? Yo no es que tenga tantas operaciones, pero aún así me gustaría saberlo.
 
Por eso yo prefiero ceñirme a los fondos y dejar de lado las acciones, porque al vender se hace la retención fiscal automáticamente.

Con los depósitos y fondos no hay que hacer la declaración si no llegas a 1600€ anuales.
 
Clicktrade, ING, MyInvestor son automáticos.

Prueba si no este año TaxDown, tienen ofertas con Degiro algunos años y por 50€ te lo hacen.
 
Lo más cómodo es agrupar por broker, una línea por broker con perdidas o ganancias y a correr; luego hay gente que adjunta el archivo a la declaración, yo no, si quieren que lo pidan.
 
Primero los agrupaba con este código de python (esto es para degiro lo tendras que adaptar si es otro broker):

import pandas as pd

# Leer el archivo Excel
file_path = '/mnt/data/trabajo-2023.xlsx'
df = pd.read_excel(file_path)

# Reemplazar comas por puntos en las columnas numéricas que están en formato de cadena antes de agrupar
numeric_columns = ['Cantidad', 'Valor local', 'Valor en EUR', 'Comisión', 'Beneficios y pérdidas']

for column in numeric_columns:
if df[column].dtype == 'object':
df[column] = df[column].str.replace(',', '.').astype(float)

# Agrupar las operaciones por las columnas especificadas y sumar los valores
grouped = df.groupby(['Fecha', 'Producto', 'Symbol/ISIN', 'Tipo de orden']).agg({
'Cantidad': 'sum',
'Valor local': 'sum',
'Valor en EUR': 'sum',
'Comisión': 'sum',
'Beneficios y pérdidas': 'sum'
}).reset_index()

# Formatear las columnas de valores para usar coma en lugar de punto decimal
grouped['Cantidad'] = grouped['Cantidad'].apply(lambda x: f'{x:.4f}'.replace('.', ','))
grouped['Valor local'] = grouped['Valor local'].apply(lambda x: f'{x:.4f}'.replace('.', ','))
grouped['Valor en EUR'] = grouped['Valor en EUR'].apply(lambda x: f'{x:.4f}'.replace('.', ','))
grouped['Comisión'] = grouped['Comisión'].apply(lambda x: f'{x:.4f}'.replace('.', ','))
grouped['Beneficios y pérdidas'] = grouped['Beneficios y pérdidas'].apply(lambda x: f'{x:.4f}'.replace('.', ','))

# Guardar el resultado en un nuevo archivo Excel
output_file_path = '/mnt/data/resultado_trabajo_2023_con_coma.xlsx'
grouped.to_excel(output_file_path, index=False)

import ace_tools as tools; tools.display_dataframe_to_user(name="Agrupación de Operaciones", dataframe=grouped)
 
Luego, aunque tienes librerias para hacerlo en python a mi me resultaba mas rapido hacerlo en AUTOHOTKEY:

#Requires AutoHotkey v2.0
#SingleInstance force

SetTitleMatchMode(2)
CoordMode("ToolTip", "Window")

#x::ExitApp ; Win+X
Pause::pause

time_sleep := 2000

; Crear objeto de aplicación de Excel
oExcel := ComObject("Excel.Application")

; Especificar ruta del archivo (ruta genérica)
ExcelFilePath := "C:\Ruta\archivo.xlsx"

; Hacer visible la aplicación de Excel
oExcel.Visible := true

; (Opcional) Activar la aplicación de Excel, en caso de requerir la instancia activa
oExcel := ComObjActive("Excel.Application")

; Abrir el libro de trabajo
oWorkbook := oExcel.Workbooks.Open(ExcelFilePath)

; Obtener la primera hoja del libro de trabajo (ajustar según sea necesario)
oSheet := oWorkbook.Sheets(1)

; Obtener el número de filas en la hoja
rowNum := oSheet.UsedRange.Rows.Count

; Iterar sobre cada fila
Loop rowNum
{
; Ignorar la primera fila (suponiendo que es el encabezado)
if (A_Index = 1)
continue

; Obtener valores de celdas
isin_val := oSheet.Range("C" . A_Index).Value
descrip_val := oSheet.Range("B" . A_Index).Value
introducido := oSheet.Range("F" . A_Index).Value
numero_val := oSheet.Range("D" . A_Index).Text
total_val := oSheet.Range("E" . A_Index).Value
fecha_val := oSheet.Range("A" . A_Index).Value
actionName := oSheet.Range("B" . A_Index).Value

if (numero_val >= 0)
type_op := "compra"
else
type_op := "venta"

; Si ya se ha introducido el valor, se omite la fila
if (introducido = "Si")
continue

; Activar la ventana de Google Chrome con el título "Cartera de valores - Google Chrome"
WinActivate("Cartera de valores - Google Chrome")
WinWaitActive("Cartera de valores - Google Chrome")

; Comprobamos si el valor existe
MouseClick("Left", 737, 243)
Sleep(time_sleep)
Send(actionName)
Sleep(time_sleep)
MouseClick("Left", 1138, 241)
Sleep(time_sleep)
thisColor := PixelGetColor(698, 296)

if (thisColor = 0x008800)
{
Sleep(time_sleep)
MouseClick("Left", 1129, 333) ; Click agrupación
Sleep(time_sleep)
MouseClick("Left", 748, 399) ; Click 100%
Sleep(time_sleep)

FoundX := 0
FoundY := 0

if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenNueva.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen en la pantalla.")
}

Sleep(time_sleep)
if (type_op = "compra")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
MouseClick("Left", 752, 530) ; Click adquisición
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 986, 551) ; Click títulos
Sleep(500)
Send(numero_val) ; Nº títulos
MouseClick("Left", 627, 609) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
Sleep(time_sleep)
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
if (type_op = "venta")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
Send("t")
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 1250, 535) ; Clave origen
Sleep(time_sleep)
Send("1")
Sleep(time_sleep)
MouseClick("Left", 645, 611) ; Click títulos
Sleep(500)
Send(Abs(numero_val)) ; Nº títulos
MouseClick("Left", 998, 611) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
}
else
{
; Si el valor no existe, se crea uno nuevo
MouseClick("Left", 525, 374)
Sleep(time_sleep)
MouseClick("Left", 755, 280)
Send(isin_val)
Sleep(time_sleep)
MouseClick("Left", 757, 341)
Sleep(time_sleep)
Send(descrip_val)
Sleep(time_sleep)
MouseClick("Left", 961, 490) ; Click guardar
Sleep(time_sleep)
MouseClick("Left", 942, 415) ; Click nueva agrupación
Sleep(time_sleep)
MouseClick("Left", 757, 284) ; Click en la propiedad
Sleep(time_sleep)
Send("100")
Sleep(time_sleep)
MouseClick("Left", 962, 367) ; Click guardar propiedad
Sleep(time_sleep)
MouseClick("Left", 950, 406) ; Click nueva operación
Sleep(time_sleep)
if (type_op = "compra")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
MouseClick("Left", 752, 530) ; Click adquisición
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 986, 551) ; Click títulos
Sleep(500)
Send(numero_val) ; Nº títulos
MouseClick("Left", 627, 609) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
Sleep(time_sleep)
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
if (type_op = "venta")
{
MouseClick("Left", 914, 488) ; Click desplegable
Sleep(time_sleep)
Send("t")
Sleep(time_sleep)
MouseClick("Left", 1010, 491) ; Click fecha
Sleep(time_sleep)
Send(fecha_val)
Sleep(time_sleep)
MouseClick("Left", 914, 549) ; Click Clave mercado
Sleep(time_sleep)
Send("3")
Sleep(time_sleep)
MouseClick("Left", 1250, 535) ; Clave origen
Sleep(time_sleep)
Send("1")
Sleep(time_sleep)
MouseClick("Left", 986, 551) ; Click títulos
Sleep(500)
Send(Abs(numero_val)) ; Nº títulos
MouseClick("Left", 627, 609) ; Click importe
Sleep(time_sleep)
Send(Abs(total_val))
Sleep(time_sleep)
if (ImageSearch(FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "C:\Ruta\imagenGuardar.png") = 0)
{
MouseClick("Left", FoundX, FoundY)
}
else
{
MsgBox("No se pudo encontrar la imagen de guardar en la pantalla.")
}
Sleep(time_sleep)
oSheet.Range("F" . A_Index).Value := "Si"
oWorkbook.Save()
Sleep(time_sleep)
MouseClick("Left", 519, 237) ; Click en la ventana principal
Sleep(time_sleep)
}
}
}

; Cerrar el libro de trabajo y la aplicación de Excel
oWorkbook.Close()
oExcel.Quit()
 
Yo se lo envio a un gestor, y por 50 euros me lo hace. Paso de calentarme la cabeza.
¿Dónde encuentra uno gestores para estos menesteres? Me refiero a que deben tener formación en inversiones financieras y en bolsa, ¿tienen algún "nombre" oficial para poder dar con ellos?
 
Los que le echan 50 eur al gestor para que les haga la renta....recordarles que en Ejpain...el responsable de la declaración es el que la firma....quiero decir, el gestor puede soltar un truño encima de la declaración y jorobaros perfectamente.. roto2:
 
Volver