[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 235

 
Zhunko:
Si el código fuente está ahí, pero ha sido modificado, esto es posible. Es decir, cambiar el contenido de la fuente. Si la fuente se pierde o cambia de nombre, no se encontrará.

Gracias Vadim. Ya veo.
 
ikatsko:

Cómo calcular el margen (fondos necesarios para abrir una orden con un lote N) en diferentes valores de AccountFreeMarginMode


El margen para una orden de 1 lote es igual:

   double OneLotMarg =MarketInfo(Symbol(),MODE_MARGINREQUIRED);

Ya lo descubrirás más adelante.

Y también tienes que comprobar si tienes suficientes fondos libres:

   double Free = AccountFreeMargin();
   
   if(Lts*OneLotMarg>Free) return(0);
 
DhP:


Y también debe comprobar si hay suficientes fondos disponibles:

   double Free = AccountFreeMargin();
   
   if(Lts*OneLotMarg>Free) return(0);

Esta condición es necesaria, pero no suficiente... Según he entendido, también hay que considerar el valor del spread, es decir, hay que tener en cuenta la pérdida que se producirá inmediatamente al abrir la orden correspondiente. :))) ¿O he olvidado algo más?
 

Me ha gustado el script de este indicador, su simplicidad. por favor ayúdame a crear un script que coloque stops en estas líneas.

https://www.mql5.com/ru/code/9588

 
MaxZ:
Esta condición es necesaria, pero no suficiente... Según tengo entendido, también hay que tener en cuenta el valor del spread, es decir, ¡hay que considerar la pérdida que se producirá inmediatamente al abrir la orden correspondiente! :))) ¿O he olvidado algo más?
Creo que tiene razón, pero apenas importa en la práctica.
 
DhP:
Creo que tiene razón, pero apenas importa en la práctica.

Por ejemplo, practico en varias competiciones. Y ha habido situaciones similares. Aparece el error 134. Pero todavía no he perfeccionado la función de cálculo del lote. Me daba mucha pereza... Un poco más tarde se repite la solicitud y se abre el pedido. Y un poco más tarde, ¡fusionamos el depósito de la demo! :)))

Además, esta condición no funcionará cuando se abran contraórdenes, cuando no haya suficiente dinero, pero el lote abierto puede ser compensado por una contraorden.

Algunos matices y nada más.

 
DhP:
MaxZ:
Esta condición es necesaria, pero no suficiente... Según he entendido, también hay que tener en cuenta el valor del spread, es decir, ¡hay que considerar la pérdida que se producirá inmediatamente al abrir la orden correspondiente! :))) ¿O tal vez he olvidado algo más?
Creo que tiene razón, pero apenas importa en la práctica.

Resulta que el hecho de que una orden se abra con una pérdida igual al diferencial no tiene ningún efecto. Si establecemos Risk = 100%, la orden se abre con el máximo volumen posible, y AccountFreeMargin() muestra "+" o "- " (enel"Probador de Estrategias") inmediatamente después de la apertura...

Pero, al abrir varios pedidos, el error 134 se produce de vez en cuando. Sigo sin entender a qué se debe el error... Tengo en cuenta los fondos necesarios para abrir órdenes opuestas según la misma condición. Esto significa que la orden contraria se abrirá sólo cuando estemos en el plus y se dispare la condición correspondiente.

El código se utiliza para calcular el lote:

double Free    = AccountFreeMargin();
double One_Lot = MarketInfo(Symbol(), MODE_MARGINREQUIRED);      
double Step    = MarketInfo(Symbol(), MODE_LOTSTEP);
newLots = MathFloor(Free*Risk/100/One_Lot/Step)*Step;

p.d.: No me gusta dejar bloopers propios...

 

¡Saludos Señores!

Por favor, ayúdenme a insertar en mi EA la función de cerrar órdenes.

La idea es la siguiente:

1) si el precio de una orden de VENTA abierta es menor que el precio del TP expuesto de esta orden, entonces esta orden se cierra.

2) si el precio de una orden de COMPRA abierta es superior al precio de TP fijado para esta orden, se cerrará.

Si puedes ayudar, escríbeme a oniava@gmail.com, espero tus comentarios.

Muchas gracias de antemano.

Sinceramente, Oleg.


P.D. Puedes hacer un asistente de EA independiente con un número mágico.

 
belck:

Me ha gustado el script de este indicador, su sencillez. por favor ayúdame a crear un script que coloque stops en estas líneas, recorriendo las órdenes.

https://www.mql5.com/ru/code/9588

Empieza a hacerlo y te ayudaremos. Esto hace que parezca un "hazlo por mí". Hay casi todo lo que necesitas ahí. Lo único que queda por hacer es un ciclo de entrada y salida de tus pedidos.
 

Hola a todos. Me pueden decir cómo prescribir en el EA,

Cuando se alcanza un determinado beneficio, el EA no abre más una posición,

Sólo se abre la próxima vez que se inicia o reinicia el EA.