¿Cómo codificar? - página 204

 

MT-4, por favor ayúdeme.

MT-4- Por favor, ayúdenme, quiero hacer una intersección de archivos DMI + y DMI -. Quiero tener la señal en el momento de mover DMI+ y DMI- sin ADX. Me interesa. Escribo esto a continuación, pero por favor crear para este el archivo para moverlo a MF4.

//+------------------------------------------------------------------+

//| ADXcross EXPERTOS |||||||

//| Perky_z ||

//| |

//+------------------------------------------------------------------+

#property copyright "Perky_z@yahoo.com "

#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"

//+--------------------------------------------------------------------------------------------------+

//| Alertas en la mano con el indicador ADXcrosses no necesitan ser ejecutados juntos ||

//+--------------------------------------------------------------------------------------------------+

// Alertas en el cruce de las líneas + y - DI

// Lo uso en gráficos de 15 minutos

// aunque se ve bien en cualquier marco de tiempo

// Utiliza otros indicadores para confirmar este trigger tho

//---- parámetros de entrada

double b4plusdi,b4minusdi,nowplusdi,nowminusdi;

//----

//---- indicadores

En esta parte del código cambie el periodo como quiera (14 cambio por 4 en cada línea) y esto debe funcionar en este scal que sitúe el diagrama.

b4plusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1);

nowplusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0);

b4minusdi=iADX(NULL,0,14,PRECIO_CIERRE,MODO_MINUSDI,1);

nowminusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0);

 

Esto está cerrando lotes parciales PERO... no hace exactamente lo que esperaba.

No puedo entender lo que está haciendo, pero parece cerrar 1 lote cuando el precio no está donde yo quiero.

Tal vez usted puede ver el problema aquí.

debería cerrar 1 lote cuando hay una COMPRA y el precio va a .00071 (sólo un número al azar que estoy probando en un gráfico de 1 minuto)

o cerrar 1 lote cuando hay una VENTA y el precio va .00071 hacia abajo

usando un broker de 5 dígitos por cierto. Solo hay 1 operación abierta y solo por este EA, así que no hay que desplazarse por las órdenes

¡GRACIAS por la ayuda!

if (IsConnected() && IsTradeAllowed()) while (IsTradeContextBusy()) Sleep(75);

if (OrdersTotal()>0) {OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

RefrescarTarifas();

if (Bid >= (OrderOpenPrice()+ (.00071)) && OrderLots() == 2 && (OrderType() == OP_BUY)) {

OrderClose(OrderTicket(),1,Ask,10,R ed); }

if (Ask <= (OrderOpenPrice()- (.00071)) && OrderLots() == 2 && (OrderType() = OP_SELL)) {

OrderClose(OrderTicket(),1,Bid,10,B lue); }}

 

¿Es posible hacer un código para cerrar una transacción en el punto de equilibrio (beneficio=0), cuando una transacción tiene (una vez) un beneficio positivo, pero todavía por debajo del stoplevel del broker (el trailing no se toca todavía)?

Para un broker con 10Point StopLevel, el sistema de trailing sólo puede funcionar si el beneficio ha alcanzado al menos 10 Point.

Muchas veces veo que una transacción ha ido positiva sólo hasta 5 u 8 pips, y luego vuelve a golpear su SL.

Así que estoy pensando en esto, pero no sé cómo hacerlo.

¿Cómo hacer un código de punto de equilibrio para un EA, algo así como Trailing Stop, pero funciona por debajo del mínimo StopLevel del broker?

 

A SPACECHIMP

Cuando abrimos la orden, usamos Ask para comprar y Bid para vender. Cuando cerramos - lo contrario.

 

Ya creo que es muy útil

FulltimeTrader:Junio2009

 

Necesito ayuda para añadir una alerta de correo electrónico en este indicador Top Trend

Necesito ayuda para añadir una alerta de correo electrónico en este indicador Top Trend.

Aquí está la línea y el archivo adjunto.

si (tendencia>0)

{

if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)

{

UpTrendSignal[shift]=bsmin[shift];

UpTrendBuffer[shift]=bsmin[shift];

if(Line>0) UpTrendLine[shift]=bsmin[shift];

if (SoundON==true && shift==0 && !TurnedUp)

{

Alert("Las bandas suben en ",Symbol(),"-",Period());

TurnedUp = true;

TurnedDown = false;

}

}

else

{

UpTrendBuffer[shift]=bsmin[shift];

if(Line>0) UpTrendLine[shift]=bsmin[shift];

UpTrendSignal[shift]=-1;

}

