Necesito ayuda para crear un EA MUY simple

 
Nunca he creado un EA antes, pero tengo un comercio que hago que sucede cada 30 minutos. lo comercio en el gbpusd. cuando la vela actual 30min rompe la vela anterior por un pip, entro a ir por 5 pips. puede ser una compra o una venta, no importa. tengo algunas otras reglas muy simples para este comercio, así que necesito un EA que hará este comercio para mí. ¿alguien puede ayudarme por favor?
 
crazfoto:
Nunca he creado un EA antes, pero tengo un comercio que hago que sucede cada 30 minutos. lo comercio en el gbpusd. cuando la vela 30min actual rompe la vela anterior por un pip, entro a ir por 5 pips. puede ser una compra o una venta, no importa. tengo algunas otras reglas muy simples para este comercio, así que necesito un EA que hará este comercio para mí. ¿alguien puede ayudarme por favor?

Podría ser capaz de ayudar en esto si no es tan complicado.

Por favor, proporcionadme más información.

 
doshur:

podría ser capaz de ayudar en esto si no es tan complicado.

Por favor, facilítenme más información.

Genial. Las únicas reglas son:


entrar cuando la vela actual rompe el alto o bajo de la vela anterior de 30m por 1 pip (alto para comprar, bajo para vender)

solo operar en velas de 20 pips o más.

el stop es el mínimo (o el máximo) de la vela de 30 minutos anterior una vez que se activa una orden

si no hay ruptura de la vela o una orden colocada, entonces espere a que se forme la siguiente vela de 30min que sea de 20 pips o mayor


Voy a intentar un trailing stop en esta operación esta semana para ver si puedo recoger algunos pips más, pero 5 pips cada media hora no está mal.


Gracias de nuevo.

 

entrar cuando la vela actual rompa el máximo o el mínimo de la vela anterior de 30m por 1 pip (alto para comprar, bajo para vender)

Entendido este punto


sólo operar una vela que es 20 pips o más.

¿Quieres decir que el alto - bajo de la vela anterior da 20 pips o más?


el stop es el mínimo (o máximo) de la vela anterior de 30min una vez que se activa una orden

Por favor, explique más


si no hay ruptura de la vela o una orden colocada, entonces espera a que se forme la siguiente vela de 30min que sea de 20 pips o más

Por favor, aclare el punto 2


:)


Saludos

Doshur

 
doshur:

entre cuando la vela actual rompa el máximo o el mínimo de la vela anterior de 30m por 1 pip (máximo para comprar, mínimo para vender)

Entendido este punto


sólo opere en velas de 20 pips o más.

¿Te refieres a que la vela anterior alta - baja da 20 o más pips?


el stop es el mínimo (o el máximo) de la vela de 30 minutos anterior una vez que se activa una orden

Por favor, explique más


si no hay ruptura de la vela o una orden colocada, entonces espere a que se forme la siguiente vela de 30min que sea de 20 pips o mayor

Por favor, aclare el punto 2


:)


Saludos

Doshur

si. la vela anterior tiene que ser de 20 pips o mas grande para operar. de esa manera tenemos un chanel de tamaño decente.


el stop

ejemplo:

el máximo anterior es 1.7500

el mínimo anterior es 1.7480

la orden de compra sería 1.7001 tp 1.7506 st es 1.7480

o la venta sería 1,7479 tp 1,7474 st es 1,7500



ahora, si tenemos nuestro rango y nunca se coloca una orden, es decir, el mercado nunca rompe el máximo o el mínimo para activar una orden. entonces el rango anterior de 30 minutos se elimina y la nueva vela de 30 minutos (que ahora se convertiría en nuestro rango anterior) se convertirá en los nuevos números para operar.


ejemplo:


el máximo anterior es 1.7550

el mínimo anterior es 1.7500

la nueva vela de 30m se mantiene entre nuestro rango y nunca se activa una orden.


obtenemos una nueva vela de 30m y el rango anterior es

máximo 1,7540

bajo 1,7520


así que este se convierte en nuestro nuevo rango para operar y el rango de 1.7550 1.7500 se ignora


Cuando una de las órdenes se activa, elimino la otra orden. Así que si la compra se activa, elimino la venta pendiente y viceversa.

 

