¡Pide! - página 151

 

MetaTrader y el libro de órdenes

Ok, debo decir que las variables predefinidas "Ask" y "Bid" almacenan las mejores órdenes realmente... ¿Pero qué pasa con los otros niveles y lotes del libro de órdenes? ¿Puedo utilizar estos datos en mi código de todos modos?

Por favor, ayúdame, he buscado mucho en la web pero no he encontrado la respuesta.

prota

 

Una pregunta rápida...

Tío, si hago lo que está en negrita no tengo que hacer lo que está subrayado, ¿verdad?

if(Ask>=Line1)

{

posisi=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0, "OneLineEA ver 1.0",Megic,0,Green);

if(OrderSelect(posisi,SELECT_BY_TICKET)==true)

{

posisi=OrderTicket();

}

}

 

Por favor, ayúdenme

HI codersguru

Muchas gracias por su ayuda

POR FAVOR, PUEDEN EXPLICAR ESTA DECLARACIÓN Y EL SIGNIFICADO

for(int shift = Bars-10; shift >= 0; shift--)

{

ExtMapBuffer1[shift] = ma[shift];

ExtMapBuffer2[shift] = ma[shift];

//Imprimir (ma[shift]);

if (ma[shift] > ma[shift+1])

{

ExtMapBuffer1[shift] = EMPTY_VALUE;

ExtMapBuffer2[shift+1] = ma[shift+1];

}

else if (ma[shift] < ma[shift+1])

{

ExtMapBuffer2[shift] = EMPTY_VALUE;

ExtMapBuffer1[shift+1] = ma[shift+1];

}

EN ESTE EA

//---- configuración del indicador

#propiedad indicator_chart_window

#propiedad indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[],ma[];

extern int MAType = 1;

extern int MAPeriod = 34;

extern int MAShift = 0;

extern int PriceType=0;

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

//| Función de inicialización del indicador personalizada ||.

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

int init()

{

//---- Se utilizan 2 buffers adicionales para el conteo.

IndicatorBuffers(5);

//---- ajustes de dibujo

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(2,ma);

SetIndexStyle(0,DRAW_LINE,0,2);

SetIndexStyle(1,DRAW_LINE,0,2);

//---- inicialización realizada

return(0);

}

int inicio()

{

for(int i = Bars-10; i >= 0; i--)

{

ma=iMA(NULL,0,MAPeriod,MAShift,MAType,PriceType,i);

}

for(int shift = Bars-10; shift >= 0; shift--)

{

ExtMapBuffer1[shift] = ma[shift];

ExtMapBuffer2[shift] = ma[shift];

//Imprimir (ma[shift]);

if (ma[shift] > ma[shift+1])

{

ExtMapBuffer1[shift] = EMPTY_VALUE;

ExtMapBuffer2[shift+1] = ma[shift+1];

}

else if (ma[shift] < ma[shift+1])

{

ExtMapBuffer2[shift] = EMPTY_VALUE;

ExtMapBuffer1[shift+1] = ma[shift+1];

}

}

return(0);

}

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

Gracias

 

No es el EA, es el indicador, que te muestra los momentos en que el indicador"Moving Average" sube o baja.

Ese código que necesitas calcula sólo las últimas diez barras.

Ponlo en el directorio /indicators y reinicia tu terminal.

 

los diferentes

hola a todos

me pueden ayudar

lo que el diffrent EMA5c y EMA5p

qué significa (EMA5c>EMA10c && EMA5pEMA10c))

double EMA5c = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 0 );

double EMA10c = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,0);

double EMA5p = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 1 );

double EMA10p = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,1);

 

Los nombres son sólo nombres de variables y no tienen realmente ningún significado como tal. Los programadores suelen elegir los nombres de las variables de forma que se explique por sí mismo qué tipo de valor se supone que tienen. Mirando estas dos, parece que el programador ha elegido añadir el sufijo c a la variable barras actuales y p a la variable barras anteriores.

Lux

 

Hola hombre tiene una pregunta, tengo un indicador que un amigo me dio que he sido la demostración de un par de semanas y el amor. Explicación corta, una flecha se mostrará en mis gráficos que me dice a qué manera de jugar el movimiento. Lo estoy usando en gráficos de 30m para que no aparezca muy a menudo. Hay una manera de hacer que cuando la flecha se muestra para la posición larga que va a cerrar mi posición corta e ir de largo, o si no hay posición corta sólo ir de largo. ¿También viceversa con la señal de corto?

 

