4 Wf_Generic
nique_372 edited this page 2026-04-19 11:21:55 -05:00

Generic Steps

These are the built-in steps that come with workflows.

Step: Generic\RunEA

Opens a chart, runs an EA and waits for it to finish. Closes the chart when done.

Structure

- name: "RunEA"
  module: "Generic"
  with:
    fixed:
      name: "Experts\\Path\\MyEA.ex5"
      symbol: _Symbol
      timeframe: _Period
      run_flags: "DLL|AutoTrading"
      ms_sincronizacion: 500
      timeout_segundos: 300
    ea_params:
      - ParameterName: ["TYPE", "value"]
      - .
      - .

fixed Parameters

Parameter Required Description
name Yes EA path relative to MQL5\ (must always include Experts\\ — the EA must be located there)
symbol No Chart symbol. _Symbol uses the current one
timeframe No Timeframe. _Period uses the current one, based on ENUM_TIMEFRAMES. Note: PERIOD_CURRENT is invalid, use _Period instead
run_flags No Permissions for the EA to run. Two permissions exist: "DLL" enables DLL calls and "AutoTrading" enables auto trading. These can be combined using the pipe separator
ms_sincronizacion No Wait time in ms before launching the EA. Default: 1000
timeout_segundos Yes Maximum execution seconds. Must be greater than 0

ea_params Parameters

List of EA inputs. The name is optional — only the order matters.
Each parameter has the following structure:

- Name: ["TYPE",  value]
  • TYPE: from the ENUM_DATATYPE enumeration
  • value: String\Number\Double
ea_params:
  - InpNum: ["TYPE_UINT", "${{internal.number}}"]
  - InpTexto: ["TYPE_STRING", "hello"]

Step: Generic\PowerShellCommand

Launches a PowerShell command as an external process and waits for it to finish.

Structure

- name: "PowerShellCommand"
  module: "Generic"
  with:
    run: "Write-Output 'hello'"
    timeout_segundos: 300

Parameters

Parameter Required Description
run Yes PowerShell command to execute. Cannot be empty
timeout_segundos No Maximum wait seconds. Default: 300

Notes

The command is executed internally as:

powershell -NoProfile -NonInteractive -Command "..."

If the process exceeds the timeout it is killed automatically.