[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 304
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
El problema es que el EA reabre constantemente las órdenes, es decir, hay una señal de compra - abre una orden, luego la cierra en beneficio, y las condiciones se conservan la abre de nuevo.
Pensé que se podría resolver con el contador tradicional de compra y venta - si la orden de compra abrió el contador +1 y una nueva compra no se puede abrir hasta que el contador está por encima de 0 y el contador se restablece sólo después de la venta.
Es decir, ¿hay señal en una barra pero ya ha sido utilizada?
Puedes hacerlo así
Pruébalo así.
Debería funcionar en ambos sentidos.
Para mí tiene más sentido.
¡Hola a todos!
Perdón por el off-topic, el tema está en demanda, por eso escribo aquí, ¿me pueden dar una pista? Atascado.
¿Cómo, utilizando sólo operaciones elementales (+-*/%), realizar la exponenciación (incluso real) de un número real? Por ejemplo, la calculadora de viento, cuando se aplica a la potencia de 1,2, da el resultado 1,2445647472073939777218169154111826. Interesado en el algoritmo, la lengua no importa, ninguna. Lo traduciré yo mismo.
ZS. ¿Cuántas pruebas de programación no he hecho, veo un problema así por primera vez, aunque puede ser trivial para alguien?
¡Buenas tardes a todos!
He buscado en muchos foros y artículos de Google , pero no he encontrado una respuesta
He decidido escribir un EA para operar con dos órdenes opuestas en М1
La idea es simple: poner dos órdenes opuestas con TP pequeños, entonces, cuando el TP de uno de ellos para el segundo temporizador activado es el número de barras (digamos 5), será SL temporal. El cálculo es que si la divisa se moverá en la misma dirección, las pérdidas cuando la segunda orden activa el SL temporal serán mínimas, si el gráfico se da la vuelta, estamos en el negro en dos posiciones.
No sé cómo escribir un fragmento de código con "cuando se dispara un TP de uno de ellos, el temporizador del segundo se enciende como un número de barras".
actualmente solo tengo un temporizador para dos pedidos a la vez, pero no puedo sacarle mucho partido
PS No he resuelto este problema durante un mes, por favor, ayúdame con consejos o código:)
aquí está el código del asesor
extern int SL=100;
extern int TP=100;
extern double StartLot=0.1;
extern double StopLot=1.0;
extern int bar_time=20;
double Lot()
{
double lt;
if(OrdersHistoryTotal()==0) return (StartLot);
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()<0)
{
lt=OrderLots()*2;
if(lt>StopLot) return (StartLot);
else return (lt);
}
else
return (StartLot);
}
else
return (StartLot);
}
int start()
{
double lot;
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
{
int order;
{
lot=Lot();
order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);
}
}
//вот здесь должно быть что-то что является решением проблемы и связующим звеном
{
int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;
if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }
if ( bars >= bar_time )
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);
}
return(0);
}
Gracias de antemano
Es decir, ¿hay señal en una barra, pero ya ha sido utilizada?
Puedes hacer esto
¡Hola a todos!
Perdón por el off-topic, el tema está en demanda, por eso escribo aquí, ¿me pueden dar una pista? Atascado.
¿Cómo, utilizando sólo operaciones elementales (+-*/%), realizar la exponenciación (incluso real) de un número real? Por ejemplo, la calculadora de viento, cuando se aplica a la potencia de 1,2, da el resultado 1,2445647472073939777218169154111826. Interesado en el algoritmo, la lengua no importa, ninguna. Lo traduciré yo mismo.
ZS. Cuántas pruebas de programación no he hecho, es la primera vez que veo un problema así, aunque puede ser trivial para algunos...
https://docs.mql4.com/ru/math/MathPow ¿no? O las operaciones elementales son una condición del problema. Entonces la opción http://bpascal.ru/download/desc/436.php si lo haces todo a mano, entonces implementa el exponente y el logaritmo con tus propias funciones.
Se utiliza while(i>=0), de modo que cuando aparece una nueva vela i=1 (para asegurarse de que los datos de la vela anterior se calculan sobre los datos fijos una vez).
Por qué introducir some_time=D'1971.01.11 00:00'; usar Bares, IndicatorCounted no me funciona (bueno, el error es probablemente por el first_t_bar).
Su algoritmo y debería arreglarlo.
"Soynuevo en la programación."Soy nuevo en la programación desde 2007).
De todos modos, no entiendo por qué mi diseño funciona bien y el estándar no. some_time=D'1971.01.11 00:00'; aquí se utiliza una vez al inicio. Pero no tiene nada que ver porque en un caso funciona y en otro no. Volveré a hacer el indicador más tarde. Se trata de una versión modificada de otro indicador. Gracias por la respuesta.
¡Buenas tardes a todos!
He buscado en muchos foros y artículos de Google , pero no he encontrado una respuesta
He decidido escribir un EA para operar con dos órdenes opuestas en М1
La idea es simple: poner dos órdenes opuestas con TP pequeños, entonces, cuando el TP de uno de ellos para el segundo temporizador activado es el número de barras (digamos 5), será SL temporal. El cálculo es que si la divisa se moverá en la misma dirección, las pérdidas cuando la segunda orden activa el SL temporal serán mínimas, si el gráfico se da la vuelta, estamos en el negro en dos posiciones.
No sé cómo escribir un fragmento de código con "cuando se dispara un TP de uno de ellos, el temporizador del segundo se enciende como un número de barras".
actualmente solo tengo un temporizador para dos pedidos a la vez, pero no consigo sacarle mucho partido
PS durante un mes no puede resolver este problema, por favor, ayudar a los consejos o el código:)
aquí está el código
................................................
Daré lo mejor de mí de antemano gracias de antemano.
1. Si hay una posición cerrada en un Takei...
1.1 Si su tipo es OP_BUY, ...
1.1.2 Si hay una posición abierta OP_SELL, ...
1.1.3 Si el tiempo de la barra actual menos el tiempo de la barra que abre la posición de venta es mayor o igual que el número de barras para el retraso, ....
1.1.4 Cerramos la posición de venta
1.2 Si su tipo es OP_SELL, ...
1.2.2 Si hay una posición abierta OP_BUY, ...
1.2.3 Si el tiempo de la barra actual menos el tiempo de apertura de la posición de compra es mayor o igual que el número de barras a mantener, ....
1.2.4 Cerrar la posición de compra
Buenas noches a todos, pido disculpas por la pregunta estúpida anterior)
Quiero saber si es posible que un EA en el que hay una variable, digamos "A", tenga un valor de precio en el momento y opere. Si queremos cambiar este valor por cualquier valor histórico, por ejemplo, tomar cualquier valor mensual y derivar el valor deseado del análisis del historial. He intentado hacerlo en el probador de estrategias, pero tengo muchas dudas respecto a su corrección. ¿O tendré que volver a hacerlo y trabajar con matrices? Gracias a todos.
p.d. Quiero saber ya que no lo encontré en el manual y tutorial de MQL.