Discussão do artigo "Guia passo a passo para iniciantes para escrever um Expert Advisor no MQL5" - página 17
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
Baixei o arquivo e Depurei o codigo, e apresentou esse warning alguem poderia me dar uma ajuda quanto a isso ?
return value of 'OrderSend' should be checked
Olá, sou novato e também estou testando o Robô
Tente isso:
// OrderSend(mrequest,mresult);
bool res=OrderSend(mrequest,mresult);
// get the result code
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //Request is completed or order placed
{
Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!!");
}
else
{
Alert("The Buy order request could not be completed -error:",GetLastError());
ResetLastError();
return;
}
Se eu estiver errado, alguem me corrija por favor!
Fonte de pesquisa: https://www.mql5.com/en/forum/23663
Quando estou depurando sempre da erro na hora de enviar a ordem. Eu pensei que fosse meu código, mas mesmo testando o arquivo mql5 pra download da erro também.
Quando estou depurando sempre da erro na hora de enviar a ordem. Eu pensei que fosse meu código, mas mesmo testando o arquivo mql5 pra download da erro também.
Eu acho que no exemplo é em moedas, então a variavel lot que está 0.1 não serve pra seu teste, tente mudar assim (mudando a variavel mrequest.volume):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // immediate order execution
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // latest ask price
mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // currency pair
mrequest.volume = minSymbolLot; // number of lots to trade
mrequest.magic = EA_Magic; // Order Magic Number
mrequest.type = ORDER_TYPE_BUY; // Buy Order
mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type
mrequest.deviation=100;
Alguém sabe se posso utilizar esse EA para mini-índice ou mini-dólar ?
Você compreendeu a estratégia? Está ciente dos riscos? Analisou os níveis de SL e TP? Conhece os indicadores técnicos utilizados? Sabe parametrizá-los? Sabe personalizar as variáveis para cada ativo (WIN e WDO)?
O código em si foi desenvolvido para qualquer ativo e pode identificar isso através do "_Symbol" e para qualquer tempo gráfico "_Period".
Agora é importante que você saiba o que está fazendo ao colocar o EA para rodar. Se optar por fazê-lo, sugiro que opere apenas em contas demo até dominar a ferramenta e ter maior conhecimento de mercado de capitais.
[ ]´s
Pessoal,
Este é um código simples e rapidamente modificado se você tiver um erro com a abertura de várias ordens ao mesmo tempo.
Substitua este código: da linha 167 -177
por este:
Obrigado @Samuel Olowoyo
Por favor, informe como resolver o problema. O Expert Advisor abre várias posições em uma linha para comprar, o mesmo para vender.
O Expert Advisor não vê que já existem posições de compra e venda abertas e abre novas posições, apesar do fato de haver uma verificação no código.
para posições já abertas. Por algum motivo, a verificação não funciona.
Como não há ajuda dos moderadores trolls aqui, copiarei a resposta do fórum em inglês:
Pessoal, este é um código simples e rapidamente modificável, se vocês tiverem um erro com várias ordens sendo abertas ao mesmo tempo. Substituam este código: da linha 167 -177
Por este:
Como não consigo obter ajuda dos moderadores de trolls aqui, copiarei a resposta do fórum em inglês:
Pessoal, este é um código simples e rápido que pode ser modificado se você tiver um erro com várias ordens abertas ao mesmo tempo. Substituam este código: da linha 167 -177
Por este: