1 FolderToTaskCsv
Niquel Mendoza edited this page 2026-04-16 17:34:29 +00:00

Utils / FolderTaskToCSV

Conjunto de expertos que recorren una carpeta de archivos .set, modifican el parametro de generacion de datos en cada uno y producen un archivo CSV con las tareas de backtesting resultantes.

Cada variante difiere en como esta organizada la carpeta de entrada y de donde se obtiene el timeframe de cada tarea.


FolderTaskToCSV

Variante basica. Espera un nivel de subcarpetas por simbolo. El timeframe se lee directamente del contenido de cada .set.

Estructura de carpetas esperada

InpFolder/
├── EURUSD/
│   ├── config_a.set
│   └── config_b.set
└── GBPUSD/
    └── config_c.set
  • Nivel 1 — carpeta con el nombre del simbolo (ej. EURUSD)
  • Nivel 2 — archivos .set listos para el Strategy Tester

Parametros de entrada

Parametro Tipo Descripcion
InpFolder string Ruta relativa a la carpeta raiz que contiene las subcarpetas de simbolos. Debe terminar en \.
InpFolderIsInCommon bool true para resolver la ruta desde la carpeta Common del terminal. false para resolverla desde la carpeta Data del terminal.
InpParamTimeframeName string Nombre exacto del parametro dentro del .set del que se lee el timeframe (ej. InpTimeframe).
InpParamActiveGenerateName string Nombre exacto del parametro dentro del .set que activa la generacion de datos (ej. InpGenerateMode). El experto lo sobreescribe a true en cada archivo.
InpDataStartDate datetime Fecha de inicio del rango de datos para todas las tareas. 0 para no establecer limite.
InpDataEndDate datetime Fecha de fin del rango de datos para todas las tareas. 0 para no establecer limite.
InpCsvFileNameOutput string Nombre del archivo CSV de salida (ej. task.csv).
InpCsvFileNameOutputIsInCommon bool true para guardar el CSV en la carpeta Common. false para guardarlo en la carpeta Data.

Comportamiento

  1. Recorre InpFolder en busca de subcarpetas de simbolos.
  2. Dentro de cada simbolo, procesa directamente los archivos .set encontrados.
  3. Por cada .set, lee el valor del parametro InpParamTimeframeName para obtener el timeframe.
  4. Sobreescribe el parametro InpParamActiveGenerateName a true directamente en el archivo. (para activar la generacion de datos)
  5. Construye una tarea con el simbolo, el timeframe leido y la ruta al .set.
  6. Guarda todas las tareas en el CSV indicado por InpCsvFileNameOutput.
  7. Devuelve INIT_FAILED de forma intencionada para descargarse automáticamente al finalizar.

Notas

  • No se procesan subcarpetas de mas de 1 nivel de profundidad. Cualquier carpeta adicional se omite con un aviso en el log.
  • Si el parametro InpParamTimeframeName o InpParamActiveGenerateName no se encuentra en un .set, ese archivo se omite y se registra un aviso en el log.

FolderTaskToCSV2

Variante extendida. Agrega un nivel intermedio de subcarpetas por timeframe. El timeframe se deduce del nombre de esa carpeta, no del contenido del .set.

Estructura de carpetas esperada

InpFolder/
├── EURUSD/
│   ├── M1/
│   │   ├── config_a.set
│   │   └── config_b.set
│   └── H4/
│       └── config_c.set
└── GBPUSD/
    └── D1/
        └── config_d.set
  • Nivel 1 — carpeta con el nombre del simbolo (ej. EURUSD)
  • Nivel 2 — carpeta con el nombre del timeframe (ej. M1, H4, D1)
  • Nivel 3 — archivos .set listos para el Strategy Tester

Parametros de entrada

Parametro Tipo Descripcion
InpFolder string Ruta relativa a la carpeta raiz que contiene las subcarpetas de simbolos. Debe terminar en \.
InpFolderIsInCommon bool true para resolver la ruta desde la carpeta Common del terminal. false para resolverla desde la carpeta Data del terminal.
InpParamActiveGenerateName string Nombre exacto del parametro dentro del .set que activa la generacion de datos (ej. InpGenerateMode). El experto lo sobreescribe a true en cada archivo.
InpDataStartDate datetime Fecha de inicio del rango de datos para todas las tareas. 0 para no establecer limite.
InpDataEndDate datetime Fecha de fin del rango de datos para todas las tareas. 0 para no establecer limite.
InpCsvFileNameOutput string Nombre del archivo CSV de salida (ej. task.csv).
InpCsvFileNameOutputIsInCommon bool true para guardar el CSV en la carpeta Common. false para guardarlo en la carpeta Data.

Comportamiento

  1. Recorre InpFolder en busca de subcarpetas de simbolos.
  2. Dentro de cada simbolo, recorre las subcarpetas de timeframe.
  3. Por cada .set, sobreescribe el parametro InpParamActiveGenerateName a true directamente en el archivo.
  4. Construye una tarea con el simbolo, el timeframe leido del nombre de la carpeta y la ruta al .set.
  5. Guarda todas las tareas en el CSV indicado por InpCsvFileNameOutput.
  6. Devuelve INIT_FAILED de forma intencionada para descargarse automaticamente al finalizar.

Notas

  • No se procesan subcarpetas de mas de 2 niveles de profundidad. Cualquier carpeta adicional se omite con un aviso en el log.
  • Los nombres de carpeta de timeframe deben coincidir con los formatos reconocidos por StrShortTimeframeToEnumNoRef (ej. M1, M5, M15, M30, H1, H4, H6, H8, H12, D1, W1, MN). Cualquier nombre no reconocido se interpreta como PERIOD_CURRENT.

Notas comunes

  • La carpeta de .set files debe copiarse tal cual a Profiles\Tester\ del terminal para que el Strategy Tester los localice correctamente.
  • Ambos expertos modifican los archivos .set en disco durante la ejecucion. Se recomienda trabajar sobre una copia si se quiere preservar el estado original.