Ya lo tengo claro.

Empezaré a codificar estos días. Déjame digerir.

:)

 
doshur:

Ya lo tengo claro.

Empezaré a codificar estos días. Déjenme digerir.

:)

Me pregunto si se podría añadir algo que duplicara los lotes introducidos después de una operación fallida sólo para la siguiente entrada después de que una operación falle.


Yo voy a operar esta semana probando un trailing stop. Nunca lo hice antes, siempre iba por 5 pips.

 
crazfoto wrote >>

Me pregunto si se podría añadir algo que duplique los lotes introducidos después de un comercio fallido sólo para el próximo entery después de un comercio falla. ayuda a mantener las pérdidas muy bajas.

Nunca lo había hecho antes, pero siempre iba a por 5 puntos.

Interesante estrategia. Escribí el siguiente código para implementarlo. El código está muy comentado por lo que debe ser capaz de entender y modificar. No obstante, la estrategia no se ha comprobado muy bien.

//+------------------------------------------------------------------+
//| 30Min Strategy.mq4 |||
//| Copyright © 2008, Brendan Kelly
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Brendan Kelly"
#property link ""
extern string Orden_Comentario = "Estrategia 30Min";
extern double Lotes = 0.1
extern int TakeProfit = 5;

static bool ReadyToTradeThisBar = false
int MagicNumber = 9999;

int inicio()
{

if (NewBar()) // Esto se hace al principio de cada nueva barra
{
CloseAllOpenOrders(); //primero se cierran las operaciones existentes de la barra anterior
if(High[1] - Low[1]>= 20*Point) //si la barra anterior tiene al menos 20 de longitud
ReadyToTradeThisBar = true; //entonces podemos negociar esta barra
si no //si no
ReadyToTradeThisBar = false; //no podemos negociar esta barra
}

/Esto se hace cada tick
if (ReadyToTradeThisBar == true) //si podemos negociar esta barra
{
if (OrdersTotal() < 1) // y si no hay ninguna operación en curso
{
if(Ask > High[1] + 1*Point) //y si el precio ask actual es mayor que el high de la barra anterior más 1
{ // entonces coloca una orden de compra
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Low[1],Ask+ TakeProfit*Point,Order_Comment,MagicNumber,0,Blue);
ReadyToTradeThisBar = false; //impedir más operaciones hasta que se cierre la operación actual
}
if(Bid < Low[1] - 1*Point) //y si el precio de venta actual es menor que el mínimo de la barra anterior menos 1
{ //entonces coloca una orden de venta
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,High[1],Bid- TakeProfit*Point,Order_Comment,MagicNumber,0,Red);
ReadyToTradeThisBar = false; //impedir más operaciones hasta que se cierre la operación actual
}
}
}

return(0);
}//fin


//##########################Funciones de apoyo ##########################################

// Esta función devuelve el valor true si la barra/vela actual se acaba de formar
bool NuevaBarra()
{
static datetime PreviousBar;
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
si no
{
return(false);
}
return(false); // en caso de que no se ejecute la sentencia if - else
}

//Cerrar todas las órdenes abiertas y pendientes
int CerrarTodasLasOrdenesAbiertas()
{
int OrderCount = OrdersTotal();
int índice = 0
int NúmeroDePedido = 0;
for(index=CuentoPedidos-1;index>-1;index--)
{
OrderSelect(index,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber)
{

TicketNumber = OrderTicket();
if(OrderType() == OP_BUY | OrderType() == OP_SELL )
{
OrderClose(TicketNumber,Lots,Bid,3,Red);
}
}
}
return(0);
}

Saludos

Brendan

 
bonito. ¿sería capaz de modificarlo para trabajar en una vela de 2hr también? <br / translate="no">
 
Veo por qué no está funcionando. está cancelando cada orden automáticamente cada media hora en lugar de dejar que el mercado lo detenga o tome ganancias. veo un montón de órdenes que habrían pagado pero el robot cerró la orden. si eso se puede cambiar creo que los resultados serán mejores
 

Gracias brendan por el código.

Todavía tengo que probar el código, pero parece que si se activa la EA, se ejecutará una orden inmediatamente si se cumplen todas las reglas, incluso si el precio actual es como 10pip por encima de la barra anterior ya.