¡Pide! - página 104

 
Kalenzo:
Intenta usar NormalizeDouble(price,Digits). A veces el precio de metatrader no es 1.2000 sino 1.20020031023012 y el resto de los dígitos es un problema para metatrader al colocar la orden pendiente. Utilice NormalizeDouble y estará bien

Muchas gracias Kalenzo, ahora funciona.

 

Definir los días de negociación

Borrado

¡Solución encontrada!

Hola Coders

Intento insertar una función en mi EA para elegir los días de negociación.

La función para las horas de negociación funciona bien.

Para las horas de negociación utilizo lo siguiente:

extern string TradingHours = "TRADING HOURS";

extern bool UseHourTrade = True;

extern int FromHourTrade = 8;

extern int ToHourTrade = 18;

y más tarde después de int inicio:

if (UseHourTrade){

if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comment("¡La hora para el comercio no ha llegado más!");

return(0);

Pero, ¿qué se necesita para seleccionar los días de negociación?

Cuando defino el externo como sigue:

extern string DíasDeComercio = "DíasDeComercio";

extern bool UseDayTrade = True;

extern int FromDayTrade = DayOfWeek;

extern int ToDayTrade = DayOfWeek;

entonces tengo dos mensajes siguientes:

'DayOfWeek'-variable esperada

¿qué hacer?

¿Alguien puede ayudarme?

Gracias por cualquier ayuda

 

¡¡¡GURU!!! Por favor, ayuda

Nevermind.....

 

Por favor, ayuda a todos

Tengo un problema, como hacer solo 1 posición abierta y 2 pendientes.

Digamos que comprar y Buystop , Sellstop.

Ya tuve una informacion de alguien en mql4, el uso :

if(buystoporder>0 && sellstoporder>0)return(0);

y antes de eso, él uso switch(OrderType()).

Estoy confundido, ¿dónde tengo que cambiar el código?

Estoy terminado en el buystop y sellstop abrir varias veces cuando cambio el código, mientras que si no, se espera hasta que uno es trigerred , llegar a su SL o TP y luego hacer un nuevo 2 pendientes.

Mi objetivo es 1 abierto y 2 pendientes, por lo que cuando el abierto alcance el SL o TP, uno de los pendientes se trigerred, uno isnot trigerred será eliminado. y hacer otros 2 pendientes.

¿Y es posible poner un número mágico en la opción switch()?

Muchas gracias por su ayuda.

 

¿Cuál es una declaración fácil de comprobar para ver si 2 medias móviles se han cruzado dentro de 5 barras antes de la barra actual? ¿Puede alguien ayudarme con esto?

Dave

-OR-

¿Cómo se pueden establecer 5 sentencias condicionales? Si las 5 son aceptables, se declara un buyvalue=1.

No sé si esto funcionaría por debajo..: ¿Alguien puede comentar si esto funcionaría, y si no, cómo debería declararse?

if(Condición1)

if(Condición2)

if(Condición3)

if(Condición4)

si(Condición5)

{

buyvalue=1;

}

Dave

 
if(Condition1)

if(Condition2)

if(Condition3)

if(Condiition4)

if(Condition5)

{

buyvalue=1;

}

Esta es la forma más económica y rápida de escribir pruebas multicondicionales.

Es la más rápida porque si la condición1 no se llena, la condición 2, 3, ... no se evalúan, lo que no ocurre si se pone el operador "&&" entre ellas.

Así que empieza por la condición menos frecuente.

Así que esto funcionará sin duda.

Ahora, como a menudo preguntas si algo funcionará, lo mejor es probar, es una buena manera de aprender también.

Saludos.

 
Dave137:
¿Cuál es una declaración fácil de comprobar para ver si 2 medias móviles se han cruzado dentro de 5 barras antes de la barra actual? ¿Puede alguien ayudarme con esto? Dave

ma1_0 = iMA(....,0);

ma2_0 = iMA(....,0);

ma1_5 = iMA(....,5);

ma2_5 = iMA(....,5);

if((ma1_0 - ma2_0) * (ma1_5 - ma2_5) < 0) cross = true;
 

¿Cómo puedo...?

Hola,

Por favor, puede mostrarme si es posible, cómo digo

"si la posición anterior cerró en la vela "0" o en la vela "1", entonces no abra otra posición en esa misma vela" o, incluso si la vela "0" cumple las condiciones requeridas para abrir otra posición... si la posición anterior cerró en esa vela entonces impida que abra otra posición, espere a que las condiciones sean correctas de nuevo.

Lo puedo decir en inglés pero aún soy un poco novato en mql4.

gracias

amatrader

 

Puede utilizar el siguiente fragmento de código

bool last_order_closed_rather_recently = false;

for ( int i = OrdersHistoryTotal() - 1; i >= 0;i-- ) {

if ( ! OrderSelect( i, SELECT_BY_POS, MODE_HISTORY ) ) continue;

if ( OrderCloseTime() >= Time[ 1 ] ) {

last_order_closed_rather_recently = true;

break;

}

}

[/PHP]

after which you have the bool variable "last_order_closed_rather_recently" telling whether there was an order closed after the opening of bar 1. Then somewhere you'd have:

[PHP]if ( last_order_closed_rather_recently ) return( 0 );

antes de introducir una nueva operación.

 

Gracias señor, se agradece mucho.