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

 
costy_:
Gracias.
 
Roman.:


Copias de terminales... :-)

Cada uno tiene su propia cuenta de operaciones.

¿Quieres decir que tienes que ejecutar varios terminales al mismo tiempo y entrar con diferentes nombres de usuario en cada uno?
 
LOA:

Sí.... Respuesta "exhaustiva". Todo evento debe tener una razón. Los profesionales, al encontrarse con algunos problemas, saben a qué prestar atención. He revisado el algoritmo varias veces pero no encuentro la causa. Así que pido consejo a los profesionales: ¿cuál podría ser la causa?
Bueno, si usted no puede hacerlo usted mismo, el algoritmo en su conjunto no hace daño, en las líneas dadas defectos aparentes no lo son. El comentario es totalmente acertado.
 
costy_:

... indicador.

int start(){
  double Val=iCustom(NULL, 0, "HMR MULTI Indicator",0,0);   
  Alert(Val);
}

pruebe el método de la "corazonada" con un Asesor Experto vacío,

Compruebe en el indicador de ObjectCreate para encontrar su subventana (o por qué dibujarla SI SE ESTÁ PROBANDO U OPTIMIZANDO)

if(IsTesting()||IsOptimization())флаг_Канады_не_рисовать_obj=true;          //проверяем надо ли рисовать (в ините ему место через статик переменную)
if(!флаг_Канады_не_рисовать_obj){                                           //запрет отрисовки объектов ели оптимизация или тестирование
ObjectCreate(........................);
}


He probado con un Asesor Experto vacío, la alerta se muestra normalmente, pero en el indicador ObjectCreate tiene esta vista:

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Yellow
#property indicator_color2 Aqua
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 White
#property indicator_color6 Magenta
#property indicator_color7 Lime
#property indicator_color8 Indigo

extern string S1 = "EURUSD";  
extern string S2 = "EURJPY";  
extern string S3 = "EURCAD";  
extern string S4 = "AUDUSD";  
extern string S5 = "GBPUSD";  
extern string S6 = "USDJPY";  
extern string S7 = "USDCHF";  
extern string S8 = "USDCAD";
//переменные объявляем сразу,чтобы постоянно не создавались (оптимизация)
double Buff1[],Buff2[],Buff3[],Buff4[],Buff5[],Buff6[],Buff7[],Buff8[],
       x1,x2,x3,x4,x5,x6,x7,x8;
int    BarsOnScreen,LeftBar,RightBar,i;
bool   _init;
string name = "HMR MULTI Indicator";     
//+------------------------------------------------------------------+
int init()
  {
   _init = false;
   IndicatorBuffers(8);
   //Если символ графика совпадает с символом прорисовки,нарисуем линию толще
   if (Symbol()==S1) i=3;else i=1;
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,i,indicator_color1); SetIndexBuffer(0,Buff1);
   if (Symbol()==S2) i=3;else i=1;
   SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,i,indicator_color2); SetIndexBuffer(1,Buff2);
   if (Symbol()==S3) i=3;else i=1;
   SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,i,indicator_color3); SetIndexBuffer(2,Buff3);
   if (Symbol()==S4) i=3;else i=1;
   SetIndexStyle (3,DRAW_LINE,STYLE_SOLID,i,indicator_color4); SetIndexBuffer(3,Buff4);
   if (Symbol()==S5) i=3;else i=1;
   SetIndexStyle (4,DRAW_LINE,STYLE_SOLID,i,indicator_color5); SetIndexBuffer(4,Buff5);
   if (Symbol()==S6) i=3;else i=1;
   SetIndexStyle (5,DRAW_LINE,STYLE_SOLID,i,indicator_color6); SetIndexBuffer(5,Buff6);
   if (Symbol()==S7) i=3;else i=1;
   SetIndexStyle (6,DRAW_LINE,STYLE_SOLID,i,indicator_color7); SetIndexBuffer(6,Buff7);
   if (Symbol()==S8) i=3;else i=1;
   SetIndexStyle (7,DRAW_LINE,STYLE_SOLID,i,indicator_color8); SetIndexBuffer(7,Buff8);
  return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
  ObjectsDeleteAll();  
  return(0);
  }
