[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 298

 
Roger:

Tal vez porque el script fue escrito hace mucho tiempo y tenía 4 dígitos, ahora tiene 5. Necesito aumentar el stop y tomar órdenes por 10 veces.


Gracias por la respuesta, pero estoy un poco confundido. Cuando solicito iOpen(Symbol(),PERIOD_H4,0) me da un precio con 4 decimales.

Si puedo, por favor, aconsejar cómo prescribir el número de lotes, que debe utilizar la orden de abrir (se supone que utilizar el 10% de los fondos disponibles para el comercio en la cuenta)?

Se lo agradecería mucho.

 

Me pueden decir por favor, que cuando prueban un EA - cualquiera que sea el periodo que elija solo prueba las últimas 2-3 semanas... ¿Por qué?

Quiero probar un año =((

 
kon12:
¿Es eso cierto?

Eso parece. Sólo recuerda comprobarlo con un probador.
 
Boneshapper:


Gracias por la respuesta, pero estoy un poco confundido. Cuando solicito iOpen(Symbol(),PERIOD_H4,0) me da un precio con 4 decimales.

Si puedo, por favor, aconsejar cómo prescribir el número de lotes, que debe utilizar la orden de abrir (se supone que utilizar el 10% de los fondos disponibles para el comercio en la cuenta)?

Se lo agradecería mucho.


El precio que da con 5 dígitos, sólo se ven 4, pero eso no es lo complicado. Normalmente, cuando se abren órdenes para establecer un precio de parada se utiliza un valor relativo en pips y luego se multiplica por el valor de un pip. Por lo tanto, si usted establece un stop de 50 pips y tiene un stop de 4 dígitos en 0,0001, obtendrá la diferencia entre el precio de apertura y el stop en 0,005, pero si tiene un stop de 5 dígitos, será de 0,00001 y sólo será de 0,0005, lo que no le permitirá abrir una orden con un stop demasiado bajo.

El tamaño del lote se calcula a partir del valor del lote y del tipo de cambio de la moneda base a la moneda de su depósito. Pero básicamente es simple aritmética, intenta resolver la fórmula tú mismo.

 
w_ersoc:

Me pueden decir por favor, que cuando prueban un EA - cualquiera que sea el periodo que elija solo prueba las últimas 2-3 semanas... ¿Por qué?

Quiero probar un año =((


Debe faltar la historia. Tire del gráfico con el ratón para que bombee los datos del servidor.
 
Roger:


El precio se da con 5 dígitos, tú sólo ves 4, pero eso no es lo complicado. Normalmente, cuando se abren órdenes para fijar un precio de stop, se utiliza un valor relativo en pips y luego se multiplica por el valor de un pip. En otras palabras, si usted establece un stop de 50 pips y tiene un stop de 4 dígitos a 0,0001, tendría una diferencia de 0,005 entre el precio de apertura y el stop, pero si tiene un stop de 5 dígitos, tendría una diferencia de 0,00001 y sólo sería de 0,0005, lo que haría que su stop fuera demasiado corto.

El tamaño del lote se calcula a partir del valor del lote y del tipo de cambio de la moneda base a la moneda de su depósito. Pero básicamente es simple aritmética, intenta resolver la fórmula tú mismo.


Ok, definitivamente lo probaré. ¡Muchas gracias por sus respuestas!
 

La función MarketInfo(Symbol (),MODE_POINT) siempre devuelve 0. Yla variable Point todo el tiempo también devuelve 0.

Tengo otra duda, el pedido no se abre, aunque lo he prescrito correctamente.

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0.0050;
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP,Lime);

 

¿Pueden decirme si existe una función interna o externa que devuelva el tamaño del lote de la última posición cerrada?

 
david2:

¿Pueden decirme si existe una función interna o externa que devuelva el tamaño del lote de la última posición cerrada?


ver aquí - es definitivamente allí. Bajo - trabajo con órdenes y posiciones...
 
Boneshapper:

La función MarketInfo(Symbol (),MODE_POINT) siempre devuelve 0. Y la variable Point todo el tiempo también devuelve 0.

Por favor, aconsejen cómo abrir el pedido, aunque lo he prescrito correctamente.

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0.0050;
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP, Lime);


Aquí puede haber muchos errores - lea atentamente el tutorial - esta sección - para que todas sus condiciones de apertura de órdenes coincidan con las especificadas en esta sección, y también - no olvide normalizar los precios.

Por ejemplo, mira a normalizar TP. Además, pulsa F1 en la función de normalización y lee atentamente su ayuda - NormalizeDouble ().

Además, compruebe el tamaño del lote 0,01 - se trata de un micro lote; intente introducir 0,1 - su cuenta podría no ser una micro cuenta.

..........
TP = NormalizeDouble ((PRICE + Mul1*iATR(Symbol(), 0, ATRPeriod_3, 1)), Digits) ;      // TakeProfit (цена)
         
         if (TP<Level_new*Point) TP=Level_new*Point;   // Если меньше допустимого, то допустимый  
         
         Ticket=OrderSend(Symbol(),4,Lots_New,PRICE,5,SL,TP,"Classiс_3_screen",Magic,0,Green); 
...........
Razón de la queja: