Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 837

 
Alexander Layzerevich:

Corrigido o código MT5 para enviar dados para o Indicador:

Mas o erro é o mesmo.

Pare de espreitar para o código de porcaria escrito em mql4 e você o obterá mais rápido.

 
Igor Makanu:

Veja as propriedades do projeto no Visual Studio, deve haver uma configuração para qual plataforma compilar a dll - MT4 precisa de código de 32 bits

PS: google encontrar a configuração VS

Tentei procurar um mecanismo de busca de tal configuração que desse respostas como o oposto de 32 a 64 e em geral e não entendi como fazer esta configuração. Se eu entendo um pouco aqui eu tenho por padrão 32 é

E encontrei um menu com uma configuração.

Portanto, não sei se o padrão é 32 aqui.

 

Você pode me dizer por que o mesmo código funciona no MT4, mas não no MT5? Em MT5 variável strNum sempre =1, mas em MT4 contador ++ funciona como deveria e strNum = número de itens de linha no arquivo.

int strNum;
void OnStart()
  {
 FileNum();
 Alert1();
  } 

  void FileNum()
{
      int handle=FileOpen("File.csv",FILE_CSV|FILE_READ,';');
      strNum=0; 
      while(!FileIsEnding(handle))
{
      FileReadString(handle);
      strNum++;
      if(FileIsEnding(handle)==true)
      break;
}
      FileClose(handle);
}

      void Alert1()
{
      Alert (strNum);
}
 
Seric29:

Tentei procurar um mecanismo de busca de tal configuração que, como o oposto de 32 a 64 e, em geral, não entendia como fazer esta configuração. Se eu entendo um pouco aqui, eu tenho por padrão 32

E encontrei um menu com uma configuração.

Portanto, não sei se é 32 por padrão aqui.

Também com as bibliotecas, há a coisa /MT ou /MD, eu as confundo o tempo todo :-) Isto também está em algum lugar no estúdio de fácil utilização

Mostre-me todo o projeto, incluindo tudo o que você fez lá em C++ e Mql. Não acho que seja um direito autoral feroz :-)
nós lhe diremos o que há de errado, caso contrário, você vai sobrecarregar todos com telepatia por um longo tempo.


 
Maxim Kuznetsov:

Há também a coisa da biblioteca /MT ou /MD, eu os confundo o tempo todo :-) Isto também está em algum lugar na selva dos estúdios de fácil utilização

Mostre-me todo o projeto, incluindo tudo o que você fez em C++ e Mql. Eu não acho que seja o pior copyright :-)
Nós lhe diremos o que há de errado com o código completo, caso contrário, você vai sobrecarregar todos com telepatia por um longo tempo


Arquivo com a extensão .def

arquivo com extensão .cpp

em mql4, eu simplesmente arrastei um arquivo da pasta das bibliotecas do terminal

#import "dllmt42.dll"
 int _add(int a=0, int b=0);
#import

E depois, estupidamente, chama a função, apenas retorna 18 e não faz mais nada, é como uma experiência para ver se funciona ou não.

 
Seric29:

Arquivo com extensão .def

Arquivo com extensão .cpp

Acabei de copiar o arquivo da pasta Terminal Libraries para mql4

E então eu simplesmente chamo a função, ela retorna 18 e não faz mais nada, é como uma experiência para ver se ela funciona ou não.

por que você acrescenta um traço para acrescentar? se livrar dele.

todos os identificadores em todos os arquivos devem ser estritamente idênticos, sem idade fantasia :-)

 
Alexey Viktorov:

Pare de espreitar para o código de porcaria escrito em mql4 e você o obterá mais rápido.

Tudo, como você diz, "crap code" é escrito de acordo com a ajuda básica do idioma.https://www.mql5.com/ru/docs/basis/function/call

Também diz"Uma função não pode ser declarada dentro de outra função". "

É exatamente isso que diz. É por isso que não funciona.

É por isso que estou tentando descobrir com especialistas como chamar a função(Deviation(Kanal)). Quando depende de chamada de função( Envelopesduplos (...))

upd: A questão foi parcialmente resolvida.
 
Maxim Kuznetsov:

Por que você acrescenta uma linha de __dash à adição? Livre-se dela.

todos os identificadores em todos os arquivos devem ser estritamente idênticos, sem fantasias sobre a idade :-)

Bem, todos o fizeram de acordo com as instruções e eu o fiz, agora vou removê-lo e ver. Em tudo o que funcionou, ele retornou 18. Obrigado, vou continuar experimentando.

 
Alexander Layzerevich:

Tudo, como você diz, "crap code" é escrito de acordo com a ajuda básica do idioma.https://www.mql5.com/ru/docs/basis/function/call

Também diz"Uma função não pode ser declarada dentro de outra função". "

É exatamente isso que diz. É por isso que não funciona.

É por isso que estou tentando descobrir com especialistas como chamar a função(Deviation(Kanal)). Quando depende da chamada da função de indicador( Envelopesduplos (...))

upd: A questão foi parcialmente resolvida.

Você já chamou e passou o valor retornado pela funçãoDeviation(Kanal) para a funçãoEnvelopes(........)

e na própria funçãoEnvelopes(........), você declara o último parâmetro, que tomará este valor


de forma semelhante

double Envelopes(string symb, ENUM_TIMEFRAMES tf, int period, int shift, int method, int price, int buff, double Dev)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), tf, period, shift, method, price, Dev);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,buff,0,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
 
KrasAleks:

Saudações a todos. Boa sorte na vida e lucro no trabalho.

Eu apelo por ajuda (inesperado, huh? :) )

...................................................

E foi aí que eu fiquei preso :). O que usar ao invés de GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic). The_failure_level(Symbol(),OP_BUY,Magic) should be used but how to get it...


Ficarei feliz se você me ajudar.
Z.U. Se você der conselhos, eu lhe peço, tenha em mente que ainda estou muito verde, não seja preguiçoso para me dar um pouco mais de detalhes, sabe, como se: FLORESTAS AQUI, não se esqueça de indicar a direção <------ || ------>>.

Obrigado por sua atenção :).

Bom dia, tarde, noite, noite (sublinhar).

Não quero ser rude, mas vou lhe fazer uma pergunta. Estive pensando na minha confusão.... Devo precisar do último OP_BUY && OP_SELL, sua Magik || bilhete || open_price..... Eu estou certo? Se eu encontrar a última encomenda, posso, em teoria, calcular a distância entre ela e o pedido atual. Descarreguei alguns "averagers" aqui, imho deve haver algo semelhante, se não idêntico, ..... só para perceber que encontrei o que procurava..... :)

Se ninguém se importar :), continuarei esperando por seu conselho, pelo menos uma referência à fonte da informação que preciso (se não éo livro deKovalev, comecei com ele há 3 dias).