Grid Percentage Price Oscillator EA
- Asesores Expertos
-
AL MOOSAWI ABDULLAH JAFFER BAQER
To trade successfully we need to go through the proven path that others had gone and reached!
Here are 17 quotes from such successful investors:
1- Limit your size in any position so that fear does not become the prevailing instinct guiding your judgment.
Joe Vidich - Versión: 3.19
- Activaciones: 5
Pruébalo gratis antes de nada: carga el EA «Grid Percentage Price Oscillator» en el Probador de estrategias de MetaTrader 5, activa el modo visual y observa cada cruce de PPO que acepta y cada uno que deja pasar.
IMPUELSO EN PORCENTAJE, POR LO QUE UN ÚNICO PARÁMETRO INTERPRETA CUALQUIER MERCADO.
El oscilador de precio porcentual (PPO) es el primo más versátil del MACD. Utiliza las mismas dos medias exponenciales, 12 y 26, pero divide su diferencia entre la media lenta, de modo que el resultado es un porcentaje. Una lectura de 0,20 significa lo mismo en el EURUSD a 1,08, en el oro a 2.600 y en un índice a 20.000. Esto hace que un único conjunto de valores de alerta se adapte mucho mejor a distintos símbolos que los puntos brutos del MACD. El EA «Grid Percentage Price Oscillator» espera a que el PPO cruce su línea de señal de 9 barras en una barra completada, desde el lado alejado del cero, comprueba que el mercado se esté moviendo lo suficiente como para que sea relevante y que la tendencia general coincida, y solo entonces permite que el motor de rejilla abra el primer nivel. A partir de ahí, el motor realiza el trabajo paciente: acumula pequeños cierres de grupos y recorta las órdenes antiguas más pesadas poco a poco.
Cinco cosas que debes saber antes
• Entrada: el PPO cruza al alza su línea de señal mientras sigue por debajo de cero (COMPRA), o a la baja mientras está por encima de cero (VENTA), según se lee en una barra cerrada. Las señales aceptadas no se repintan.
• El oscilador se calcula dentro del EA a partir de los cierres: 100 × (EMA 12 – EMA 26) / EMA 26; la señal es la EMA 9. Sin archivo de indicador, sin DLL, sin solicitud web.
• Un «Range Guard» omite los periodos de poca actividad y un filtro EMA 200 mantiene las entradas en el sentido de la tendencia principal. Se incluye un modo de cruce de la línea cero para entradas más lentas y tardías.
• Novedad de este producto: el «Histogram Guard», que puede rechazar cruces que solo rozan la línea de señal. Viene desactivado de fábrica, y el motivo concreto se indica a continuación.
• Sin stop loss ni cierre forzado de todas las posiciones. Los límites detienen los nuevos niveles; la cartera abierta permanece bajo gestión.
----------
Empieza aquí (5 minutos)
1. Aplícalo al EURUSD H1 y deja todos los parámetros en sus valores por defecto (primer lote de 0,01, escalera aditiva, espaciado ATR).
2. Configura RunMode en «Scan only» para la primera sesión. El panel muestra cada plan; no se envía ninguna orden.
3. Fíjate en los puntos y flechas grises del gráfico: indican qué cruces pasados habrían aceptado o rechazado los filtros.
4. Cuando los planes te parezcan lógicos, pulsa «ARMED» en el panel.
5. Repite las ejecuciones del simulador que se indican a continuación con los datos de tu propio bróker antes de operar con dinero real; el spread, el swap y la comisión influyen en el resultado. ¿Tienes más de un gráfico? Asigna a cada copia su propio EAMagicNumber y HedgeMagicNumber.
----------
Reproduce nuestras cifras
Strategy Tester, parámetros predeterminados, OHLC de 1 minuto, apalancamiento 1:100, del 01/01/2025 al 30/09/2026, datos de demostración de un bróker. Con la misma configuración y el mismo periodo, deberías obtener resultados similares a estos:
• EURUSD H1, 10 000 $: resultado neto +631,73, caída máxima del capital de 351,06 (3,46 %), 265 operaciones. Sin stop-out ni rechazo de margen.
• EURUSD H1, 1 000 000 $: resultado neto +631,73; caída máxima del capital de 351,06 (0,04 %); 265 operaciones. Sin stop-out ni denegación de margen.
• XAUUSD D1, 10 000 $: resultado neto +15,20; caída máxima del capital de 32,01 (0,32 %); 4 operaciones. Sin stop-out ni denegación de margen.
• XAUUSD D1, 1 000 000 $: resultado neto +15,20; caída máxima del capital: 32,01 (0,00 %); 4 operaciones. Sin stop-out ni denegación de margen.
Considera estos datos como un periodo pasado, no como una previsión. La caída del saldo es la misma en ambos depósitos porque los lotes no aumentan con el saldo, por lo que 351,06 es aproximadamente el 3,5 % de 10 000 $ y supone una proporción mayor en una cuenta más pequeña; no se han probado depósitos inferiores a 10 000 $. Cuatro operaciones con oro en 21 meses son muy pocas para evaluar el comportamiento con este metal. Los niveles de stop se fijaron una sola vez a ojo para este mismo periodo, lo que los favorece. No se verificaron las cuentas de compensación.
----------
El «Histogram Guard» y por qué se activa
La idea: un cruce en el que el PPO apenas supera su línea de señal se considera un empate, no un «push», por lo que podría exigirse que la barra del evento mostrara una diferencia mínima (InpPPOHistMin) entre las dos líneas. Lo probamos con todos los demás parámetros en sus valores por defecto. EURUSD H1, 10 000 $, diferencia 0,01: resultado neto +92,38, caída máxima 131,09 (1,30 %), 35 operaciones. Desactivado: resultado neto +631,73, caída máxima del 351,06 (3,46 %), 265 operaciones. XAUUSD D1, 10 000 $, gap de 0,05: ninguna operación (neto 0,00), frente a 4 operaciones y +15,20 con el «guard» desactivado. El filtro redujo la caída máxima en un 63 %, pero el beneficio neto en un 85 %, por lo que el beneficio por unidad de caída máxima descendió de aproximadamente 1,8 a unos 0,7, y en el oro eliminó todas las operaciones. Eso no es más seguro, solo más discreto, por lo que se mantiene en 0. Está ahí si quieres cruces mucho menos frecuentes y más fuertes: prueba con un valor pequeño, como 0,005 en el EURUSD, y compáralo con tus propios datos. Las unidades son porcentajes de PPO, por lo que un valor útil en el oro o en los índices es mayor que en un par de divisas principal.
----------
¿Por qué el oscilador de precio porcentual (PPO)?
Una estrategia de rejilla necesita una señal de salida clara y, a continuación, un motor que la impulse. El PPO es una buena señal de salida por tres razones. Reacciona ante un cambio de velocidad, no solo ante un cambio de precio, por lo que el cruce se produce cuando un movimiento empieza a cambiar de dirección. Su línea de señal ofrece un único evento inequívoco en una barra cerrada. Y, al tratarse de un porcentaje, los mismos umbrales significan más o menos lo mismo en todos los valores y en todos los años en los que el precio se ha alejado mucho de su punto de partida. Los inconvenientes: ambas medias se calculan a partir de cierres anteriores, por lo que el cruce se produce después de que el cambio de tendencia haya comenzado, y en un mercado lateral el PPO puede oscilar en torno a su línea de señal. La regla lateral, el Range Guard, el filtro de tendencia y la brecha de señal de 30 barras están ahí precisamente para eso.
----------
Un ciclo, paso a paso
1. Lectura. Cada nueva barra reconstruye las dos medias, el PPO y su línea de señal, a partir de las barras completadas.
2. Cruce. En el modo predeterminado, el PPO debe cruzar su línea de señal: al alza por debajo de cero para una COMPRA, a la baja por encima de cero para una VENTA. En el modo cero, el evento es un cruce de la línea cero.
3. Histogram Guard, opcional. La diferencia entre el PPO y la línea de señal en la barra del evento debe ser, como mínimo, InpPPOHistMin.
4. Límite de rango. Las últimas 20 barras deben abarcar al menos 5 ATR, de modo que se omiten los rangos muy estrechos.
5. Filtro de tendencia. Por defecto, el cierre debe situarse en el lado coincidente de la EMA 200. También puede desviarse de ese lado o desactivarse.
6. Sincronización. Las señales aceptadas se mantienen separadas por un intervalo de barras, y una señal puede esperar unas cuantas barras si el nivel no se puede colocar de inmediato.
7. Escalera. Los niveles siguen el ATR o puntos fijos, con un mínimo, un máximo y una congelación opcional. Las rejillas de COMPRA y VENTA pueden ejecutarse juntas o por separado.
8. Gestión de posiciones. Los grupos de órdenes más antiguas y más recientes se cierran cuando su resultado conjunto, tras aplicar el swap y la comisión, alcanza el objetivo. Si la orden más antigua es demasiado voluminosa, se cierra una parte de la misma en su lugar.
9. Comprobaciones de seguridad. Se bloquea cualquier cierre que reabriría un nivel de inmediato; cada tramo se confirma en el historial de operaciones; los tramos fallidos se vuelven a intentar; y se descarta un plan si el libro de órdenes ha cambiado antes del envío.
10. Ciclo de cobertura, opcional. Desactivado por defecto y no se ha utilizado en nuestras pruebas. Cuando está activado, mantiene un par equilibrado en un símbolo elegido y lo retira en partes iguales, pagadas mediante un pequeño recargo sobre los cierres que la red ya realiza.
----------
El panel
El panel se sitúa a la izquierda, de modo que el lado derecho y la escala de precios quedan despejados. Muestra el símbolo, el número mágico, un indicador de estado, el modo de rejilla, el paso de lotes, el espaciado, el resultado acumulado, el libro de órdenes, el plan de cierre de cada lado y la tabla de órdenes. La fila PPO PULSE muestra las tres longitudes, los valores del PPO y de la señal en la última barra cerrada, si el PPO está subiendo (UP) o bajando (DN), y las barras transcurridas desde el último cruce. La fila HIST GUARD muestra el lado al que se inclina el PPO, el modo, la brecha del histograma con OPEN, HOLD u off, la anchura del Range Guard en ATR con su estado y el lado de la EMA. En el gráfico en tiempo real se marca cada cruce de las últimas 150 barras: una pequeña flecha cuando se acepta, un punto gris cuando un guard lo rechaza. Los botones permiten alternar entre «Armed» / «Scan only», «Pause» / «Resume», marcas en el gráfico y segmentación. La tarjeta «Hedge Vault» se acopla debajo del panel principal; con la cobertura desactivada, permanece oculta. No se dibuja nada en un backtest no visual.
----------
Límites que controlas
Ningún ajuste cierra la posición por ti; los límites solo detienen nuevos niveles.
Cada orden pasa por una comprobación de margen libre con un margen de seguridad antes de enviarse.
Los límites máximos de niveles por rejilla, órdenes por lado y lotes por orden mantienen la escalera finita. MinMarginLevelPercent y MaxAccountRiskPercent están desactivados por defecto; configúralos para tu propia cuenta.
Una medida de seguridad opcional relacionada con el marco temporal del nivel de margen desplaza la señal y el espaciado a un marco temporal superior a medida que desciende el margen. Está desactivada por defecto y no se aplicó en nuestras pruebas.
Las copias se mantienen separadas por símbolo y número mágico.
La función «Scan» solo muestra todas las decisiones sin enviar ni una sola orden.
----------
A quién va dirigido
A los operadores que prefieren entrar cuando cambia el impulso en lugar de cuando el precio se dispara, que se conforman con muchos cierres pequeños, que quieren un conjunto de reglas que puedan aplicar tanto a un par de divisas como al oro, y que ajustarán el tamaño de los lotes a su saldo.
A quién NO va dirigido
• Cualquiera que necesite un stop loss en cada orden. Esta estrategia de rejilla no incluye ninguno por diseño.
• Cualquiera que espere una rentabilidad mensual fija o que su capital se duplique rápidamente. El resultado probado anteriormente es modesto, y es el más realista.
• Cuentas pequeñas que operan con lotes grandes sin supervisión. Una tendencia alcista prolongada puede mantener la posición abierta durante semanas.
• Operadores que no la prueben primero. Si te saltas el Strategy Tester de tu propio bróker, esta no es la herramienta adecuada para ti.
----------
Preguntas frecuentes
¿Se repintan los gráficos? Las señales aceptadas, las marcas en el gráfico y ambas filas del panel utilizan únicamente barras cerradas.
¿Es el PPO clásico? Sí, los ajustes estándar 12/26/9 con medias exponenciales de los cierres. Los valores exactos en las primeras cientos de barras del historial pueden diferir ligeramente de otras plataformas debido a cómo se calculan las medias; el EA las ajusta en 400 barras adicionales.
¿En qué se diferencia de una cuadrícula MACD? Es de la misma familia, pero con una escala diferente. El MACD se expresa en puntos de precio, por lo que sus umbrales útiles varían según el símbolo y el nivel de precios. El PPO se expresa en porcentaje, por lo que, en su mayoría, no varían.
¿En qué mercados se ha probado? EURUSD H1 y XAUUSD D1. El resto lo debes probar tú.
¿Qué debería cambiar primero? InpPPOSideRule (si se desactiva, se obtienen muchas más entradas) y, a continuación, InpPPORangeMinATR. Cambia un parámetro cada vez y observa la caída máxima junto al resultado neto.
¿Por qué hay tan pocas operaciones con oro? En un gráfico diario, es poco frecuente que una señal cruce por el lado alejado del cero y que la EMA 200 se sitúe en el mismo lado, y el intervalo de 30 barras lo reduce aún más.
¿Modo de línea de señal o modo cero? El modo de línea de señal comienza antes, cerca del punto de inflexión; el modo cero espera a que las medias se crucen y comienza más tarde. Prueba ambos en tu símbolo.
¿Cuentas de compensación? Existe un límite de margen independiente para ellas, pero el comportamiento de la compensación no está verificado.
----------
Todas las entradas
Niveles de la rejilla
TradeMode: dos cuadrículas, COMPRA y VENTA, por defecto, o solo en una dirección.
GridSpacePoints: distancia entre niveles en el modo de espaciado fijo (25).
GridSpaceMultiplier: por encima de 1,0 amplía los niveles más profundos (1,0 = par).
MaxGridLevels: número máximo de niveles en una rejilla (1000).
UpDirectionIsBuy: en qué sentido se activa un movimiento alcista.
EAMagicNumber: número de las órdenes de rejilla (9769250).
GridOrderComment: texto de las órdenes de rejilla (GPPO).
OneOrderPerBar: como máximo un nuevo nivel por barra.
Lotes
InitialLotSize: volumen del primer nivel (0,01).
LotSizingMode: aditivo por defecto; multiplicativo como alternativa.
LotMultiplier: factor por nivel en modo multiplicativo (1,25).
LotAddStep: incremento por nivel en modo aditivo (0,01; 0 utiliza el lote inicial).
MaxOrderVolume: orden única más grande (1,0).
UseAutoLot: vincula el lote inicial al saldo (desactivado).
AutoLotBaseBalance: saldo que coincide con el lote inicial (1000).
AutoLotAllowDecrease: permite que el lote automático sea inferior al lote inicial (desactivado).
Espaciado ATR
GridSpacingMode: ATR por defecto; puntos fijos como alternativa.
ATRTimeframe: marco temporal del ATR (gráfico actual).
ATRPeriod: duración del ATR (14).
ATRSpacingFactor: espaciado como múltiplo del ATR (1,0).
ATRBarShift: barra ATR; 1 es la última barra completada.
ATRMinSpacingPts: espaciado mínimo en puntos (50; 0 = ninguno).
ATRMaxSpacingPts: espaciado máximo en puntos (5000; 0 = ninguno).
ATRFreezeOnStart: mantiene un único espaciado durante todo el ciclo (desactivado).
Objetivo de beneficio
DesiredProfitPerClosure: objetivo base en la divisa de la cuenta (2,0).
ProfitMultiplier: escala final, de 1,00 a 2,00.
ProfitTargetMode: escalado por defecto: los libros de órdenes más grandes y profundos apuntan a objetivos más altos.
ProfitVolumePower: cómo el volumen de cierre eleva el objetivo (1,0; 0 desactivado).
ProfitDepthBonus: objetivo adicional por cada nivel abierto adicional (0,10).
ProfitMaxMultiple: límite máximo del objetivo escalado en múltiplos de la base (50).
ProfitMaxReachFraction: mantiene el objetivo dentro de esta fracción de un paso de la cuadrícula (0,50).
Escáner de fragmentos
UseMultiLegScan: comprueba los grupos de órdenes múltiples antes que el par simple (activado).
MaxOldestLegs: el número máximo de órdenes antiguas en un cierre (3).
MaxNewestLegs: el número máximo de órdenes más recientes en un cierre (6).
ScanPriority: clasificación de los grupos que cumplen los requisitos; por defecto, el grupo más grande va primero.
NeverBankLessThanPair: un grupo también debe superar el objetivo del par (activado).
RequireCloseVolumeExceedsTarget: el volumen más reciente debe ser superior al volumen más antiguo (activado).
MinCloseVolumeRatio: ratio requerido entre esos volúmenes (1,5).
División del objetivo
EnableTargetSlicing: permite el cierre parcial de la orden más antigua (activado).
FragProfitWeightPower: peso de las ganancias por lote cerrado (1,5).
FragMinSlicePercent: porción mínima, porcentaje de la orden objetivo (20).
FragAllowMultiCloser: varias órdenes nuevas pueden financiar una porción (activado).
FragPreferFullClosure: se da prioridad al cierre completo cuando ambas opciones son posibles (activado).
Protección contra reapertura
ReopenGuard: bloquea los cierres que reabrirían un nivel de una sola vez (basado en pasos).
ReopenGuardCushion: distancia de seguridad como porcentaje de un paso (0,90).
Protección de la cuenta
MinMarginLevelPercent: no se abren nuevos niveles por debajo de este nivel de margen (0, desactivado).
MaxAccountRiskPercent: no se establecen nuevos niveles más allá de esta pérdida flotante, expresada en porcentaje del saldo (0, desactivado).
NetMaxMarginPercent: solo para compensación; límite máximo del margen de la posición neta, porcentaje del capital propio (5,0).
MaxTotalOrders: límite absoluto de órdenes por lado (1000).
Ejecución y comprobaciones
RunMode: «Armed» (activado) o «Scan» (solo escaneo).
CloseSequence: orden en el que se envían las partes; por defecto, la más antigua primero.
MaxSlippagePoints: deslizamiento permitido (30).
MaxSpreadPoints: no se opera por encima de este spread (7500).
MinSecondsBetweenClosures: pausa entre cierres por cada lado (5).
CloseAttemptsPerLeg: intentos antes de pasar a la cola de reintentos (3).
VerifyTimeoutSeconds: tiempo durante el que se sigue una posición bloqueada (90).
DeferWhenMarketClosed: espera a que comience la sesión en lugar de detenerse (activado).
MarketClosedRetrySeconds: intervalo entre reintentos mientras se rechazan las órdenes (30).
AutoResumeAfterSeconds: una interrupción se restablece automáticamente tras este número de segundos (300; 0 espera a que actúes).
NoPartialRetryMinutes: los cierres parciales se vuelven a intentar tras este número de minutos tras un rechazo del bróker (15; 0: nunca).
AbortIfBookChanged: descarta un plan si cambia una parte de la operación (activado).
UseFullCommission: contabiliza la comisión en ambas partes (activado).
CommissionPerLot: valor por defecto (0: consulta el historial).
CloseOrderComment: texto al cerrar operaciones.
Ciclo de cobertura
EnableHedgeCycle: interruptor principal (desactivado).
Símbolos de cobertura: lista separada por comas; repite un símbolo para más turnos (XAGUSD).
Rotación de símbolos de cobertura: cómo se selecciona el siguiente símbolo (por ciclo).
HedgeMaxSymbolsInTester: límite de rotación solo en el simulador (2; 0 = ninguno).
HedgeCycleLots: lotes en cada lado del par (0,01).
HedgeSliceLots: lotes retirados por cada lado en cada tramo (0,01).
HedgeFragmentBonus: bonificación sobre el coste del tramo (100).
HedgeBonusIsPercent: la bonificación es un porcentaje; «false» significa dinero (activado).
HedgeMaxSurcharge: límite de dinero por cierre (0, ninguno).
HedgeMaxSurchargePercent: aumento máximo de cualquier objetivo de cierre, en porcentaje (50).
HedgeMagicNumber: número de las posiciones de cobertura; debe ser distinto de la cuadrícula (9769251).
HedgeReopenOnFinish: abre un nuevo ciclo cuando finaliza uno (activado).
HedgeStartRequiresTrade: el primer ciclo espera una orden de la cuadrícula (activado).
HedgeIntegritySeconds: intervalo de comprobación del saldo de las posiciones (5).
HedgeAutoRepair: repara automáticamente una posición aislada (activado).
HedgeNakedAction: qué hacer con una posición aislada; por defecto, volver a cubrirla.
HedgeMaxSpreadPoints: límite del spread de cobertura (0: desactivado).
HedgeSlippagePoints: margen de deslizamiento de la cobertura (30).
HedgeAttemptsPerLeg: intentos por tramo de cobertura (3).
HedgeVerifyTimeout: tiempo de espera para una posición de cobertura bloqueada (90).
HedgeCommissionPerLot: comisión de cobertura por defecto (0: consulta el historial).
HedgeOrderComment: texto en las operaciones de cobertura.
Día de liquidación semanal
WeeklyCashDay: pausa los nuevos ciclos y franjas en torno a las retiradas (desactivado).
CashDayOfWeek: 0 para domingo, 1 para lunes, y así sucesivamente (1).
CashCutoffHour: hora del servidor a partir de la cual no se activan nuevas particiones (21).
Panel y gráfico
ShowPanel: panel activado o desactivado.
PanelX y PanelY: distancia desde el borde del gráfico (12, 15).
PanelFontSize: tamaño base del texto (9).
ShowArabic: línea de segundo idioma (activada).
ShowChartMarks: planos y niveles dibujados en el gráfico (activado).
MaxTableRows: número de filas por cuadrícula (13).
PanelCorner: esquina a la que está anclado el panel.
Desencadenante de entrada
EntryTriggerMode: la estrategia PPO por defecto.
SignalBarShift: 1 es la última barra completada.
SignalBarsDelay: barras entre señales aceptadas (30; 0 cada una).
SignalValidBars: barras durante las que una señal sigue siendo válida (3).
SignalAllowBuy y SignalAllowSell: activan o desactivan cada lado.
SignalReverse: invierte la dirección (desactivado).
Oscilador de porcentaje de precio
InpPPOFast: longitud de la EMA rápida en barras (12).
InpPPOSlow: longitud de la media móvil exponencial (EMA) lenta en barras, más larga que la rápida (26).
InpPPOSignal: longitud de la media móvil exponencial (EMA) de la línea de señal trazada sobre el propio PPO (9).
InpPPOMode: 0, el PPO cruza su línea de señal; 1, el PPO cruza el cero (0).
InpPPOSideRule: solo en el modo de línea de señal; un cruce de COMPRA debe producirse por debajo de cero y un cruce de VENTA por encima de cero, de modo que las entradas provengan del lado más alejado (activado).
InpPPOHistMin - Histograma de protección: diferencia mínima entre el PPO y su línea de señal en la barra del evento, en porcentaje del PPO (0: desactivado; véase la prueba anterior).
InpPPORangeMinATR - Protector de rango: anchura mínima de la ventana en ATR (5; 0 desactivado).
InpPPORangeBars - Rango de protección: longitud de la ventana en barras (20).
InpPPOATRPeriod: duración del ATR para el filtro de rango (14).
InpPPOTrendFilter: 1 a favor de la EMA, 2 en contra, 0 desactivado (1).
InpPPOTrendMAPeriod: duración de la EMA de tendencia (200).
InpShowSignalArrows: flecha que indica dónde se ha activado un ciclo (activado).
InpShowPPOOnChart: cruces anteriores en el gráfico en tiempo real, con flecha o punto gris (activado).
Depuración
DebugMode: detalles adicionales en el diario (desactivado).
Seguridad del margen en el marco temporal
UseMarginTFSafety: interruptor principal (desactivado).
Level1MarginPct y Level1TF: al alcanzar el 6000 %, el análisis pasa a M15.
Level2MarginPct y Level2TF: al alcanzar el 5000 %, la operación pasa a H1.
MarginTFHysteresisPct: recuperación necesaria antes de retroceder (500).
----------
El riesgo, sin rodeos
El trading en rejilla es arriesgado. Aumenta las posiciones perdedoras, no utiliza stop loss y una tendencia alcista puede mantener la posición abierta durante mucho tiempo o, con lotes demasiado grandes para el saldo, acabar en un stop-out y una pérdida considerable. El Oscilador de Porcentaje de Precio se basa en precios históricos y no puede prever la siguiente barra. No se garantiza ningún beneficio. Elige lotes que puedan soportar una racha negativa, pruébalo con tu propio bróker y arriesga solo el dinero que puedas permitirte perder. No se necesitan DLL ni archivos adicionales.
Si lo utilizas, por favor, deja una reseña sincera sobre cómo te ha funcionado, ya sea buena o mala; esto ayudará al siguiente operador a tomar una decisión.
