Modificacion ea

工作已完成

执行时间20 小时
员工反馈
Buena disposición a trabajar en proyectos

指定

Señores,

Estoy realizando un robot en mql4 pero ha llegado un momento en el que tengo problemas. Antes de nada les digo que el robot una vez compilado no da ningún fallo ni aviso.

Les expongo la idea del robot y uno de los problemas para que me den presupuesto.

1.- Una función calcula el nivel de precio en el que tendría que entrar si se dan determinadas condiciones (
calcula_nivell_preu_retroces_veles_0_1).
2. Otra función establece si se dan las condiciones (
condicions_per_fixar_valors_obertura_segment_vela_0_1).
3. Otra función (
actua_nivell_preu_retroces_veles_0_1) establece que si de dan esas condiciones, se deben grabar los valores de apertura de la siguiente función hasta que vuelvan a darse las condiciones.
4. La función
calcula_valors_obertura_compra_segment_vela_0_1 graba los valores de apertura.
5. Mediante un Comment compruebo los valores de las funciones numero 1 y 4, como se vé en el gráfico que les copio y la vela de apertura siempre es 0.

Es decir, en la función 1 se calculan los valores de posible entrada, pero sólo si se dan las condiciones de la función 3 se convierten, mediante la función 4 en valores de apertura, que sólo en un tick serán los mismos. Pueden pasar varias velas hasta que vuelvan a darse las condiciones de la función 3, momento en el cual se sobreescribiran nuevamente los valores de la función 1 en la 4.
Sin embargo, en el backtest, los valores de la función 1 y 4 són los mismos en todos los ticks y la vela de apertura siempre es 0.


 

double calcula_nivell_preu_retroces_veles_0_1(int num_vela_a_avaluar)

  {

   niv_1_alc_vela_0_1=(valor_high_mes_alt_veles_0_1-(tamany_veles_0_1*(Ordre_Nivell_1/100)));

   niv_2_alc_vela_0_1=(valor_high_mes_alt_veles_0_1-(tamany_veles_0_1*(Ordre_Nivell_2/100)));

   ...

   niv_5_baix_vela_0_1=(valor_low_mes_baix_veles_0_1+ (tamany_veles_0_1*(Ordre_Nivell_5/100)));

 

   return(0);

  }

Los valores de la izquierda se obtienen en cada tick del cálculo de las variables de la derecha.

Otra función:

 

double (o void) calcula_valors_obertura_compra_segment_vela_0_1(int num_vela_a_avaluar)

{

niv_1_alc_ob_v_0_1=niv_1_alc_vela_0_1;                   

tp_1_alc_ob_v_0_1=tp_nivell_1_alc_veles_0_1;

sl_1_alc_ob_v_0_1=sl_veles_0_1;

niv_2_alc_ob_v_0_1=niv_2_alc_vela_0_1; 

...

numero_primera_vela_compra_del_segment_veles_0_1 = num_vela_a_avaluar;

   return(0);

}

 

Con esto ya he conseguido darle un valor en cada tick, pero es el mismo valor que tenía en la derecha, en todos los ticks. Cómo quiero que se graben estos valores sólo cuando se den determinadas condiciones *, añado ahora la siguiente función:

 

int condicions_per_fixar_valors_obertura_segment_vela_0_1(int num_vela_a_avaluar)

{

if((valua_nivell_preu_retroces_veles_0_1(num_vela_a_avaluar) == 1) && ((Bid <= High[0]) && (Bid >=  sl_5_alc_ob_v_0_1)))

   {

      return(1); // 1 = es dan las condiciones para fijar los valores de compra   }

 

 else if((valua_nivell_preu_retroces_veles_0_1(num_vela_a_avaluar) == -1) && ((Bid >= Low[0]) && (Bid <=  sl_5_baix_ob_v_0_1)))

   {

      return(-1); //se dan las condiciones para fijar los valores de venta

   }

   return(0);

}

 

* Estos valores se deben mantener hasta que sean substituidos por otros valores cuando se vuelvan a dar las mismas condiciones.

 

Para ejecutar la operación de compra o venta tengo la siguiente función:

 

int actua_nivell_preu_retroces_veles_0_1(int num_vela_a_avaluar)

  {

   int num_ticket;

         if(valua_nivell_preu_retroces_veles_0_1(num_vela_a_avaluar)==1)

           {             if(valua_ampliacio_alt_veles_0_1(num_vela_a_avaluar)==-1)

              { // si la vela no se ha ampliado

               if(calcula_num_marketbuys_niv_1(Numero_Magico) < Max_compres_nivell_1_veles_0_1)

{ // si hay menos órdenes abiertas que las permitidas

if(condicions_per_fixar_valors_obertura_segment_vela_0_1(num_vela_a_avaluar) == 1)

{ // condiciones para fijar valores                  

calcula_valors_obertura_compra_segment_vela_0_1(num_vela_a_avaluar);

} // - condicions fixar valors

               num_ticket=abrirmarketbuy_veles_0_1(Lot_nivell_1,sl_veles_0_1, tp_1_alc_ob_v_0_1,Numero_Magico,Comentario);

if(num_ticket!=-1)

{ // si hay tiquet nuevo

...

}

 

Ahora deberían grabarse los valores y no lo consigo.


Por otra parte la variable numero_primera_vela_compra_del_segment_veles_0_1 siempre da = 0 en todo momento. Está bien escrita esta línea ?


 

 


Un saludo,


附加的文件:

PNG
GBPUSDM15.png
28.6 Kb

反馈

1
开发者 1
等级
(2)
项目
3
33%
仲裁
0
逾期
0
空闲
2
开发者 2
等级
(12)
项目
13
31%
仲裁
1
0% / 100%
逾期
1
8%
空闲
3
开发者 3
等级
项目
0
0%
仲裁
0
逾期
0
空闲
相似订单
1. Entrada con señal Chandelier y por encima de la EMA 21 2. stop loss por debajo de la vela de entrada 3. Con 1 ATR a mi favor stop a be 4. Take profit 2:1 5. Testar sistema
Necesito arreglar las alertas de mi indicador SMC Order Blocks, este es un indicador personalizado que me hicieron hace un tiempo. Este indicador personalizado ya tiene varios tipos de alertas incorporadas, pero necesito arreglar unas en especifico, conservando las otras alertas existentes sin cambios ya que esas no tienen errores. La alerta son para un patrón específico de Order Blocks. Este indicador proporciona de
Requiero realizar un bot dnde la estrategia es de cierres parciales trabajando en contratendencia ayudado buscando retrocesos pequeños desde 25 pips poco mas o poco menos para ir bajando el lotaje y favorecer el profit en cada operación, de otro bot que es una tendencia inteligente donde este segundo bot trabaja a favor de la tendencia cuidando la contratendecia por el maxorder deteniendo hasta llega al tp o al sl
Bot Fondeo 40 - 300 USD
Estoy buscando un desarrollador especializado en trading algorítmico para crear un BOT que gestione cuentas de fondeo, tanto de alta frecuencia (HFH) como cuentas normales en FTMO. El BOT debe ser capaz de operar con precisión en entornos de alta volatilidad y baja latencia, optimizando la ejecución de órdenes para evitar slippage. Además, debe integrarse con plataformas populares como MetaTrader o cTrader y tener la
Hola! Estoy buscanco generar un EA que funcione en MT5. En base a un rango horario determinado, tiene que generar un rango, y en base a este rango abrir una operacion con un SL determinado. el TP y el RR deben ser determinados por el usuario. solo abrira una operacion por activo

项目信息

预算
30+ USD
VAT (21%): 6.3 USD
总计: 36.3 USD
开发人员
27 USD