¿Cómo codificar? - página 28

 

¡Necesito ayuda con un código simple!

¿Qué código puedo poner en mi ea para que sólo opere una vez en la barra actual como resultado del cruce de 2 medias móviles?

Estoy operando en un minuto y a veces el valor de la barra puede ir al máximo y luego al mínimo y luego al máximo de nuevo. Si el ea abre una operación cuando los 2 promedios móviles se cruzan, el valor de la barra puede ir por debajo del cruce en el mismo minuto y el ea saldrá de la operación si el valor de la operación baja temporalmente. ¡¡¡Como resultado el ea puede abrir y cerrar una posición en la misma barra de un minuto!!! ¡Por favor, aconsejen!

Gracias de antemano.

Dave

<<<

 

Ya he tenido este problema y esto es lo que hice:

Arriba en la parte superior donde declaras tus veriables pon

static bool ITradedOnThisBar;

luego donde envías tu orden pon

if(su criterio && ITradedOnThisBar!=Bars)

{

ticket=EnviarOrden(Símbolo(),OP_BUY,... );

ITradedOnThisBar = Bars;

}

Hacer Esto evitará que abra una operación en la misma barra en la que ya abrió una operación, pero lo más importante es que quiere evitar que se cierre en la misma barra, por lo que también agregaría este código donde cierra su operación, por ejemplo

if(Your Criteria && ITradedOnThisBar != Bars)

{

OrderClose(OrderTicket(),... ); // cerrar la posición

}

Esta es probablemente la forma más sencilla de hacer lo que usted está tratando de hacer.

 

Actualizar código de búferes

hay código (parche, arreglo, actualización) por Raff 4 indicadores multitimeframe (MTF), trabajando bastante bien;

¿cuál podría ser el código similar que se puede añadir a los indicadores regulares (no mtf)?

Si es posible, el ejemplo, por favor

gracias

//---- Actualizar buffers +++++++++++++++++++++ actualización por Raff

if (TimeFrame>Period()) {

int PerINT=TimeFrame/Period()+1;

datetime TimeArr[]; ArrayResize(TimeArr,PerINT);

ArrayCopySeries(TimeArr,MODE_TIME,Symbol(),Period());

for(i=0;i=TimeArray[0]) {

//----

/*****************************************************

Refresca los buffers: buffer = buffer[0];

******************************************************/

Buffer1= Buffer1[0];

Buffer2= Buffer2[0];

Buffer3= Buffer3[0];

//----

} } }

//+++++++++++++++++++++++++++++++++++++++++ Raff ++++++

 
Willis11of12:
He tenido este problema antes y esto es lo que hice:

En la parte superior donde declaras tus veriables pon

static bool ITradedOnThisBar;

luego donde envías tu orden pon

if(su criterio && ITradedOnThisBar!=Bars)

{

ticket=EnviarOrden(Símbolo(),OP_BUY,... );

ITradedOnThisBar = Bars;

}

Hacer Esto evitará que abra una operación en la misma barra en la que ya abrió una operación, pero lo más importante es que quiere evitar que se cierre en la misma barra, así que también añadiría este código donde cierra su operación, por ejemplo

if(Your Criteria && ITradedOnThisBar != Bars)

{

OrderClose(OrderTicket(),... ); // cerrar la posición

}

Esta es probablemente la forma más sencilla de hacer lo que se pretende.

Gracias por la codificación. Lo he instalado en mi ea (espero que en los puntos correctos), y averiguaré si funciona una vez que se crucen las medias móviles.

¡Gracias!

Dave

 

No sé cómo el código, pero he hecho varios EA simillar a lo que usted describe el constructor asesor experto. No estoy seguro de que eso es lo que está buscando, pero usted podría comprobarlo si no lo ha hecho ya.

Expert Advisor Builder para MetaTrader 4

 

Lo comprobaré. Gracias.

 

¿Existe tal código?

Me pregunto si existe tal código (con la siguiente descripción).

¿Cuál sería el código básico con los siguientes parámetros? (entendiendo que cualquier indicador con un valor puede ser introducido)

(Apertura de operaciones)

1. Una operación larga se coloca cuando el valor actual de un indicador es mayor que el valor de cierre de la barra anterior. (intrabarra, no cierre)

2. Una operación corta se realiza cuando el valor actual de un indicador es inferior al valor de cierre de la barra anterior. (intrabarra, no cierre)

(Cierre de operaciones)

1. Las operaciones largas se cierran cuando se abren las operaciones cortas.

2. Las operaciones cortas se cierran cuando se abren las operaciones largas.

Gracias

 

pruebe algunos de estos

Índice de /_MT4_Expertos

 

Gracias AJK. Es una gran lista.

 

ayuda con el código

Estoy seguro de que alguien ya ha preguntado esto pero no lo encuentro cuando busco en los hilos.

me gustaria saber como codificar para que un EA coloque una operacion solo cuando el precio este entre dos niveles -E.

if (price=>1.0000 && price< 1.0050) vender