No vi un botón de edición así que aquí está el código. No parece que sea muy difícil añadir el código de compra o venta. Este es el código del zigzag. Libre ind.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

//---- indicator parameters

extern int ExtDepth=12;

extern int ExtDeviation=5;

extern int ExtBackstep=3;

//---- indicator buffers

double ZigzagBuffer[];

double HighMapBuffer[];

double LowMapBuffer[];

int level=3; // recounting's depth

bool downloadhistory=false;

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

//| Custom indicator initialization function |

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

int init()

{

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_SECTION);

//---- indicator buffers mapping

SetIndexBuffer(0,ZigzagBuffer);

SetIndexBuffer(1,HighMapBuffer);

SetIndexBuffer(2,LowMapBuffer);

SetIndexEmptyValue(0,0.0);

//---- indicator short name

IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");

//---- initialization done

return(0);

}

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

//| |

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

int start()

{

int i, counted_bars = IndicatorCounted();

int limit,counterZ,whatlookfor;

int shift,back,lasthighpos,lastlowpos;

double val,res;

double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded

{

ArrayInitialize(ZigzagBuffer,0.0);

ArrayInitialize(HighMapBuffer,0.0);

ArrayInitialize(LowMapBuffer,0.0);

}

if (counted_bars==0)

{

limit=Bars-ExtDepth;

downloadhistory=true;

}

if (counted_bars>0)

{

while (counterZ<level && i<100)

{

res=ZigzagBuffer;

if (res!=0) counterZ++;

i++;

}

i--;

limit=i;

if (LowMapBuffer!=0)

{

curlow=LowMapBuffer;

whatlookfor=1;

}

else

{

curhigh=HighMapBuffer;

whatlookfor=-1;

}

for (i=limit-1;i>=0;i--)

{

ZigzagBuffer=0.0;

LowMapBuffer=0.0;

HighMapBuffer=0.0;

}

}

for(shift=limit; shift>=0; shift--)

{

val=Low;

if(val==lastlow) val=0.0;

else

{

lastlow=val;

if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=LowMapBuffer[shift+back];

if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;

}

}

}

if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;

//--- high

val=High;

if(val==lasthigh) val=0.0;

else

{

lasthigh=val;

if((val-High[shift])>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=HighMapBuffer[shift+back];

if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;

}

}

}

if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;

}

// final cutting

if (whatlookfor==0)

{

lastlow=0;

lasthigh=0;

}

else

{

lastlow=curlow;

lasthigh=curhigh;

}

for (shift=limit;shift>=0;shift--)

{

res=0.0;

switch(whatlookfor)

{

case 0: // look for peak or lawn

if (lastlow==0 && lasthigh==0)

{

if (HighMapBuffer[shift]!=0)

{

lasthigh=High[shift];

lasthighpos=shift;

whatlookfor=-1;

ZigzagBuffer[shift]=lasthigh;

res=1;

}

if (LowMapBuffer[shift]!=0)

{

lastlow=Low[shift];

lastlowpos=shift;

whatlookfor=1;

ZigzagBuffer[shift]=lastlow;

res=1;

}

}

break;

case 1: // look for peak

if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)

{

ZigzagBuffer[lastlowpos]=0.0;

lastlowpos=shift;

lastlow=LowMapBuffer[shift];

ZigzagBuffer[shift]=lastlow;

res=1;

}

if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)

{

lasthigh=HighMapBuffer[shift];

lasthighpos=shift;

ZigzagBuffer[shift]=lasthigh;

whatlookfor=-1;

res=1;

}

break;

case -1: // look for lawn

if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)

{

ZigzagBuffer[lasthighpos]=0.0;

lasthighpos=shift;

lasthigh=HighMapBuffer[shift];

ZigzagBuffer[shift]=lasthigh;

}

if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)

{

lastlow=LowMapBuffer[shift];

lastlowpos=shift;

ZigzagBuffer[shift]=lastlow;

whatlookfor=1;

}

break;

default: return;

}

}

return(0);

}

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

pregunta de novato

hola a todos

¿es posible buscar un indicador personalizado en la vela anterior? si es así ¿qué tengo que hacer?

básicamente quiero buscar el color del indicador

Gracias de antemano

 
basalo:
hola a todos

¿es posible buscar un indicador personalizado en la vela anterior? si es así ¿qué tengo que hacer?

básicamente quiero buscar el color del indicador

Gracias de antemano

Mira en el archivo de ayuda del metaeditor la función iCustom.

Lux

Razón de la queja: