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
Cómo hacer que el EA abra no una posición, sino 2 o 3 a la vez en una dirección. Por ejemplo, ¿cómo puedo abrir dos posiciones unidireccionales a 0,5 y 0,5 lotes en lugar de un lote? O 0,3+0,3+0,3 lotes.
>> ¿Cómo configuro el terminal para que cuando lo cambie a ruso, diga todo en ruso, porque mi idioma está escrito en jeroglíficos?
En la configuración regional de Windows, establezca el idioma en ruso para utilizarlo en aplicaciones que no utilizan Unicode.
Hola, tengo una pregunta directamente a Igor Kim porque es el autor (si no me equivoco) del indicador i-SignalOfTrade.
El indicador realiza todas sus funciones perfectamente, pero al enviar un correo electrónico aparecen las siguientes entradas en el registro
Correo: 'i-SignalOfTrade' falló
Correo: 451 Véase http://pobox.com/~djb/docs/smtplf.html.
y por supuesto el mensaje no va a ninguna parte.
¿Pueden decirme cuál puede ser el problema y cómo solucionarlo?
P.D. El cliente de correo está configurado correctamente, los mensajes de prueba se envían y entregan sin problemas.
Buenas tardes. ¿Puede decirme quién lo sabe? Estoy trabajando con el índice RTS. El tamaño de la posición es calculado por un programa de terceros y transmitido al Asesor Experto a través de un archivo txt. Tengo dos problemas aquí:
1. Como el bloque de inicio {...} sólo se activa cuando llega un nuevo tick y los ticks en el índice son escasos, hay un retraso en la ejecución del EA.
Lo he colocado en un instrumento de ticking más frecuente ( EURUSD ), pero aún así pregunto - ¿es posible iniciar forzosamente {...}?
2. El tamaño máximo de posición permitido por mi broker es de 20 lotes. Necesito abrir una posición de 100 lotes. Ahora mismo estoy abriendo una posición a la vez,
pero se tarda mucho, unos 4 segundos por pedido. (es decir, tarda 20 segundos en abrir una posición), y a veces eso no es bueno. ¿Hay alguna forma de hacerlo más rápido? (a través de órdenes de stop preestablecidas - a mí no me funciona).
2. el tamaño máximo de posición permitido por el broker es de 20 lotes. Necesito abrir una posición de 100 lotes. Ahora estoy abriendo en sucesión,
pero se tarda mucho, unos 4 segundos por pedido. (es decir, tarda 20 segundos en abrir una posición), y a veces eso no es bueno. ¿Hay alguna forma de hacerlo más rápido? (a través de órdenes de stop precolocadas - a mí no me funciona).
https://forum.mql4.com/ru/13567
leer.
He entendido bien que en un tick el EA enviará varias órdenes de compra al sistema de trading al mismo tiempo,
en lugar de esperar a que el servidor responda a la primera aceptación y ejecución de la orden, luego a la segunda, y así sucesivamente? ??
Hasta ahora lo tengo así - ejemplo - (registro, cuenta real, tiempo real)
10.55.13 - orden de compra de mercado 20 RTS - se trata de los primeros 20 lotes
10.55.13 - La solicitud ha sido aceptada por el servidor
10.55.13 - solicitud en curso
10.55.17 - se abrió el pedido
10.55.18 - orden de compra de mercado 20 RTS - este es el segundo 20 lotes
10.55.18 - La solicitud ha sido aceptada por el servidor
10.55.19 - solicitud en curso
10.55.22 - se abrió la orden
10.55.23 - orden de compra de mercado 20 RTS - este es el tercer 20 lotes
10.55.23 - la solicitud ha sido aceptada por el servidor
10.55.24 - solicitud en curso
10.55.27 - se abrió la orden
y me gustaría que toda la posición se abriera en los primeros 4 segundos, es decir, antes de las 10.55.17
2. el tamaño máximo de posición permitido por el broker es de 20 lotes. Necesito abrir una posición de 100 lotes. Ahora estoy abriendo en sucesión,
pero se tarda mucho, unos 4 segundos por pedido. (es decir, tarda 20 segundos en abrir una posición), y a veces eso no es bueno. ¿Hay alguna forma de hacerlo más rápido? (a través de órdenes de stop preestablecidas - a mí no me funciona).
Si se ejecutan 4 terminales, llegarán al distribuidor 4 solicitudes para su procesamiento a la vez, no una por una.
¡Igor, hola!
¿Podría aconsejarme cómo implementar una notificación sonora en un indicador existente?
Por ejemplo, en ZigZag. Si quieres tener sonido en el momento de trazar la nueva línea, regístralo en el Organizador:
//+------------------------------------------------------------------+
//| Zigzag.mq4 ||
//| Copyright © 2005-2007, MetaQuotes Software Corp.
//| https://www.metaquotes.net// |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#enlace de la propiedad "https://www.metaquotes.net//"
#propiedad ventana_del_gráfica_del_indicador
#property indicator_buffers 1
#property indicator_color1 Rojo
//---- parámetros del indicador
extern intDepth=12;
extern inttern ExtDeviation=5;
extern inttern ExtBackstep=3;
//---- búferes indicadores
doble ZigzagBuffer[];
doble HighMapBuffer[];
doble LowMapBuffer[];
int level=3; // profundidad del recuento
bool downloadhistory=false;
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- ajustes de dibujo
SetIndexStyle(0,DRAW_SECTION);
//---- asignación de topes indicadores
SetIndexBuffer(0,ZigzagBuffer);
SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);
//---- nombre corto del indicador
IndicatorShortName("ZigZag("+ExtDepth+", "+ExtDeviation+", "+ExtBackstep+")";
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int inicio()
{
int, counted_bars = IndicatorCounted();
int limite,contadorZ,quepunto de vista;
int cambio,atrás,última posición alta,última posición baja;
doble val,res;
doble curlow,curhigh,lastthigh,lastlow;
if (counted_bars==0 && downloadhistory) // se ha descargado el historial
{
ArrayInitialize(ZigzagBuffer,0.0);
ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0;)
}
si (barras_contadas==0)
{
limit=Barras-ProfundidadExterior;
downloadhistory=true;
}
si (barras_contadas>0)
{
while (contadorZ<nivel && i<100)
{
res=ZigzagBuffer[i];
si (res!=0) contadorZ++;
i++;
}
i--;
limit=i;
if (LowMapBuffer[i]!=0)
{
curlow=BufferMapaBajo[i];
whatlookfor=1;
}
si no
{
curhigh=MapaAltoBuffer[i];
para qué=-1;
}
for (i=limit-1;i>=0;i--)
{
ZigzagBuffer[i]=0.0;
LowMapBuffer[i]=0.0;
HighMapBuffer[i]=0.0;
}
}
for(shift=limit; shift>=0; shift--)
{
val=Low[iLowest(NULL,0,MODE_LOW,ExtDepth,shift)];
if(val==lastlow) val=0,0;
si no
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
si no
{
for(back=1; back<=ExtBackstep; back++)
{
res=BufferMapaBajo[shift+back];
if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;
}
}
}
si (Low[shift]==val) LowMapBuffer[shift]=val; si no LowMapBuffer[shift]=0.0;
//--- alto
val=Alto[iAlto(NULL,0,MODO_ALTO,ProfundidadExt,desplazamiento)];
if(val==lasthigh) val=0,0;
si no
{
último muslo=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
si no
{
for(back=1; back<=ExtBackstep; back++)
{
res=MapaAltoBuffer[shift+back];
if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;
}
}
}
si (High[shift]==val) HighMapBuffer[shift]=val; si no, HighMapBuffer[shift]=0.0;
}
// corte final
si (whatlookfor==0)
{
lastlow=0;
último tramo=0;
}
si no
{
lastlow=curlow;
último tramo = último tramo;
}
for (shift=limit;shift>=0;shift--)
{
res=0,0;
switch(whatlookfor)
{
caso 0: // buscar pico o césped
if (lastlow==0 && lasthigh==0)
{
if (HighMapBuffer[shift]!=0)
{
lasthigh=altura[turno];
lastthighpos=desplazamiento;
para qué=-1;
ZigzagBuffer[shift]=lastra;
res=1;
}
if (LowMapBuffer[shift]=0)
{
lastlow=Low[shift];
lastlowpos=desplazamiento;
whatlookfor=1;
ZigzagBuffer[shift]=lastlow;
res=1;
}
}
romper;
caso 1: // buscar el pico
if (LowMapBuffer[shift]=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastlowpos]=0.0;
lastlowpos=desplazamiento;
lastlow=BufferMapaBajo[shift];
ZigzagBuffer[shift]=lastlow;
res=1;
}
if (HighMapBuffer[shift]=0.0 && LowMapBuffer[shift]==0.0)
{
lasthigh=BufferMapaAlto[shift];
lastthighpos=desplazamiento;
ZigzagBuffer[shift]=lastra;
para qué=-1;
res=1;
}
romper;
caso -1: // buscar el césped
if (HighMapBuffer[shift]=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastthighpos]=0.0;
lastthighpos=desplazamiento;
lasthigh=BufferMapaAlto[shift];
ZigzagBuffer[shift]=lastra;
}
if (LowMapBuffer[shift]=0.0 && HighMapBuffer[shift]==0.0)
{
lastlow=BufferMapaBajo[shift];
lastlowpos=desplazamiento;
ZigzagBuffer[shift]=lastlow;
whatlookfor=1;
}
romper;
por defecto: retorno;
}
}
return(0);
}
//+------------------------------------------------------------------+