Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

Estrategia comercial Cara o Cruz (Heads or Tails) - Asesor Experto para MetaTrader 4

Visualizaciones:
24
Ranking:
(1)
Publicado:
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

La estrategia comercial "Cara o Cruz" pertenece a la categoría de enfoques comerciales de alto riesgo y corto plazo, utilizados principalmente en el mercado de valores y el mercado Forex. Su nombre se debe a la aleatoriedad en la toma de decisiones, similar a lanzar una moneda al aire ("cara" — comprar el activo, "cruz" — vender). Esta estrategia se basa exclusivamente en decisiones intuitivas o señales aleatorias e ignora los factores fundamentales del análisis de mercado.

¿Cómo funciona la estrategia?

La estrategia se estructura de la siguiente manera:

  1. Selección del instrumento: el trader elige un instrumento financiero (acción, divisa, producto básico).
  2. Toma de decisión: la decisión de comprar o vender se toma al azar, por ejemplo, lanzando una moneda o mediante otro método para elegir entre dos posibles acciones.
  3. Cierre de la operación: la operación se cierra automáticamente después de un tiempo preestablecido o al alcanzar un nivel específico de ganancia o pérdida.

Esta estrategia no requiere una comprensión profunda de los mecanismos y análisis del mercado, pero tampoco implica un enfoque serio de gestión de riesgos.

Desventajas de la estrategia:

  1. Alto nivel de riesgo:
    • Al depender únicamente de la suerte, la probabilidad de pérdidas aumenta significativamente. La estrategia ignora cualquier indicador objetivo y recomendaciones, aumentando las posibilidades de pérdida de capital.
  2. Falta de control del riesgo:
    • Dado que la compra o venta ocurre de manera completamente aleatoria, no existe la posibilidad de una gestión razonable del capital, evaluación de riesgos y asignación de activos.
  3. Imposibilidad de éxito a largo plazo:
    • Incluso si algunas operaciones individuales resultan rentables gracias a la suerte, a largo plazo, esta estrategia probablemente conducirá a pérdidas significativas.
  4. Resultados de corta duración:
    • Los resultados positivos solo son posibles en condiciones favorables de mercado y con una gran cantidad de operaciones exitosas de pequeña escala, algo extremadamente raro en la práctica.

Aplicación de la estrategia:

La estrategia es más adecuada para traders principiantes que desean familiarizarse con los principios de funcionamiento de las plataformas bursátiles y probar el trading sin un conocimiento profundo del análisis técnico. Sin embargo, los profesionales usan esta estrategia muy raramente, prefiriendo enfoques científicamente fundamentados que tengan en cuenta el comportamiento del precio, el volumen de negociación y los indicadores fundamentales de las empresas.

Para inversores experimentados, esta estrategia representa más un método experimental para probar hipótesis que una forma estable de generar ingresos.

Por lo tanto, aunque la estrategia es simple y accesible para cualquier principiante, conlleva riesgos significativos y prácticamente no tiene posibilidades de generar ingresos sostenibles a largo plazo.


Analicemos el bloque principal de la señal de apertura aleatoria de posiciones:

if((b + s) == 0) // Si no hay posiciones activas

Aquí se verifica la condición de ausencia de posiciones abiertas. La variable b denota la cantidad de posiciones largas ("buy"), la variable s — las posiciones cortas ("sell"). Si la suma de ambas es igual a cero (b + s = 0), significa que no hay ninguna posición abierta.

if(::MathRand() % 2 == 0) // Selección aleatoria de la dirección de apertura de la posición

Dentro del bloque de condición activado anteriormente, se verifica un número aleatorio. La función ::MathRand() genera un número pseudoaleatorio de 0 a 32767 inclusive. Luego, este número se divide por módulo entre 2 (% 2); si el resto es 0, se ejecuta el siguiente bloque.

 // Enviar una orden de compra con los parámetros especificados
         ticket = OrderSend(Symbol(),OP_BUY,iStartLots,Ask,iSlippage,
                  Ask - iStopLoss * _Point,       // Precio de stop-loss (valor actual de Ask menos la distancia SL)
                  Ask + iTakeProfit * _Point,     // Precio de take-profit (valor actual de Ask más la distancia hasta TP)
                  "VR Heads or Tails",            // Comentario de la orden
                  iMagicNumber,0,clrBlue);        // MagicNumber, expiración, color azul de la flecha
                  
         // Verificar si la orden se colocó exitosamente
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Mensaje de error
         else
            Print("The OrderSend function has been completed successfully");  // Mensaje de éxito
return;

Si el número aleatorio es par (el resto de la división entre 2 es igual a 0), el robot de trading abre una posición larga (compra) con un volumen de iLots. Después de abrir la posición exitosamente, la ejecución de la función se interrumpe mediante el operador return.

 // Enviar una orden de venta con los parámetros especificados
         ticket = OrderSend(Symbol(),OP_SELL,iStartLots,Bid,iSlippage,
                  Bid + iStopLoss * _Point,       // Precio de stop-loss (valor actual de Bid más la distancia SL)
                  Bid - iTakeProfit * _Point,     // Precio de take-profit (valor actual de Bid menos la distancia hasta TP)
                  "VR Heads or Tails",            // Comentario de la orden
                  iMagicNumber,0,clrRed);         // MagicNumber, expiración, color rojo de la flecha
                  
         // Verificar si la orden se colocó exitosamente
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Mensaje de error
         else
            Print("The OrderSend function has been completed successfully");  // Mensaje de éxito
return;

Si el número aleatorio era impar (el resto de la división entre 2 era diferente de cero), se abre una posición corta (venta) con un volumen de iLots, y también se termina la ejecución posterior de la función.

Lógica final del fragmento:

  • Se verifica la presencia de posiciones abiertas del trader.
  • Si no hay posiciones abiertas, se elige una dirección de operación aleatoria: compra (larga) o venta (corta).
  • La operación abierta detiene automáticamente el funcionamiento posterior de la función.

Por lo tanto, este código es un ejemplo simple de un algoritmo que toma la decisión de abrir una posición en el mercado de manera aleatoria.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/68251

RatioZigZag RatioZigZag

A modification of the ZigZag indicator, where the reversal moment is determined by a specified coefficient.

MT4 Telegram Trade Notifier (Bot API) — Deal Alerts MT4 Telegram Trade Notifier (Bot API) — Deal Alerts

Utility MT4 EA that sends BUY/SELL deal notifications to Telegram via Bot API (WebRequest)

VR Locker Lite - Estrategia comercial basada en un bloqueo positivo VR Locker Lite - Estrategia comercial basada en un bloqueo positivo

Funciona mediante un bloqueo positivo; el robot comercial crea un bloqueo positivo y el trader decide qué hacer con él.

Bollinger Bands, BB Bollinger Bands, BB

Bollinger Bands ® Indicator (Bollinger Bands, BB) is plotted a certain number of standard deviations