Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 323

 
999666:

Esta es la función

Se adjunta el propio asesor


Nombres de variables extraños, el descompilador lo hace))
 
artmedia70:

Mierda, Boris. Ya he escrito antes. Pues bien, haz un spread flotante simulado directamente en tu EA. Qué te impide añadir un número aleatorio en el rango de spread flotante a la oferta y abrir con órdenes de stop. Y cerrar por valor, no por órdenes de detención. Es más difícil que poner una extensión estática más grande, pero si realmente lo necesitas, puedes hacerlo. Al mismo tiempo, en el probador, ajuste la dispersión mínima.

Esto es sólo ... Esto es sólo una forma de pensar.

Lo he comprobado y, desgraciadamente, ¡ésta no es la solución! ¡Error 138! ¡Está claro que ahora el probador y el Asesor Experto tienen diferentes Ask! ¡Por eso rakwot! Ajustar el algoritmo a la dispersión no tiene sentido.

Por ahora, utilizaré la extensión constante aumentada. Tal vez los desarrolladores hagan una imitación de la propagación variable y los retrasos en la ejecución de las órdenes.

¡Si estuviera en Moscú te invitaría a tortitas! :))

Y aquí sólo tengo crepes. :(( ¡Pero te habría invitado de todos modos!

 

¡Saludos a los usuarios del foro!

¿Puedes aconsejar a un novato por qué el código anterior borra cualquier otro objeto? Queda la mitad. ¿Qué tiene de malo?

int deinit()
  {
  int    obj_total=ObjectsTotal();
  
  for(int i=0;i<obj_total;i++)
      {
      ObjectDelete(ObjectName(i)); 
      }
   return(0);
  }
 
Parkhom:

¡Saludos a los usuarios del foro!

¿Puedes aconsejar a un novato por qué el código anterior borra cualquier otro objeto? Queda la mitad. ¿Qué tiene de malo?

Y así:

int deinit()
  {
  ObjectsDeleteAll();
  return(0);
  } 
 
r772ra:

Y así:


Vale, ponlo en reserva :) Si no puedes hacerlo de otra manera.

ObjectsDeleteAll() - borra todo. Quiero que sea bonito y que borre los objetos dibujados por el indicador.

 
Parkhom:


Lo dejé en espera :) Si no hay otra manera.

ObjectsDeleteAll() - borra todo. Pero quiero que sea bonito y borre los objetos dibujados por el indicador.

int deinit() {
// -------- Блок удаления всех объектов, построенных на графике --------
   string Name_Del[1]; 
   int Quant_Del=0;                    
   int Quant_Objects=ObjectsTotal();   
   int LenPref=StringLen(Prefix);
   ArrayResize(Name_Del,Quant_Objects);
   for(int k=0; k<Quant_Objects; k++) {
      string Obj_Name=ObjectName(k);   
      string Head=StringSubstr(Obj_Name,0,LenPref);
      if (Head==Prefix) {                              
         Quant_Del+=1;        
         Name_Del[Quant_Del-1]=Obj_Name;
         }
     }
   for(int i=0; i<Quant_Del; i++) ObjectDelete(Name_Del[i]); 
// ----- Конец блока удаления всех объектов, построенных на графике -----
   return(0);
}

En init(), también hay que inicializar la variable Prefix declarada globalmente

Por ejemplo:

int init() {
   IndicatorShortName("IB_"+Symbol());
   Prefix="IB_"+Symbol();
//-----------------------------
   SetIndexBuffer(0, isbup);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,181);
   SetIndexEmptyValue(0,0.0);
   SetIndexLabel(0,"Long Signal");
//-----------------------------
   SetIndexBuffer(1, isbdn);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,181);
   SetIndexEmptyValue(1,0.0);
   SetIndexLabel(1,"Short Signal");
//-----------------------------
   SetIndexBuffer(2, arrup);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexArrow(2,159);
   SetIndexEmptyValue(2,EMPTY_VALUE);
   SetIndexLabel(2,"Long Level");
//-----------------------------
   SetIndexBuffer(3, arrdn);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexArrow(3,159);
   SetIndexEmptyValue(3,EMPTY_VALUE);
   SetIndexLabel(3,"Short Level");
//-----------------------------
   return(INIT_SUCCEEDED);
}
 
borilunad:

Lo he comprobado y, por desgracia, ¡no es la respuesta! Aparece el error 138. Es bastante comprensible que el probador y el experto tengan ahora diferentes peticiones. Por eso, ¡se rastrillan los votos! Ajustar el algoritmo a la dispersión no tiene sentido.

Por ahora, utilizaré la extensión constante aumentada. Tal vez los desarrolladores hagan una imitación de la propagación variable y los retrasos en la ejecución de las órdenes.

¡Si estuviera en Moscú te invitaría a tortitas! :))

Y aquí sólo tengo crepes. :(( ¡Pero te habría invitado de todos modos!

Te dije que no abrieras en el mercado, sino que usaras órdenes de stop. Te lo dije de inmediato.

Y gracias por los panqueques. Puedes enviármelos por Skype. ;)

 
Parkhom:


Lo puse en espera :) Si no hay otra manera.

ObjectsDeleteAll() - borra todo. Pero quiero tener un buen aspecto y eliminar los objetos dibujados por el indicador.


¿Quiere buscarlos y eliminarlos por su nombre? ¿O puede ser que tengas medio millar de objetos ahí?


Y si en un bucle, vale la pena probar la secuencia inversa en un bucle

 for(int i=obj_total-1;i>=0;i--)
      {
      ObjectDelete(ObjectName(i)); 
      }
 
He empezado a probar mi Expert Advisor, he empezado a tener problemas con el probador, me gustaría preguntar a los probadores experimentados cuánto puede agravar el probador? No estoy seguro del problema que tiene el probador, pero me gustaría saber cuánto tiene el probador.
 
Burger:
He empezado a probar mi Expert Advisor, he empezado a tener problemas con el probador, me gustaría preguntar a los probadores experimentados cuánto puede agravar el probador? No sé, empecé a probar mi probador, empezó a tener problemas con él, me gustaría preguntar a los "probadores" experimentados cuánto puede empeorar el probador.
¿Qué tiene que ver el probador con esto?