[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 879

 
Resulta lo siguiente. He abierto y cerrado muchos pedidos, pero sólo necesito uno y ya está. Tal vez, todo puede ser elemental, pero me quedé atascado. He intentado que, cuando se cumpla una determinada condición (cruce), se abra una orden y la variable obtenga un determinado valor. Entonces he incluido esta variable en la condición de apertura de órdenes pero no pasa nada. Se abre un pedido, luego el segundo, luego el tercero...
 
prom18:
El resultado es el siguiente. Usted abre y cierra muchas órdenes, mientras que sólo necesita una. Tal vez, todo puede ser elemental, pero no tengo una solución. He intentado hacer que sólo se abra una orden y que la variable obtenga un determinado valor cuando se cumpla una determinada condición (cruce). Entonces he incluido esta variable en la condición de apertura de pedidos pero no pasa nada. Se abre una orden, luego la segunda y la tercera.


Necesito un código o un trozo de código - sin código sólo a nivel del tablero

y no hay muchos consejos:

1) comprobar el número de órdenes abiertas en esta señal

2) comprobar la hora de la señal (conectar con la barra actual si sólo hay una señal dentro de la barra)

3) conjuntamente 1) y 2)

 
abolk:


Necesito un código o un trozo de código - sin código sólo a nivel de tablero

y no hay muchos consejos:

1) comprobar el número de órdenes abiertas en esta señal

2) comprobar la hora de la señal (conectar con la barra actual si sólo hay una señal dentro de la barra)

3) conjuntamente 1) y 2)

Gracias. Lo probaré.

 
Gracias por el consejo de depurar el EA. Por cierto, todavía soy nuevo en el foro y no siempre entiendo la jerga. ¿Qué es la IMHO? :)
artmedia70:

No recuerdo haberte dicho cómo acceder al foro... :)

No creo que nadie pueda ayudarte aquí sin el propio EA a partir de las entradas del registro de optimización solamente. Los psíquicos han estado descansando durante una década... :)

¿Y por qué intentas optimizarlo de todos modos? Sólo tienes que ejecutar la prueba primero y buscar errores.

La optimización, si es que la hay, es necesaria en el paso final de la prueba del Asesor Experto y de la estrategia en su conjunto

para encontrar los valores óptimos de las variables. Sin embargo, yo personalmente, IMHO, creo que es sólo un ajuste estúpido a los datos históricos,

por lo que intento hacer todo de forma dinámica en mis EAs confiando en el propio EA en el cálculo de los valores óptimos de las variables.

 
boris.45:
¿Qué es la IMHO? :)
Podrías decir simplemente: "En mi opinión".
 

mientras o si ?

Profesionales, por favor, expliquen los pormenores.

Lo probé en GBPUSD el 2 de febrero de 2010.

№1

int inicio()
{ if(OrdersTotal()==0) //cuando no hay pedidos
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-60*Point,Ask+30*Point);
return; }

Este funciona, abrió y cerró 4 pedidos.

№2

int inicio()
{ while(OrdersTotal()==0) //cuando no hay pedidos
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-60*Point,Ask+30*Point);
return; }
Este no quiere funcionar; esto es lo que dice en el registro:

Lo modifiqué un poco y funcionó.

№3

int inicio()
{ while(OrdersTotal()==0) //cuando no hay pedidos
OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,4),3,
NormalizarDoble(Pregunta-60*Punto,4),NormalizarDoble(Pregunta+30*Punto,4));
return; }

En realidad, preguntas:

¿Por qué con "si" (#1) todos los precios de apertura/cierre con cotizaciones de cuatro dígitos, pero el cierre de la última orden es de cinco dígitos?

¿Por qué "mientras" (#2) no quiere trabajar, qué pasa con el precio?

¿Por qué el "while" (#3) al especificar el precio de apertura a través de NormalizeDouble (Ask,4) hace que la primera orden se abra y la última se cierre en cotizaciones de cinco dígitos?

¿Cuál es la diferencia fundamental entre if y while en este caso (#1 y #2)?

P.D. Y si ejecuto por separado 8.02.10, los tres funcionan.

Agradecería mucho las respuestas o los enlaces.

 

¿Puede alguien decirme cómo escribir en un EA "si el beneficio de la orden es de +5%, entonces ........"?

 
FoxUA:

quien puede decirme como escribir en un EA "si el beneficio de la orden es de +5% entonces ........".


¿que significa el 5%?

% muestra la relación entre un valor y el otro, creo que estás buscando un aumento de capital del 5%, entonces

if (OrdersTotal()<1) eq=AccountBalance();
.....


if (AccountEquity()> eq+eq/100*5){
// прирост эквити на 5%


}

si todavía está interesado en el cambio de la ganancia de la orden, entonces OrderProfit() de recordado

 
IgorM:


¿Define qué significa el 5%?

% muestra la relación entre un valor y el otro, creo que se busca un aumento de capital del 5%, entonces

si todavía está interesado en el cambio de la ganancia de la orden, OrderProfit() de la memorizada


Tal vez no lo expresé correctamente, necesito un cambio por ejemplo BalansEURUSD para mostrar las ganancias o pérdidas en porcentajes "BalansEURUSD =5%" o algo así

y así en varios pares digamos para libra y dolren

una vez

 
Vinin:
Podrías decir simplemente: "En mi opinión".
Gracias, Victor... :) Añadiré más de los míos:
________________________________________________________________________________________________________
Literalmente: del inglés IMHO "In My Humble Opinion" (En mi humilde opinión o en mi honesta opinión).
O coloquialmente en ruso, con el argot: IMHO = "Tengo una opinión, no puedes discutirla" ... :)))))