Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 87

 
Silent:

Incluso podría ser más rápido... Aunque no sé cómo será con la reasignación de memoria.

Por favor, ¿podríais decirme cómo ver cuánta memoria ocupa un Asesor Experto y cómo se reasigna?
 

Y todavía no puedo entender por qué los niveles no se crean usando ObjectCreate. Todas las funciones funcionan, pero no se crean objetos OBJ_TREND

Hay variables definidas a nivel global:

cadena oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

El código que debe crear los niveles:

void OnInit()
  {
   TimeOpenBar();
   ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oRes,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oRes,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oRes,OBJPROP_RAY,false);
   ObjectCreate(0,oSup,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oSup,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oSup,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oSup,OBJPROP_RAY,false);
   CreateLevels();

   ObjectCreate(0,oPP,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oPP,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oPP,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oPP,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oPP,OBJPROP_RAY,false);
   ObjectCreate(0,oRes1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oRes1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oRes1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oRes1,OBJPROP_RAY,false);
   ObjectCreate(0,oSup1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oSup1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oSup1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oSup1,OBJPROP_RAY,false);
   PPlevel();
  }
Amigos, ayuden a resolver esto. Por favor,
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
fyords:
Imprime los resultados de ObjectCreate, tal vez haya un error.
Bueno, ¿qué dice? ¿Imprimiste el resultado?
 
Por favor, aconséjenme cómo encontrar una literatura fácil de entender (lo más sencilla posible) sobre el análisis técnico. Parece que es comprensible al principio, pero cuando empiezo a leerlo, mi cerebro se niega a entenderlo :(
 
fyords:
¿Y qué dice? ¿Hiciste una salida del resultado?
A mí no me funcionó, algo estaba haciendo mal. La impresión no me dio nada.
 
NeSezon:
Por favor, aconséjenme cómo encontrar una literatura fácil de entender (lo más sencilla posible) sobre el análisis técnico. Cuando empiezo a leerlo lo entiendo, pero cuando empiezo a leerlo en detalle mi cerebro se niega a entenderlo :(
Prueba la "pequeña enciclopedia del comerciante" de Naiman.
 
WindSW:
A mí no me funcionó, algo estaba haciendo mal. La impresión no me dio nada.
ResetLastError();
bool result=ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
Debe haber estado haciéndolo mal.
 
fyords:
Debe haber sido un error.
Sí, realmente no es así como lo hice. Genera el error "5040 - tainted parameter of string type". Tengo parámetros para objetos establecidos a nivel global (el compilador advierte sin ellos) de la siguiente forma: cadena oRes, oSup, oPP, oRes1; etc. ¿Cómo arreglar esto y cómo especificar correctamente la cadena de parámetros correcta, para que todo funcione y el compilador no jure?
 
WindSW:
Sí, realmente no es así como lo hice. Genera el error "5040 - tainted parameter of type string". Tengo parámetros para objetos definidos a nivel global (el compilador avisa sin ellos) como este: string oRes, oSup, oPP, oRes1; etc. ¿Cómo arreglar esto y cómo especificar correctamente la cadena de parámetros correcta, para que todo funcione y el compilador no jure?

Bien, digamos que has declarado variables a nivel global, ¿has asignado valores a estas variables?

Si no, entonces le dices al programa "crea un objeto con tales y tales características con el nombre..." y hay un problema - el nombre no se da. Así que no lo crea.

¿No sería más fácil especificarlo directamente en el código de ObjectCreate?

ResetLastError();
bool result=ObjectCreate(0,"Name1",OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
 
WindSW:
Prueba la Enciclopedia del Pequeño Comerciante de Nyman
Gracias. Lo encontré. Me encantaría leerlo un día de estos.