Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 256

 
atztek #:
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.

 
atztek #:
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();

//---

}

//+-----------------------------------------------+

MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
  • www.metaquotes.net
Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах
 
bob88 #:



extern double Lots               = 0.1;

extern double MaximumRisk        = 0.3;

extern double DecreaseFactor     = 100;

extern int stopLoss = 15;
extern int takeProfit = 30;


//+------------------------------------------------------------------+

//| Check for open order conditions                                  |

//+------------------------------------------------------------------+

void CheckForOpen()

  {

  int res;
  double openPrice, sl, tp;

 if(Volume[0]>1) return;



//---- покупаем -----------------------

  

  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])) 

    

  //  

     {
      openPrice = NormalizeDouble(Ask, Digits);
      sl = NormalizeDouble(openPrice - stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice + takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Blue);

      return;

     }

//---- продаем ------------------------

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]))

     {
      openPrice = NormalizeDouble(Bid, Digits);
      sl = NormalizeDouble(openPrice + stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice - takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Red);

      return;

     }

     

  }

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.

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Olá a todos. Alguém pode ajudar a editar a EA. Preciso remover a função de abertura de pedidos, para que a EA não abra os pedidos por si só, mas apenas trabalhe com pedidos abertos manualmente. Muito obrigado de antemão.
Arquivos anexados:
 
Иван Макаров #:
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.

 
Saudações. Qualquer pessoa pode aconselhar como adicionar a função de negociação de tempo ao mt4 EA. Quero que minha EA trabalhe das 00h00 às 23h00 e não faça nada durante o resto de uma hora. Talvez alguém tenha um pedaço de código e como implementá-lo. Tenho uma boa idéia de como implementar isto em minha EA.
 
Иван Макаров negociação de tempo ao mt4 EA. Quero que minha EA trabalhe das 00h00 às 23h00 e não faça nada na próxima hora. Talvez alguém tenha um pedaço de código e como implementá-lo. Tenho uma boa idéia de como implementar isto em minha EA.

https://www.mql5.com/ru/forum/131859/page9#434297

isTradeTimeString()

isTradeTimeInt()

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 

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?

 
Zalevsky1234 stop loss ou o acionamento falso.

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.

Razão: