[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 500

 

Diga-me, se eu não sou um especialista em programação.

Esta coisa olha para a história ao abrir um pedido ou não?

extern int dDay;
//extern bool fl;

int init()
  {
      return(0);
  }

int deinit()
  {
      return(0);
  }

int start()
  {
      double MA2,MA3;
      double Fr,Fr1;
      double SAR;
      double prof;
      int total,cnt;
      
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_CLOSE,0);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,0);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,0);
      Fr1 = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,1);
      
      //SAR = iSAR(NULL,0,0.2,2,0);
      
      if((Hour() == 22) && (OrdersTotal() == 0) && (dDay != Day()))
      {
         //if(Open[0] > MA) // BUY
         if(MA3 < MA2)
         //if(SAR < Open[0])
         {
            OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Ask+0.0010,"",2,0,Blue);
            //fl = true;
         }
         //if(Open[0] < MA) // SELL
         if(MA3 > MA2)
         //if(SAR > Open[0])
         {
            OrderSend(Symbol(),OP_SELL,1,Bid,3,0,Bid-0.0010,"",1,0,Red);
            //fl = true;
         }
      
         dDay = Day();
      }
      
      /*if((Hour() == 8) && (OrdersTotal() == 1) && fl)
      {
         fl = false;
         if(OrdersTotal() != 0)
         {
            total = OrdersTotal();
            for(cnt=0;cnt<total;cnt++)
            {  
               OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);         
               prof = OrderProfit() / 10;
               if(prof <= -10)
               {
                  if(OrderType()==OP_BUY)
                  {
                     OrderClose(OrderTicket(), OrderLots(), Bid, 3, Yellow);   
                     OrderSend(Symbol(),OP_SELL,1,Bid,3,0,Bid-0.0010,"",1,0,Red);
                  }
                  if(OrderType()==OP_SELL)
                  {
                     OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
                     OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Ask+0.0010,"",2,0,Blue);
                  }
               }
            }
         }
      }*/
  
      
      if(OrdersTotal() != 0)
      {
         total = OrdersTotal();
         for(cnt=0;cnt<total;cnt++)
         {  
            OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);                     
            prof = OrderProfit() / 10;
            if(prof >= 4)
            {
               if(OrderType()==OP_BUY)
               {
                  OrderClose(OrderTicket(), OrderLots(), Bid, 3, Yellow);   
               }
               if(OrderType()==OP_SELL)
               {
                  OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
               }
            }
         }
      }

      return(0);
  }
 
baykanur:

Diga-me, se eu não sou bom em programação.

esta coisa fica na história ao abrir um pedido ou não?



1) usar a etiqueta SRC ao inserir o código

2) eliminar o que é comentado.

3) diga-nos o que você quer ver e qual é a discrepância

 
ilunga:

1) usar a etiqueta SRC ao inserir o código

2) remover o que é comentado

3) diga-me o que você quer ver e qual é a discrepância

src inserido

O que é comentado?

há uma discrepância no número de negócios lucrativos no testador, por isso eu perguntei

 

Quero aprender como desenhar níveis no gráfico, dependendo dos valores indicadores em uma janela separada. Por exemplo, se o MACD cruzar o nível 0 de baixo para cima, uma linha é traçada no gráfico de acordo com o Baixo da barra onde a travessia ocorre. Quando o MACD é cruzado de cima para baixo, a linha na Alta será traçada de acordo. Escrevi algo, ele se compila sem erros, mas nada acontece. Você pode me ajudar, por favor?

#property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_color1  Blue

double    Buffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Buffer);

   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   double level;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0; i<limit; i++)
      
      double    macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
      double    macd1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i+1);
      
      if (macd > 0 && macd1 < 0)
      {
      level = iLow("EURUSD",PERIOD_M1,i); //Почему выскакивает ощибка если написать просто iLow[i]?
      Buffer[i]=level;
      }
      else if (macd < 0 && macd1 > 0)
      {
      level = iHigh("EURUSD",PERIOD_M1,i); //Почему выскакивает ощибка если написать просто iHigh[i]?
      Buffer[i]=level;
      }
   return(0);
  }
 
baykanur:

src inserido

Eu não sei o que foi comentado

há uma discrepância no número de negócios lucrativos no testador

há sempre 2 objetos na partida que são comparados.

o testador não coincide com a demonstração no mesmo período? Por exemplo, porque a propagação no testador é diferente

 
Ichimo:

Quero aprender como desenhar níveis no gráfico, dependendo dos valores indicadores em uma janela separada. Por exemplo, se o MACD cruzar o nível 0 de baixo para cima, uma linha é traçada no gráfico de acordo com o Baixo da barra onde a travessia ocorre. Quando o MACD é cruzado de cima para baixo, a linha na Alta será traçada de acordo. Escrevi algo, ele se compila sem erros, mas nada acontece. Por favor, ajude.

linha é de pelo menos 2 pontos ;)

Buffer[i]=level;

é um ponto, os adjacentes são provavelmente zero. é por isso que a linha não tem para onde ser traçada

 //Почему выскакивает ощибка если написать просто iLow[i]?
porque Low[i] não tem "i" no início
 
Vinin:

Onde está essa cesta?
Posso direcioná-lo à sua cesta... :)
 
Existe alguma maneira de dividir a distância entre os dois preços em 3-4 partes, não apenas dividi-las, mas também descobrir o preço de cada uma das partes resultantes?
 
sss2019:
Existe alguma maneira de dividir a distância entre os dois preços em 3-4 partes, não apenas dividi-las, mas também saber o preço de cada uma das partes resultantes?
double price1;

double price2;

...

if (price1 > price2)
{
   double delta = price1 - price2;
   double level1 = price2 + delta*0.25;
   double level2 = price2 + delta*0.5;
   double level3 = price2 + delta*0.75;
}
=)
 
ilunga:

uma linha é de pelo menos 2 pontos ;)

este é um ponto, os vizinhos são provavelmente zero. portanto, não há lugar para traçar a linha

porque Low[i] não tem "i" no início



Portanto, ou eu preciso criar um ponto anterior ou desenhar uma flecha em vez de uma linha. Obrigada, vou continuar a racionar meus miolos.