[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 291
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Você está confundindo a noção de "biblioteca" (da qual são extraídas funções usando #importar) e "incluir arquivo de cabeçalho" (#incluir).
As bibliotecas estão na pasta bibliotecas, suas fontes têm a extensão *.mq4, como indicadores e Expert Advisors. Elas são compiladas no arquivo *.ex4 (do qual as funções prontas são então importadas para outros programas, como este
A fim de compilar a biblioteca corretamente, como regra, você deve primeiro escrever a diretiva #propriedade da biblioteca.
Incluir arquivos de cabeçalho são usados para incluir partes de código prontas em vários programas. Eles são armazenados na pasta includes, têm a extensão *.mqh e são incluídos no texto (isto é, no texto) do programa usando a diretiva #include <...>; eles não precisam ser compilados separadamente, porque são compilados junto com o programa principal.
A propósito, antes a biblioteca era gerada por um modelo com # biblioteca de propriedade, e agora não é. Alguém sabe porque mudou o modelo ou simplesmente esqueceu de incluir?
PS Se não fosse pela alsu, eu não teria entendido o que o questionador queria saber, estou ficando velho.
A propósito, antes a biblioteca era gerada usando um modelo com # biblioteca de propriedade, mas agora não é, quem sabe por que eles mudaram o modelo ou simplesmente esqueceram de incluir?
PS se eu não tivesse alsu eu não entenderia o que ele quer saber.
você pode ajustar manualmente o modelo:)
você pode ajustar manualmente o modelo:)
Sim, sim, eu sei, mas no meu tempo eu matei 2 dias para encontrar o erro, e é um grande negócio na nova construção de um modelo diferente.
>> ...se não fosse pela alsu, eu não saberia o que o questionador queria saber, estou ficando velho.
Velhos veteranos experientes, olhem para o código da biblioteca "asker's" e me expliquem o que o autor quis dizer quando o escreveu?
Desculpe.
Muito já foi escrito, mas ainda não entendi a resposta à minha pergunta. Vou tentar mais uma vez explicar o que não posso fazer.
Suponha que eu tenha feito uma EA na qual eu tenha inserido a diretiva #include<...> e depois feito um arquivo de cabeçalho de inclusão com um pedaço de código.
Eu compilei o Expert Advisor e o incluí em uma profissão. Tudo funciona. Com base na citação de Sergei Kovalev:
"...Outra coisa que você pode acrescentar é que o arquivo ex4 é auto-suficiente - para que funcione,não precisa incluir os códigos fonte das funções do usuário.
Você pode copiar o arquivo do ex4, passá-lo a outros comerciantes e usá-lo lá.
"Ela é completa, independentemente de sua tecnologia.
Peguei minha EA e a copiei e a transferi para outro computador, para outro comerciante. Depois disso, o Consultor Especialista não quer trabalhar e escreve que não há nenhuma função à qual me refiro #include<...>, ou seja, ele não vê o arquivo de cabeçalho include e não pode compilar.
Aqui está um exemplo do Expert Advisor e inclui o arquivo de cabeçalho. Veja qual é exatamente o erro sobre a questão.
//+------------------------------------------------------------------+//| Kibliot.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2009, MetaQuotes Software Corp."
#link da propriedade "http://www.metaquotes.net"
#Incluir <PointZigZag.mqh>
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{PointZigZag();
Comentário("Prod.-y21 = ",y21," ", "Pok.-x21 = ",x21);
retorno(0);
}
//+------------------------------------------------------------------+
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
//+------------------------------------------------------------------+//| PointZigZag.mqh |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2009, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"
intDepth externo = 12; //------- variáveis ZigZag
ExtDeviação externa interna = 5; //------- variáveis ZigZag.
intBackstep externo = 3; //------- variáveis ZigZag
ShiftBars externo interno = 2; //------- variáveis ZigZag
//------- variáveis ZigZag ------------------------------------------
duplo y3, y2, y1, zz;//
int x3, x2, x1, sh;//
duplo x31, x21, x11; // ponto de inflexão ZigZag
duplo y31, y21, y11; // ponto de inflexão ZigZag
duplo TimeZZ, TimeOOO;
//------------------------------------------------------------------------------
duplo PointZigZag()
{y3=0;y2=0;y1=0;
sh=ShiftBars;
enquanto (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
se (zz!=0 && zz!=EMPTY_VALUE)
{ se (y1==0) { x1=sh; y1=zz; }
senão se (y2==0) { x2=sh; y2=zz; }
senão se (y3==0) { x3=sh; y3=zz; }}}sh+++;
}
se (Alto[x1]>Alto[x2])
{x11=Alto[x1]; x21=Baixo[x2]; x31=Alto[x3];
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
}else
{y11=Baixo[x1]; y21=Alto[x2]; y31=Baixo[x3];
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}
}
//+------------------------------------------------------------------+
Desculpe.
Muito já foi escrito, mas ainda não entendi a resposta à minha pergunta. Vou tentar mais uma vez explicar o que não posso fazer.
Suponha que eu tenha feito uma EA na qual eu tenha inserido a diretiva #include<...> e depois feito um arquivo de cabeçalho de inclusão com um pedaço de código.
Eu compilei o Expert Advisor e o incluí em uma profissão. Tudo funciona. Com base na citação de Sergei Kovalev:
"...Também posso acrescentar que o arquivo ex4 é auto-suficiente - para que funcione,não requer incluir códigos fonte de funções do usuário.
O arquivo do ex4 pode ser copiado, compartilhado com outros comerciantes e utilizado lá.
"Ela é completa, independentemente de sua tecnologia.
Peguei minha EA e a copiei e a transferi para outro computador, para outro comerciante. Depois disso, o consultor especializado não quer trabalhar e escreve que não há nenhuma função mencionada por mim #include<...>, ou seja, ele não vê o arquivo de cabeçalho do include e não pode compilar.
Aqui está um exemplo do Expert Advisor e inclui o arquivo de cabeçalho. Veja qual é exatamente o erro na pergunta.
A diretriz exige que o arquivo a ser incluído também esteja localizado em outro computador do diretório inclua, e em geral, não se preocupe, escreva tudo na mesma folha, atribua um pedaço de código como função, coloque-o no final da folha para que não fique pendurado e sem ligar e desligar, por que complicar sua vida. As diretrizes #incluir e #importar são necessárias (imho) para escrever um complexo de programas com mais de 1000 linhas e consistindo de várias dúzias de programas separados, caso contrário eles são mais confusos do que úteis.
Por favor, corrija a linha de erro que o compilador gera
O compilador escreve a seguinte linha
PointZigZag.mqh' - não pode abrir o arquivo do programa D:\Program Files\MetaTrader2\experts\Kibliot.mq4 (10, 1)
O compilador escreve a seguinte linha
PointZigZag.mqh' - não pode abrir o arquivo do programa D:\Program Files\MetaTrader2\experts\Kibliot.mq4 (10, 1)
ver resposta acima - coloque o arquivo include PointZigZag.mqh na pasta include
ver resposta acima - coloque o arquivo include PointZigZag.mqh na pasta include
Em todos os computadores onde o arquivo Kibliot.mq4 é suposto ser compilado.