[¡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 909

 
Por favor, avisen si hay algún indicador que muestre el volumen total de las posiciones abiertas, porque cuando hay muchas órdenes diferentes abiertas puede dar pereza contarlas. gracias.
 

Necesito ayuda. Tengo un Asesor Experto en el tutorial, pero sólo funciona con una orden de mercado, y quiero hacer que funcione con varias, simplemente operar en diferentes instrumentos financieros y abrir y cerrar órdenes en ellos al mismo tiempo. A continuación lancé un ejemplo, pero me retrasé en el que el valor de la primera orden se asigna a las variables para las órdenes de contabilidad. ¿Cómo puedo hacer lo mismo para la segunda orden (de otro par de divisas)? Y si quiero que no sólo funcione una orden para estos pares de divisas sino que, por ejemplo, para un día el indicador haya mostrado varias aperturas pero el cierre aún no se haya producido y se abran 3 o 5 órdenes en pares en estos dos pares de divisas. Por favor, aconséjeme cómo ponerlo en práctica.


// Recuento de pedidos
Symb1=SímboloN1(variable externa); // Nombre del instrumento financiero.
Symb2=SímboloN2(variable externa); // Nombre del instrumento financiero.
Total=0; // Número de pedidos
for(int=1; i<=OrdersTotal(); i++) // Bucle de pedidos
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Si lo siguiente
{ // Análisis de pedidos:
if (OrderSymbol()!=Symb1 $$ OrderSymbol()!=Symb2)continue; // No es nuestro instrumento financiero
if (OrderType()>1) // Orden pendiente detectada
{
Alert("Orden pendiente detectada. Asesor experto no funciona.");
return; // Salir start()
}
Total++; // Contador de mercado. orders
if (Total>2) // No hay más de dos órdenes
{
Alert("more than 2 market orders. Expert Advisor does not work.");
return; // Exit start()
}
Debajo de este valor se establece la variable, para manipularla para la segunda iteración, ya que habrá 2 órdenes (la segunda en otro par de divisas) cambiarán los valores para la segunda orden, pero necesito comprometer la información para la primera y la segunda orden.
Ticket=OrderTicket(); // Número del pedido seleccionado.
Tip =OrderType(); // Tipo de la orden seleccionada.
Precio =OrderOpenPrice(); // Precio de la orden seleccionada.
SL =OrderStopLoss(); // SL de la orden seleccionada.
TP =OrderTakeProfit(); // TP de la orden seleccionada.
Lot =OrderLots(); // Número de lotes
¿Podemos utilizar las mismas variables para el segundo pedido, sólo que con el prefijo 1?
Ticket1=OrderTicket(); // Número del pedido seleccionado.
Tip1 =OrderType(); // Tipo de la orden seleccionada.
Precio1 =Precio de la orden(); // Precio de la orden seleccionada.
SL1 =OrderStopLoss(); // SL de la orden seleccionada.
TP1 =OrderTakeProfit(); // TP de la orden seleccionada.
Lote1 =OrderLots(); // Número de lotes
}
}

 
artmedia70:

ERR_LONGS_NOT_ALLOWED 4110 Las posiciones largas no están permitidas. Hay que comprobar las propiedades de los expertos.

ERR_SHORTS_NOT_ALLOWED 4111 Las posiciones cortas no están permitidas. Hay que comprobar las propiedades de los expertos.


¿qué quiere decir con posiciones largas y cortas, cómo son?
 
artmedia70:

Pensamiento más o menos correcto.

Se trata de variables de tipo bool en su gran mayoría.

Y sólo puede tener dos valores:

verdadero (true) y falso (false).

Así, si el indicador está activado (valor verdadero), significa que hay un pedido, y si está desactivado (valor falso), significa que no hay ningún pedido.

Los valores verdadero y falso no significan necesariamente presencia/ausencia.

A veces, falso significa que una condición está presente , y verdadero significa que no hay ninguna condición.

Todo depende de la lógica del programa y de los criterios que el programador compruebe.

En cualquier caso, si usted mismo establece estas banderas, puede especificar el valor de la bandera (verdadero o falso)

corresponderá a un estado de datos u otro.

Al mismo tiempo, hay funciones estándar que devuelven verdadero o falso según el resultado de la función.

Estos valores se pueden encontrar en la referencia de la función.

Artyom, gracias.
 
gheka:

¿qué significan largo y corto? ¿qué aspecto tienen?

Largo = Largo = Compra

short =Corto = Vender


 

Gracias

 

Estoy buscando un script que cierre una orden sólo cuando la barra esté por encima o por debajo de un nivel especificado.

Por supuesto que debería haber un ajuste de tf.

. Si hay un script de este tipo, dame un enlace. Muchas gracias de antemano

 

Tengo órdenes de compra y venta que se abren al mismo precio para casi 50-100 posiciones,

cómo debo hacer para que sólo se abra una orden, si no me equivoco - OrdersTotal()

Si es así, ¿cómo debo usarlo y dónde debo colocarlo? Siento que sin esta función necesito introducir todo el álgebra

 
gheka:

Tengo órdenes de compra y venta que se abren al mismo precio para casi 50-100 posiciones,

cómo debo hacer para que sólo se abra una orden, si no me equivoco - OrdersTotal()

Si es así, ¿cómo debo usarlo y dónde debo colocarlo? Siento que sin esta función necesito introducir todo el álgebra


Debería haber adjuntado su propio código.
 
gheka:

Tengo órdenes de compra y venta que se abren al mismo precio para casi 50-100 posiciones,

como debo hacer para que solo se abra una orden, si no me equivoco - OrdersTotal()

Si es así, ¿cómo debo usarla y dónde debo colocarla? Siento que sin esta función necesito introducir todo el álgebra

La función OrderSend() funciona con cada tick (creo que sí). Para resolver este problema, es necesario crear una variable antes de la función de inicio, por ejemplo int H=0.

Más allá del código:

..........

si ( H==0)

{

OrderSend(blah blah blah);

}

H=1;

Y no es necesario el álgebra. Y OrdersTotal() es mejor no utilizarlo para la restricción.