//+------------------------------------------------------------------+
int start()
{
      if (!_init) MyInit();
      BarsOnScreen = WindowBarsPerChart()+1;
      LeftBar = WindowFirstVisibleBar();
      RightBar = LeftBar-BarsOnScreen;
      if (RightBar<0) RightBar=0;
       //Проверяем есть ли история баров для прорисовки
      if (LeftBar>iBars(S1,0) || LeftBar>iBars(S2,0) || LeftBar>iBars(S3,0) || LeftBar>iBars(S4,0) ||
          LeftBar>iBars(S5,0) || LeftBar>iBars(S6,0) || LeftBar>iBars(S7,0) || LeftBar>iBars(S8,0)) return;
       //Выносим из цикла,чтобы уменьшить расчёты (оптимизация)
       x1=iClose(S1,0,iHighest(S1,0,MODE_CLOSE,BarsOnScreen,RightBar));
       x2=iClose(S2,0,iHighest(S2,0,MODE_CLOSE,BarsOnScreen,RightBar));
       x3=iClose(S3,0,iHighest(S3,0,MODE_CLOSE,BarsOnScreen,RightBar));  
       x4=iClose(S4,0,iHighest(S4,0,MODE_CLOSE,BarsOnScreen,RightBar));
       x5=iClose(S5,0,iHighest(S5,0,MODE_CLOSE,BarsOnScreen,RightBar));
       x6=iClose(S6,0,iHighest(S6,0,MODE_CLOSE,BarsOnScreen,RightBar));
       x7=iClose(S7,0,iHighest(S7,0,MODE_CLOSE,BarsOnScreen,RightBar));
       x8=iClose(S8,0,iHighest(S8,0,MODE_CLOSE,BarsOnScreen,RightBar));
       for(i=RightBar; i<LeftBar; i++)
        {       
         Buff1[i] = iClose(S1,0, i)/x1;
         Buff2[i] = iClose(S2,0, i)/x2;
         Buff3[i] = iClose(S3,0, i)/x3;  
         Buff4[i] = iClose(S4,0, i)/x4;
         Buff5[i] = iClose(S5,0, i)/x5;
         Buff6[i] = iClose(S6,0, i)/x6;
         Buff7[i] = iClose(S7,0, i)/x7;
         Buff8[i] = iClose(S8,0, i)/x8;
        }
return(0);
}   
//+------------------------------------------------------------------+
void MyInit ()
{
   //Подменяем имя индикатора чтобы получить уникальный номер окна
   string label = GetTickCount();
   IndicatorShortName(label);
   int win = WindowFind(label);
   //Восстанавливаем имя индикатора
   IndicatorShortName(name);
   //---- labels    
   ObjectCreate("L1"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L1"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L1"+label,OBJPROP_YDISTANCE,12);
   ObjectSetText("L1"+label,S1,10,"Tahoma",indicator_color1);
   ObjectCreate("L2"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L2"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L2"+label,OBJPROP_YDISTANCE,24);
   ObjectSetText("L2"+label,S2,10,"Tahoma",indicator_color2);
   ObjectCreate("L3"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L3"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L3"+label,OBJPROP_YDISTANCE,36);
   ObjectSetText("L3"+label,S3,10,"Tahoma",indicator_color3);
   ObjectCreate("L4"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L4"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L4"+label,OBJPROP_YDISTANCE,48);
   ObjectSetText("L4"+label,S4,10,"Tahoma",indicator_color4);
   ObjectCreate("L5"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L5"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L5"+label,OBJPROP_YDISTANCE,60);
   ObjectSetText("L5"+label,S5,10,"Tahoma",indicator_color5);   
   ObjectCreate("L6"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L6"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L6"+label,OBJPROP_YDISTANCE,72);
   ObjectSetText("L6"+label,S6,10,"Tahoma",indicator_color6);
   ObjectCreate("L7"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L7"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L7"+label,OBJPROP_YDISTANCE,84);
   ObjectSetText("L7"+label,S7,10,"Tahoma",indicator_color7);
   ObjectCreate("L8"+label,OBJ_LABEL,win,0,0,0,0);
   ObjectSet("L8"+label,OBJPROP_XDISTANCE,10);
   ObjectSet("L8"+label,OBJPROP_YDISTANCE,96);
   ObjectSetText("L8"+label,S8,10,"Tahoma",indicator_color8);
   WindowRedraw();
   _init = true;
}

