[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 618

 
xant:

rigonich

He eliminado los soportes para dejar un número par de soportes. Es decir, ambas funciones se insertan sin corchetes.

El resultado es el siguiente:

Entonces, después de todo el código de EA inserté

Lo tomo así, después del último paréntesis rizado, de hecho, por separado del EA. ¿Es correcto?

Si es correcto, esto es lo que se obtiene después de la compilación:


Estas advertencias dicen que la función y la variable en tu EA ya han sido definidas anteriormente. mira si te has olvidado de borrar el código que has insertado antes... si no... envíame el código del búho y pegaré las funciones en él por ti.
 
lottamer:


Exactamente. Primero tiene que tomar el ticket de la última posición cerrada GetTicketLastPos , y luego utilizar las funciones estándar para sacar lo que necesita de este ticket.

Gracias.


Maldición... no existe la función GetTicketLastPos,

hayun ticket GetTicketLastPos para la última posiciónabierta...

 
xant:

rigonich

He eliminado los soportes para dejar un número par de soportes. Es decir, ambas funciones se insertan sin corchetes.

El resultado es el siguiente:

Entonces, después de todo el código de EA inserté

Lo entiendo así: después de la última llave, de hecho, separada de la EA. ¿Es correcto?

Si es correcto, esto es lo que se obtiene después de la compilación:

Si el código fuera corto, lo habría publicado aquí y todos mis problemas se habrían resuelto rápidamente. PERO el EA tiene 1700 líneas, más 3 indicadores externos más, en los que se hace la mayor parte del cálculo... Así que sólo por correo, pero obviamente ya no se hace gratis.

Creo que esto tiene más sentido:

//+------------------------------------------------------------------+
//|                                                       Priner.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


double Var1, Var2, Var3, Var4;// 4-ре переменных для сохранения (у Вас они свои !!!)
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   fGet_MineGV();
//----
//Здесь ваш код
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   //Здесь ваш код
//----
   fSave_MineGV();
   return(0);
  }
//+------------------------------------------------------------------+
void fSave_MineGV (string fs_PrefName = "")     // префикс имени переменной
  {
    static datetime ldt_NewBar;
    datetime ldaTBeginBar = iTime (Symbol(), 1, 0);
//----
    //---- Сохраняемся в начале каждой минуты
    if (ldt_NewBar == ldaTBeginBar) return;
    ldt_NewBar = ldaTBeginBar;
    //---- Сохраняем поочереди значения каждой переменной
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
    GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    GlobalVariableSet (ls_Name, Var4);
//----
  }
void fGet_MineGV (string fs_PrefName = "")     // префикс имени переменной
  {
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
//----
    //---- Восстанавливаем значения переменных
    if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
  }  
//----
 
lottamer:


mierda... no existe la función deticket para la última posición cerrada,

hayun ticket GetTicketLastPos para la última posición abierta...


el ticket de la última posición cerrada está en el historial.
 
не забыли ли вы удалить код, который вставляли раньше? если нет -- пришлите мне код сова и я вам вставлю в него функции.

Tal vez realmente quede uno en alguna parte.

Lo inserté en otro EA limpio, que no tenía mis experimentos, y dio otros errores:

'if' - too complex expression     K:\test2\experts\02___AUDUSD.mq4 (1664, 2)
'=' - assignment expected         K:\test2\experts\02___AUDUSD.mq4 (1662, 24)
'if' - semicolon expected         K:\test2\experts\02___AUDUSD.mq4 (1664, 2)
3 error(s), 0 warning(s)        

De todos modos, envié un correo electrónico a

 

Estoy mirando con atención - he hecho exactamente lo que has escrito.

Pero no tengo retorno o deinit en mi EA. ¿Está bien? Todavía tengo errores.

 
xant:

Estoy mirando con atención - he hecho exactamente lo que has escrito.

Pero no tengo retorno o deinit en mi EA. ¿Está bien? Todavía tengo errores.

TarasBY respondió, pero hay un pequeño error en su código, por eso el compilador se queja de ello.

En mi puesto, no hay palabrotas.
 
rigonich:

el último billete cerrado está en la historia.


¿Puede enseñarme cómo acceder al historial?

¿cómo puedo sacar el último billete de allí?

 

r772ra

¡Sí! El compilador pasó sin ningún error.

¡Respeto!

 
lottamer:


¿puede enseñarme a referirse a la historia?

¿es así como se saca el último billete de allí?


Al igual que con la no-historia, sólo que en la función OrderSelect(int index, int select, int pool=MODE_TRADES) ponga MODE_HISTORY en lugar de MODE_TRADES y utilice OrdersTotal() en lugar de OrdersHistoryTotal().
Razón de la queja: