Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 414
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
cospe
possível perda de dados devido à conversão do tipo .mq4 1697 29
tipo Doble no SL.
O compilador é hoje em dia rigoroso, deveria ser assim, MarketInfo retorna tipo duplo
O compilador é hoje em dia rigoroso, deveria ser assim, MarketInfo retorna tipo duplo
A variável "sumbol" está correcta, tenho-a como variável no invólucro do modificador.
Obrigado, coloquei(int) e tudo está bem.
Não sei como o fiz antes; a minha experiência na escrita de EAs é de 21 dias))
Não sei há quanto tempo estou a escrever os meus EAs e não sei como o fazer correctamente).
Leanid Aladzyeu:
Não sei como costumava escrever EAs (há 21 dias que os escrevo )). E a minha EA está persistentemente a chegar ao topo dos EAs livres)
Bem, então tem muita sorte, até a versão 600 a antiga MQL4 era horrível )) Por favor, envie-me o link para o MQL4 Expert Advisor.
Por alguma razão, dá um erro na última linha.
'}' - nem todos os caminhos de controlo devolvem um valor Expert4.mq4
Todas as funções não ovóides devem terminar com o operador de retorno.
Estou apenas a olhar para este código do vídeo tutorial, mas pode ser para uma construção antiga.
#incluir#incluir <stderror.mqh>
//+------------------------------------------------------------------+//|Perito4.mq4 |
//|Mikhail |
//||
//+------------------------------------------------------------------+
#propriedade copyright "Mikhail
#ligação de propriedade ""
#propriedade versão "1.00"
#propriedade rigorosa
sinal int = 1;
int start()
{
se (sinal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, 0, "Test", 123, 0, Blue);
}
return(0);
}
//+------------------------------------------------------------------+
int OrderSendX (símbolo de corda, int cmd, volume duplo, preço duplo, int slippage,stoploss duplo,
double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = falso;
int ticket = -1;
int Retry = 10;
int cnt = 0;
se (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
bilhete = OrderSend(symbol, cmd, volume, preço, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
caso ERR_NO_ERROR:
exit_loop = true;
pausa;
{ caso ERR_SERVER_BUSY:
caso ERR_NO_CONNECTION:
caso ERR_INVALID_PRICE:
caso ERR_OFF_QUOTES:
caso ERR_BROKER_BUSY:
caso ERR_TRADE_CONTEXT_BUSY:
cnt+++;
pausa;
caso ERR_PRICE_CHANGED:
RefreshRates();
continuar;
padrão:
exit_loop +true;
pausa;
}
se (cnt> Retry)
exit_loop = true;
se (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
senão
{
if(err != ERR_NO_ERROR)
{
Imprimir ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
regresso(bilhete);
}
Imprimir("Erro: ordem aberta falhou depois" + cnt + "atempts");
retorno(-1);
}// entretanto
}// se
}//saída
Aqui....
}
}
regresso(bilhete);
}
Inserir correctamente o código no fórum
Por alguma razão, dá um erro na última linha.
'}' - nem todos os caminhos de controlo devolvem um valor Expert4.mq4
Todas as funções não ovóides devem terminar com o operador de retorno.
Acabei de assistir a este código no vídeo tutorial, mas pode ser para construções antigas.
#incluir#incluir <stderror.mqh>
//+------------------------------------------------------------------+//|Perito4.mq4 |
//|Mikhail |
//||
//+------------------------------------------------------------------+
#propriedade copyright "Mikhail
#ligação de propriedade ""
#propriedade versão "1.00"
#propriedade rigorosa
sinal int = 1;
int start()
{
se (sinal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, 0, "Test", 123, 0, Blue);
}
return(0);
}
//+------------------------------------------------------------------+
int OrderSendX (símbolo de corda, int cmd, volume duplo, preço duplo, int slippage,stoploss duplo,
double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = falso;
int ticket = -1;
int Retry = 10;
int cnt = 0;
se (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
bilhete = OrderSend(symbol, cmd, volume, preço, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
caso ERR_NO_ERROR:
exit_loop = true;
pausa;
{ caso ERR_SERVER_BUSY:
caso ERR_NO_CONNECTION:
caso ERR_INVALID_PRICE:
caso ERR_OFF_QUOTES:
caso ERR_BROKER_BUSY:
caso ERR_TRADE_CONTEXT_BUSY:
cnt+++;
pausa;
caso ERR_PRICE_CHANGED:
RefreshRates();
continuar;
padrão:
exit_loop +true;
pausa;
}
se (cnt> Retry)
exit_loop = true;
se (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
senão
{
if(err != ERR_NO_ERROR)
{
Imprimir ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
regresso(bilhete);
}
Imprimir("Erro: ordem aberta falhou depois" + cnt + "atempts");
retorno(-1);
}// entretanto
}// se
}//saída
Inserir correctamente o código no fórum
Estou de novo atrasado, não consigo que caiba.
Tudo bem, que navegador está a usar? Tente mudar para outro. Eu tenho FFox. Dei a resposta nos comentários do código logo no final.