[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 618

 
xant:

rigonich

Eu removi os parênteses para deixar um número par de parênteses. Ou seja, ambas as funções são inseridas sem parênteses curvos.

O resultado é o seguinte:

Então, depois de todo o código EA I inserido

Presumo que, de fato, após o último parêntese, separadamente da EA. É correto?

Se estiver certo, então isto é o que você recebe após a compilação:


Estes avisos dizem que a função e a variável em seu EA já foram definidas antes. veja se você esqueceu de apagar o código que inseriu antes? se não - envie-me o código da coruja e eu colarei as funções nele para você.
 
lottamer:


Exatamente. Primeiro você deve pegar o bilhete da última posição fechada GetTicketLastPos , e depois usar as funções padrão para tirar o que você precisa deste bilhete.

Obrigado.


Raios... não existe tal função como GetTicketLastPos,

um bilhete GetTicketLastPos para a última posiçãoaberta.

 
xant:

rigonich

Eu removi os parênteses para deixar um número par de parênteses. Ou seja, ambas as funções são inseridas sem parênteses curvos.

O resultado é o seguinte:

Então, depois de todo o código EA I inserido

Entendo isso da seguinte forma: após o último parêntese, de fato, separado da EA. É correto?

Se estiver certo, então isto é o que você recebe após a compilação:

Se o código fosse curto, eu o teria postado aqui e todos os meus problemas teriam sido resolvidos rapidamente. MAS a EA tem 1700 linhas, mais 3 indicadores externos, nos quais a maior parte do cálculo é feita... Portanto, somente pelo correio, mas obviamente não é mais feito de graça.

Acho que isto faz mais 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:


porcaria...não existe tal função comoum bilhete para a última posição fechada,

um bilhete GetTicketLastPos para a última posição aberta...


o bilhete da última posição fechada está na história.
 
не забыли ли вы удалить код, который вставляли раньше? если нет -- пришлите мне код сова и я вам вставлю в него функции.

Talvez realmente ainda haja um em algum lugar.

Eu a inseri em outra EA limpa, que não tinha minhas experiências, e ela deu outros erros:

'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 qualquer forma, eu enviei um e-mail

 

Estou olhando com cuidado - fiz exatamente como você escreveu.

Mas eu não tenho retorno ou deinit em minha EA. Está tudo bem? Eu ainda recebo erros.

 
xant:

Estou olhando com cuidado - fiz exatamente como você escreveu.

Mas eu não tenho retorno ou deinit em minha EA. Está tudo bem? Eu ainda recebo erros.

TarasBY respondente, mas há um pequeno erro em seu código, é por isso que o compilador reclama sobre isso.

Em meu posto, não há palavrões.
 
rigonich:

o último bilhete fechado está na história.


Você pode me ensinar como acessar a história?

como tirar de lá o último bilhete?

 

r772ra

Sim! O compilador passou sem nenhum erro.

Respeito!

 
lottamer:


você pode me ensinar a fazer referência à história?

É assim que se consegue tirar o último bilhete de lá?


Assim como na não-história, somente na função OrderSelect(int index, int select, int pool=MODE_TRADES) colocar MODE_HISTORY em vez de MODE_TRADES e usar OrderTotal() em vez de OrderHistoryTotal().