Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 256
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
Em meu antigo laptop com processador i3 ainda tenho WinXP 32 bit, não suportado pelo MT5. Recentemente aumentei a memória até 6 Gb, gostaria de instalar um SO de 64 bits rodando MT4 e MT5. O que é preferível - Win7 ou Win8.1
Eu prefiro a 7. O escritório tem um 8, um 10 e um 7. Os terminais no 7 são mais estáveis. Por razões desconhecidas, os testadores em 7 são mais rápidos em computadores fracos. A 8ka não é muito transitória. É a que mais recursos consome. 10 requer mais recursos para si mesmo.
Meu antigo laptop com processador i3 ainda tinha WinXP 32 bit instalado, não suportado pelo MT5. Recentemente aumentei a memória para até 6 Gb, gostaria de instalar um SO de 64 bits que suportasse MT4 e MT5. O que é preferível - Win7 ou Win8.1 ?
Vá ao site do fabricante de seu laptop e veja para qual OS máximo os drivers oficiais são e esse será seu OS preferido. Se os motoristas são para Win 8.1, você pode tentar Win 10. Se os motoristas acabarem em Win 7, então não há muita escolha.
Boa tarde, por favor, você pode ajudar.
Preciso adicionar um take profit a esta EA e exibir parâmetros para mudar quando a EA for executada.
Há duas advertências sobre o valor de retorno do 'OrderClose' deve ser verificado também favor consertar
Lotes duplos externos = 0,1;
duplo máximoRisco externo = 0,3;
duplo fator de redução externo = 100;
duplo st1,st2;
//+------------------------------------------------------------------+
//| Calcular posições abertas |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(símbolo de corda)
{
int compra=0,vende=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) break;
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) compra++;
if(OrderType()==OP_SELL) vende++;
}
}
//---- volume de pedidos de devolução
if(compra>0) return(compra);
senão devolve(-sells);
}
//+------------------------------------------------------------------+
//| Calcular o tamanho ideal do lote |
//+------------------------------------------------------------------+
duplo LotsOptimized()
{
lote duplo=Lotes;
int orders=HistoryTotal(); // histórico total de ordens
int losses=0; // número de ordens de perdas sem intervalo
//---- selecione o tamanho do lote
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,3);
//---- calcule o número de ordens de perdas sem uma pausa
if(DiminaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==falso) { Print("Erro na história!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;
//----
if(OrderProfit()>0) quebra;
if(OrderProfit()<0) perdas++;
}
if(perdas>1) lote=NormalizarDuplo(lote-lot*losses/DecreaseFactor,1);
}
//---- tamanho do lote de retorno
if(lote<0,1) lote=0,1;
retorno(lote);
}
//+------------------------------------------------------------------+
//| Verifique as condições de pedidos em aberto |
//+------------------------------------------------------------------+
CheckForOpen()
{
int res;
if(Volume[0]>1) voltar;
//---- comprar -----------------------
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if ((Open[0]<Open[1])&&(Close[0]<Close[1])
//
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,15,0,",0,0,Blue);
retornar;
}
//---- sell ------------------------
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if((Open[0]>Open[1])&&(Close[0]>Close[1]))
{
res=OrderSend(Symbol(),OP_SELLL,LotsOptimized(),Bid,3,15,0,",0,0,0,Red);
retornar;
}
}
//------------Закрытие позиций----------------------------------------
verificação nula CheckForClose2()
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
If(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);
//CheckForOpen();
}
//
//+------------------------------------------------------------------+
//| Verifique as condições de fechamento do pedido |
//+------------------------------------------------------------------+
verificação nula CheckForClose1()
{
if(Volume[0]>1) voltar;
//cheque por perda
if ((AccountProfit()<0)&&(MathAbs(AccountProfit())>=(AccountMargin()*MaximumRisk)))
{
CheckForClose2();
Imprimir("perda", AccountProfit());
}/**/
//---- check order type
if(OrderType()==OP_BUY)
{
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if ((Open[0]>Open[1])&&(Close[0]>Close[1]))
CheckForClose2();
}
if(OrderType()==OP_SELL)
{
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if ((Open[0]<Open[1])&&(Close[0]<Close[1]))
CheckForClose2();
}
}
//+------------------------------------------------------------------+
//| Função Start |
//+------------------------------------------------------------------+
início nulo()
{
//---- calcular pedidos em aberto pelo símbolo atual
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
senão CheckForClose1();
//---
}
//+-----------------------------------------------+
Acrescentei o cálculo do SL e TP, mas seria bom acrescentar a verificação deles. Você pode ler como fazer isso no artigohttps://www.mql5.com/ru/articles/2555#invalid_SL_TP_for_position.
Seu aviso não é crítico. O resultado do OrderClose é simplesmente ignorado, daí o aviso. Você pode, por exemplo, fazer com que a função CheckForClose2 retorne o resultado do OrderClose. Ou você pode deixar as coisas como estão.
Outra coisa que notei foi que os nomes das funções CheckForClose2,CheckForOpen, etc. eram estranhos. E você os tem realizando operações comerciais.
Olá a todos. Alguém pode me ajudar a editar a EA. Tenho que remover a função de abertura de ordem para que a EA não abra ordens por si só, mas apenas trabalhe com ordens abertas manualmente. Muito obrigado de antemão.
Remova a função de abertura de ordem e ajuste a magia para 0. O robô pegará as ordens abertas manualmente e as seguirá. Se quisermos que o robô siga apenas ordens individuais, e não todas seguidas, então faça a entrada em Comprar e Vender, por exemplo, pressionando o botão apropriado que o robô deve criar e processar no evento OnChartEvent CHARTEVENT_OBJECT_CLICK de cada uma delas. Neste caso, a magia deve ser maior que 0 para trabalhar somente com suas próprias encomendas.
https://www.mql5.com/ru/forum/131859/page9#434297
isTradeTimeString()
isTradeTimeInt()
Olá.
Tal falha... Estou testando um! Especialista em 3 computadores. Em 2 deles, trabalho com precisão, enquanto em um deles eu sempre recebo algum tipo de bug nos cálculos - em geral, ele não calcula corretamente o stop loss ou o acionamento falso.
O hardware não é novo, mas não é velho.
Alguém já encontrou algo assim?
O hardware não é novo, mas não é velho.
Alguém teve problemas com isso?
Todos os três estão conectados ao mesmo corretor/servidor de revenda? (Quer dizer, é a mesma história?) Se não, esse é o primeiro lugar a ser procurado.