![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
No me gusta tener órdenes sin SL o sin TP y cuando se utiliza superclose(), no hay TP hasta que se activa el Trailing. Así que pregunto por qué no establecer un takeprofit inicial (antes de superclose establecer uno) para ser asegurado en caso de computercrash. Es por eso que propuse dos veces el valor de la variable takeprofit.
También para iniciar en el plan de pruebas, los parámetros son:
Stoploss: 10 a 30?
Takeprofit: 20 a 100?
Marcos de tiempo: M1 M15 H4 Diario Semanal..
Divisas: 12 de la selección de Holyguy7? ¿sólo las que tienen poco spread (<=5)?
Esas son sólo sugerencias.Ok, ahora entiendo lo que quieres decir. Es bastante fácil de hacer. Yo uso un servidor dedicado con 100% de tiempo de actividad, por lo que me descuido al pensar en cosas así.
Y aquí hay algunas notas sobre el superclose(). Esperaba poder tener la capacidad de rastrear los precios de TS por el número de entrada, para que pueda establecer MaxTrades a más de 1 Y ser capaz de rastrear por menos de 10 pips.
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==ID){//Pulls in order that meets the criteria for processing
int num=0;int pos=0;
for(int b=0;b<21;b++){// this (loopB) compares the ticket# of the selected order against the number stored in the ticket array
if(tsTicket==OrderTicket() ){
num++; pos=b;// if ticket numbers match, pos is the position in the array where the trailing data is stored
Print("(",pos,") Ticket ",tsTicket[pos]," found. SL is ",tsPrice[pos]);
break;
}
}
if(num==0){ // if the loopB did not find a matching ticket number it is time to initialize the data
for(int j=0;j<21;j++){
if(tsTicket[j]==0){// this is looking for the earliest instance within the array to store the data
pos=j;
break;
}
}
tsTicket[pos]=OrderTicket();// setting the ticket number
tsok[pos]=false;// this is to determine when trailing kicks in
Print("(",pos,") New ticket initialized = ",tsTicket[pos]);
}
if (OrderType()==OP_SELL) {
if (!tsok[pos] && (OrderOpenPrice()-Ask>=TSactivation*Point || TSactivation==0 ) ) {// if the trailing factor is false, but it has hit the activation point continue
tsPrice[pos]=Ask+TrailPips*Point;// this is the new trailinf stop price
tsok[pos]=true;// it's ok to proceed with trailing stop
if(TrailPips>8){// if this distance from the current price to the new stop, then modify the order.
ModifyStopLoss(Ask+TrailPips*Point);//modifies order
}
}
if (tsok[pos] && Ask+TrailPips*Point < tsPrice[pos] ){//if the position is gaining in profit
tsPrice[pos]=Ask+TrailPips*Point;
if(TrailPips>8){
ModifyStopLoss(Ask+TrailPips*Point);
}
}
if (tsok[pos] && Ask >= tsPrice[pos] ){// if the postion hits the stop price
CloseOrder(2);
Print("Order ",tsTicket[pos]," Closed from TS");
}
}
if (OrderType()==OP_BUY) {// reverse of SELL
if(!tsok[pos] && (Bid-OrderOpenPrice() >= TSactivation*Point || TSactivation==0 ) ) {
tsPrice[pos]=Bid-TrailPips*Point;
tsok[pos]=true;
if(TrailPips>8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid-TrailPips*Point > tsPrice[pos] ){
tsPrice[pos]=Bid-TrailPips*Point;
if(TrailPips > 8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid <= tsPrice[pos] ){
CloseOrder(1);
Print("Order ",tsTicket[pos]," Closed from TS");
} } } } }
for(i=0;i<21;i++){// this searches the array for ticket numbers that are now obsolete due to an order that has closed
if(tsTicket>0){
bool found=false;
for(b=0;b<OrdersTotal();b++){
OrderSelect(b,SELECT_BY_POS);
if(tsTicket==OrderTicket()){
found=true;
break;
}
}
if(!found){// if there are matching ticket numbers in the trade pool and the array then nothing happens
tsTicket=0;tsPrice=0;tsok=false;// if there is an obolete ticket the the data is reset. And the next new ticket data can occupy this space
Print("Array pos ",i," Cleaned");
} } } }Aquí está el EA con el cambio del TP después de que UseClose es verdadero. Se duplicará el TP por razones de seguridad. ¡Gracias Jo!
Esperaba probar el Profit Generator 2.4. No ha colocado ninguna operación desde 630GMT.....¿Ha colocado alguna otra operación para alguien? TF15 $/CHT, £/$, Euro/$... Por favor, hágamelo saber, ya que creo que este es un buen EA en principio.
Obtendrá menos operaciones porque el primer criterio es que la barra actual tiene que ser mayor que el valor de LongBar en longitud. Yo recomendaría una vela más pequeña en el TF inferior.
Está bien, pero como novato esperaré a que alguien más experimentado dé límites altos y bajos a los diferentes parámetros.
Actualmente estoy probando el 2.4 con los preajustes de Holyguy7 y desde la 1:00 AM sólo he hecho 3 operaciones (1:10 vender usdcad en daily BAD; 7:29 y 14:29 gbpusd en H1 la primera 28 pips y la segunda realmente perdedora). Parece ser normal, ¿alguien tiene los mismos resultados?
Además, para permitir las pruebas de múltiples marcos de tiempo, he cambiado tres líneas en la versión 2.6:
1 -
extern int ID;
se convierte en
extern int ID_BASE=100000; para dar un número a PG_2.6 (aquí 1)
2 - He añadido la siguiente línea justo debajo de "int Bar;"
int ID;
3 - Añadí la función init()
int init(){
ID=ID_BASE+Periodo(); return(0);
}
Así que en un gráfico diario el número mágico será 101440 y aparecerá en el comentario de la operación. Será más fácil analizar los resultados para cada marco de tiempo y tipo de parámetros. No lo he probado todavía pero debería funcionar.
Y para un gráfico específico tendrá un ID fijo y no un número aleatorio.
Además, tal vez podríamos añadir un takeprofit inicial utilizando la función superclose. Solo en caso de que el ordenador se caiga.
PD: Hice otros cambios que debo borrar antes de publicar. dime si te interesa.Gran idea. Lo único que hay que tener en cuenta es si vas a realizar diferentes pruebas en el mismo par y TF para cambiar el ID de la base. He añadido esos cambios, pero he hecho una pequeña alteración. ...porque el Periodo puede cambiar desde la variable "period" (diferente del gráfico), hice esto en su lugar:ID=ID_BASE+P(); return(0);
El P() devuelve el período real en uso por el programa. Gran idea... ¿con qué otros cambios has jugado?
Aquí está la 2.6.2.
nada mas desde el ultimo post sobre esto (gbpusd todavia perdedor) pero estoy corriendo en H1 y diario y mantuve longbar=15.
vamos a esperar esta noche (en general para los pares jpy)
¿alguien puede sugerirme parámetros de prueba (SL y TP)?
Voy a utilizar sin límite de horas en las principales monedas y M1, M5, M15, H1 y H4.
nada más desde el último post sobre esto (gbpusd todavía perdedor) pero estoy corriendo en H1 y diario y me quedé longbar = 15. vamos a esperar esta noche (en general para los pares jpy)
He notado que el GBPUSD parece funcionar mejor en el gráfico diario:
TP: 40
SL: 30
Sin filtro de tiempo
Barra larga: 10
Parece más fiable. EURUSD y USDCHF parecen hacerlo mejor en el gráfico H1 con longbar a 15 y timefliter activado.
Estoy luchando en este momento como los principales pares de div isas me están dando ataques con esta EA. ¿Alguien ha tenido éxito en los principales pares de divisas? Si es así, por favor, publique sus resultados.
Hola
HolyGUY,
¿Cuál es el progreso hoy en día en este nuevo EA
Hola
HolyGUY,
¿Cuál es el progreso hoy en día en este nuevo EABueno, hubo un poco de retroceso a partir de ayer debido a algunos de los principales pares de divisas. Aún así, he subido más del 20% en la semana y actualmente el sistema NO tiene operaciones abiertas.
Voy a publicar mis resultados en unas pocas horas. Tuve el GBPUSD en el marco de tiempo H1, pero creo que es más fiable en el marco de tiempo D1 como los demás. Os mantendré informados.