if (Signal==2) UpTrendBuffer[shift]=0;

SeñalTendenciaAbajo[shift]=-1;

DownTrendBuffer[shift]=-1.0;

DownTrendLine[shift]=EMPTY_VALUE;

}

if (trend<0)

{

if (Signal>0 && DownTrendBuffer[shift+1]==-1.0)

{

SeñalTendenciaAbajo[shift]=bsmax[shift];

DownTrendBuffer[shift]=bsmax[shift];

if(Line>0) DownTrendLine[shift]=bsmax[shift];

if (SoundON==true && shift==0 && !TurnedDown)

{

Alert("Las bandas bajan en ",Symbol(),"-",Period());

TurnedDown = true;

TurnedUp = false;

}

}

else

{

DownTrendBuffer[shift]=bsmax[shift];

if(Line>0)DownTrendLine[shift]=bsmax[shift];

DownTrendSignal[shift]=-1;

}

Si (Señal==2) DownTrendBuffer[shift]=0;

SeñalTendenciaAlcista[shift]=-1;

UpTrendBuffer[shift]=-1.0;

UpTrendLine[shift]=EMPTY_VALUE;

}

}

return(0);

}

Archivos adjuntos:
toptrend.mq4  6 kb
 

¿No ves el problema aquí? AAAAHHHH

No tengo ni idea de lo que estoy haciendo mal ..

esto no parece cerrar la mitad en un determinado TP

if (OrdersTotal()>0) {

OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

Tick = OrderTicket(); // Número de la orden seleccionada

Tip =OrderType(); // Tipo de orden seleccionada

Precio =OrderOpenPrice(); // Precio de la orden seleccionada

Lote =OrderLots();

if (Bid >= (Price + (TakeProfit * Point)) && Lot == 2 && (Tip == OP_BUY)) {

OrderClose(Tick,1,Bid,10,Red); }

if (Ask <= (Price - (TakeProfit * Point)) && Lot == 2 && (Tip == OP_SELL)) {

OrderClose(Tick,1,Ask,10,Blue); }}

¿Tengo el BID y ASK correcto? probablemente no

 

necesito ayuda con mi ea

necesito un código para restringir mi ea a un solo comercio. es un scalper, sólo quiero un comercio, después de que hace, lo pongo fuera y adjuntar de nuevo al día siguiente. ¿alguien puede ayudarme en esto?

 

En algún lugar de este hilo....

En algún lugar de este hilo se ha tenido que hacer esta pregunta...

Puede alguien ayudarme con el código para 1) tener un SL oculto que 2) sólo cierre una parte (50%) de la orden abierta y 3) cierre el resto de la orden después de cruzar una media móvil.

Adjunto un EA, pero no está en inglés, por lo que no puedo entender bien lo que hace ni dónde añadir mi otro código.

Gracias por su ayuda.

Archivos adjuntos:
 

Cómo evitar que se recargue el indicador en cada nuevo tic

Por favor, díganme qué hice mal al invocar iCustom que hace que un indicador se cargue de nuevo con cada nuevo tic.(El backtesting llena toda la ventana de visualización con cientos de iteraciones de ese indicador).

Desde mi "Programa de Inicio" quiero confirmar una oportunidad de trading usando el método EntryDir() (que sigue):

static datetime lastsd;

if ( CurTime()-lastsd>2*60*Period() )

{

if(ZZ>=High[1] && EntryDir()==OP_SELL)

{

if(pos == 1) {DoExit(OP_BUY);}

PrepNewOrder(OP_SELL);

lastsd=CurTime();

}

if(ZZ!=0 && ZZ<=Low[1] && EntryDir()==OP_BUY)

{

if(pos == -1) {DoExit(OP_SELL);}

PrepNewOrder(OP_BUY);

lastsd=CurTime();

}

}

int DirecciónDeEntrada()

{

bool buyOK=false, sellOK=false;

double flow = iCustom(NULL, 0, "Dtron", 0,0) + iCustom(NULL, 0, "Dtron" 1,0);

double trigger = iCustom(NULL, 0, "Dtron", 1,0) + iCustom(NULL, 0, "Dtron", 3,0);

double reversal = iCustom(NULL, 0, "Dtron", 4,0);

if((reversal==0 && flow + trigger>0) || reversal>0) entryDir=OP_BUY;

if((reversal==0 && flow + trigger<0) || reversal<0) entryDir=OP_SELL;

return(entryDir);

}

Por favor, muéstrame cómo evitar que se abran cientos de ventanas del indicador Dtron aquí.