¿Qué debería cambiar aquí...?

 
kolyango:


He probado con un EA vacío, la alerta se muestra bien, pero en el indicadorObjectCreate tieneesta vista:

¿Qué hay que cambiar aquí...?

la desalineación está asegurada.

iClose(S1,0,iHighest(S1,0,MODE_CLOSE,BarsOnScreen,iBarShift(S1,0,Time[RightBar])));

y tienes

iClose(S1,0,iHighest(S1,0,MODE_CLOSE,BarsOnScreen,RightBar))

cambio en el tiempo pero no en los bares

la realización de todo en una ventana no es buena (aunque las guirnaldas de año nuevo))

y lleva mucho tiempo )) tutz

Archivos adjuntos:
xxx.mq4  7 kb
 
gara:

Hola a todos, pregunta para los profesionales:

Por favor, explique cómo funciona MT4.

Mi visión:

El terminal está funcionando, Internet está conectado, en la visión general del mercado algunos instrumentos están funcionando, algunos gráficos están abiertos desde ellos. Consideremos un instrumento que tiene un gráfico abierto, digamos que se ha movido de un lado a otro y la barra se ha cerrado. El momento no está claro:

¿La última barra formada que veo en mi gráfico se corresponde con la barra en el lado del broker, porque una parte de los ticks podría perderse o hay una sincronización total con la llegada de cada tick?

¿Con qué frecuencia se sincroniza mi historial con el del corredor?


Me atrevo a repetir la pregunta
 
gara:
Atrévete a repetir la pregunta
gara El terminal se sincroniza cada tick. Puede haber varios ticks por segundo. Sólo se desincroniza si se pierde la conexión. En este caso, cuando la comunicación reaparece, se cargan los ticks perdidos.
 
igid:
Entonces, ¿hay que arrancar varios terminales a la vez e iniciar la sesión con distintos nombres de usuario en cada uno?

Exactamente. Es más fácil incluso no instalar los terminales desde cero, sino copiar el existente con las configuraciones ya disponibles en carpetas, por ejemplo 1,2,3,4...100

Y tienes que pulsar "Abrir cuenta" en cada terminal y simultáneamente iniciar el Asesor Experto con diferentes configuraciones, que quieres comprobar y ver en un mes o dos, qué configuración es la mejor.

 

¿Pueden informar sobre quién ha utilizado el terminal de Alpari? Ejecuto un Asesor Experto para 50 pares de divisas, pero sigue perdiendo un tick, incluso para las órdenes pendientes. Tengo una configuración de deslizamiento.

También me sale el error 4066, no hay símbolo en la ventana de visión general del mercado, aunque está ahí.

¿Es un servidor con tantos fallos? En otro corredor incluso con una fracción de tales problemas no me enfrenté

 

Buenas tardes a todos,

Soy un completo novato en la programación y mi robot hace sólo 2 operaciones a la semana,

Pero, ¿podríais decirme cómo (! ¡muy cansado de buscar!) cambiar el color de la línea de la media móvil (estoy usando la iMa estándar) en el gráfico?

Ejemplo de código: FixEma= iMA (NULL,0,fix,0, MODE_EMA, PRICE_LOW,0);

Son de color rojo (tengo 6) y después de cada prueba tengo que pintar el gráfico manualmente (soy así...). No quiero reescribirlo.

¿Tal vez haya un comando estándar?

No juzgues estrictamente, sólo estoy aprendiendo...

Razón de la queja: