Se necesita modificar órdenes de entrada en EA de reversion a la media

Trabajo finalizado

Plazo de ejecución 3 días
Comentario del Cliente
Respuesta rápida, ejecución perfecta y ofrece alternativas aunque no se las hayas planteado, no se limita a hacer, sino a mejorar. Excelente profesional y trato inmejorable
Comentario del Ejecutor
Excelente cliente, un placer trabajar con él.

Tarea técnica

Necesito un desarrollador que ajuste una EA actual desarrollada para que realice operaciones de compra y de venta. El código es sencillo, es una reversión a la media con desviaciones típicas y EMA, algo básico. La lógica para comprar y vender es abrir una operación cuando el precio haya cerrado en niveles extremos y cerrar cuando alcance el punto promedio, básicamente como cualquier estrategia de reversión a la media.

La estrategia emplea dos desviaciones típicas de una EMA central, de forma que cuando el precio cierre por encima de una y debajo de la otra al mismo tiempo se ejecuten operaciones de compra o venta, según corresponda, y se cierre automáticamente una vez el precio haya alcanzado la EMA central. El sistema no tiene Take Profits ni Stop Loss específicos como tal, sino órdenes de salida, las cuales pueden producir o ganancias o pérdidas. Igualmente es un sistema que solo permite una única dirección al mismo tiempo. Está pensado para trabajar en velas de 1 minuto.

El lote es una variable indicada como una cantidad fija que puede ser modificada arbitrariamente, así como el periodo de la EMA y las desviaciones de la misma. Por la lógica de la estrategia, nunca se va a dar que en una posición abierta se ejecuten señales para una posición contraria, pueden darse ejecuciones en la misma dirección que la entrada inicial que NO serán ejecutadas, de forma que se mantendrá una única posición en una única dirección cada vez que se den las condiciones para una señal de compra.

La lógica es la siguiente:

1) Detecta que el precio cierra por encima de una desviación típica del precio y debajo de la otra.

2) Ejecuta la orden de compra o de venta, dependiendo de cuáles sean las desviaciones que sobrepasa y cuales no (está todo muy claramente escrito en el código)

3) Una vez el precio cierre por debajo o por encima de la EMA, la operación se cerrará automáticamente

Listo, necesito alguien que desarrolle las órdenes de entrada y salida del mercado únicamente. Pongo una parte del código para que puedan hacerse a la idea:

#include <Trade/Trade.mqh>

//--- input parameters
input double   Dev1=2.0;
input double   Dev2=2.25;
input int      emaPeriod=12;
input double   DefaultQuantity=1;

int ema_handle, bollinger_handle1, bollinger_handle2;
double Close[];

CTrade trade;

----------------
void OnTick()
  {  
   //--- Calculation of stdevs and EMA
   double mid = iMA(_Symbol, PERIOD_CURRENT, emaPeriod, 0, MODE_EMA, PRICE_CLOSE);
   double dev = iStdDev(_Symbol, PERIOD_CURRENT, emaPeriod, 0, MODE_EMA, PRICE_CLOSE);
   double up1 = mid + Dev1 * dev;
   double low1 = mid - Dev1 * dev;
   double up2 = mid + Dev2 * dev;
   double low2 = mid - Dev2 * dev;
   
   CopyClose(_Symbol,PERIOD_CURRENT,0,1,Close);
    
   if (PositionSelect(_Symbol) == false) {
      if (up1 <= Close[0] && up2 >= Close[0]) {
        trade.Sell(DefaultQuantity,_Symbol,0.0,0.0,0.0,"");
      }
      else if (low1 >= Close[0] && Close[0] >= low2) {
         trade.Buy(DefaultQuantity,_Symbol,0.0,0.0,0.0,"");               
      }

   else {
      if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL && mid >= Close[0]) {
         trade.PositionClose(_Symbol);
      }
      else if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY && mid <= Close[0]) {
         trade.PositionClose(_Symbol);
      }
   }
}


Han respondido

1
Desarrollador 1
Evaluación
(93)
Proyectos
133
35%
Arbitraje
13
38% / 31%
Caducado
32
24%
Libre
2
Desarrollador 2
Evaluación
(184)
Proyectos
317
24%
Arbitraje
23
35% / 13%
Caducado
24
8%
Libre
Ha publicado: 3 ejemplos
3
Desarrollador 3
Evaluación
(296)
Proyectos
475
40%
Arbitraje
105
40% / 24%
Caducado
80
17%
Ocupado
Ha publicado: 2 ejemplos
4
Desarrollador 4
Evaluación
(62)
Proyectos
92
16%
Arbitraje
4
0% / 25%
Caducado
2
2%
Libre
Solicitudes similares
Ofrezco un sistema de trading automatizado que conecta señales de MetaTrader 4 con ejecución automática de operaciones en Polymarket. El sistema ya está desarrollado y funcionando correctamente. Este bot permite copiar señales generadas por un indicador personalizado en MT4 y ejecutar operaciones automáticamente en mercados de predicción de criptomonedas. Cómo funciona el sistema Un indicador personalizado en MT4
Diseño simple de página web, para venta de vinos con tienda online y grupo exclusivo para clientes. Además se incorporarán otros artículos relacionados con el mundo del.vino para su venta

Información sobre el proyecto

Presupuesto
40+ USD
Plazo límite de ejecución
a 10 día(s)