[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 21

 
forexnew:

Pode escrever divisão zero, até onde eu me lembro. Mas isto se deve ao fato de que certos parâmetros não são recalculados. Em outras palavras, a EA simplesmente não começa corretamente porque foi iniciada antes do início da sessão de trabalho.

É claro, estas caixas de seleção foram removidas.

Se este erro ocorrer(divisão por zero), o Expert Advisor deixa de funcionar. Procure um lugar no código onde ocorra a divisão por zero - o mais provável é que o zero seja obtido como resultado do cálculo de qualquer parâmetro.
 
Sim, obrigado.
 

Olá querido povo mql. Aí vem meu primeiro problema de código.

É um indicador de tendência. A tarefa é um indicador de tendência com coordenadas 1ª linha = máximo do último dia e o dia anterior e 2ª linha = mínimo do último dia e o dia anterior.

Tudo bem, mas quando você muda para um período de tempo inferior, a coordenada se agarra ao início do dia, embora no nível de preço correspondente.... e o sentido da linha está completamente perdido.

Ao criar um objeto de linha de tendência, o parâmetro de data e hora é o culpado. Não consigo pensar como chegar até ele. É necessário calcular o tempo de formação do preço extrema. Parece que esta informação

Parece que esta informação está embutida no prazo de 1 minuto e estou tendo dificuldades aqui. Como determinar a data/hora em que o cronograma muda para que uma tendência seja redesenhada e as coordenadas sejam anexadas às barras correspondentes aos extremos.

Infelizmente, a busca não rendeu nada sobre o assunto. Eu ficaria feliz em receber conselhos.

 

Preciso ver o comportamento do preço durante toda a história do instrumento por MA, mas o indicador não é desenhado quando inserido no gráfico.

Qual é o problema?

Quando compilado = 0 e 0.

A propósito - o terminal MT4 fica pendurado!

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

extern int History  =1000000;            // Колич.баров в расчётной истории
extern int Aver_Bars=1000000;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Estou escrevendo um EA com mais paradas de transferência para o Breakeven e aumentando o Breakeven. Tudo parece funcionar, mas há apenas um problema. A parada saltou quando o preço passou para Breakeven ou Breakeven. Não posso resolver este problema.

Quem conhece ajuda plz.

Aqui está o código:

int poz=OrdersTotal();
for (n=0;n<poz;n++){
            if (OrderSelect(n,SELECT_BY_POS,MODE_TRADES)==true){
            if (OrderType()==OP_BUY){
            Prise2=Bid-OrderOpenPrice();
            if(Prise2>(25*Point)){
            OrderModify(OrderTicket(),0,OrderOpenPrice(),OrderTakeProfit(),0,Blue);}
            if(Prise>Prise3){
            Prise3=(OrderOpenPrice()+(35*Point));
            SL2=OrderOpenPrice()+(10*Point);
            OrderModify(OrderTicket(),0,SL2,OrderTakeProfit(),0,Blue);}}
 
Vodya:

Estou escrevendo um EA com mais paradas de transferência para o Breakeven e aumentando o Breakeven. Tudo parece funcionar, mas há apenas um problema. A parada saltou quando o preço passou para Breakeven ou Breakeven. Não posso resolver este problema.

Quem conhece ajuda plz.

Aqui está o código:

Talvez sejam os parênteses?
 
alex12:
Talvez sejam os parênteses?

Quais? Se é para depois, então não é a parte inteira. Eu só mostrei o código para comprar, mas também há um código para vender.
 

ajuda, por favor, o pedido deve fechar a 4 vezes a distância do preço alto ao preço aberto

Onde eu fiz asneira?

todos os pedidos fecham dentro de 3 pips após a abertura

OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid&&OrderType()==OP_BUY&&OrdersTotal()>0)
 {
 OrderClose(OrderTicket(),OrderLots(),Bid,3);
 }
 
LazarevDenis:

ajuda, por favor, o pedido deve fechar a 4 vezes a distância do preço alto ao preço aberto

Onde eu fiz asneira?

aqui
(High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid
 
sergeev:
aqui


Capitão Obviedade... e alguém pode me dar uma dica?