Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1170

 
Carcass77:

Meu indicador funciona, eu estou apenas expandindo.

Está bem, eu mesmo vou buscá-lo.

Se este é o seu indicador, a pergunta parece, para dizer de forma branda, alarmante.

 
Сергей Таболин:

Se este é o seu indicador, a pergunta parece, para dizer de forma branda, alarmante.

Está funcionando. A questão era sobre a "forma" da declaração da variável string. Eu ainda estou aprendendo, se é que vou aprender alguma coisa, senhores programadores.

 
Carcass77:

Funcionou. A questão era sobre a "forma" da declaração da variável string. Eu ainda estou aprendendo, se é que vou aprender alguma coisa, senhores programadores.

O aprendizado de todos, isso é normal.

Minha pergunta surgiu porque seu exemplo não era de nível iniciante, e a pergunta sobre tipos e escopo variáveis é a primeira coisa que você tem que entender quando tentar escrever seu código pela primeira vez - sem entender isso, você não terá nada no futuro

 
Carcass77:

Funcionou. A questão era sobre a "forma" da declaração da variável string. Eu ainda estou aprendendo, se é que vou aprender alguma coisa, senhores programadores.

Eu ainda estou aprendendo também )))) E espero que ainda possa aprender muito ;)

 

Saudações a todos! Como passar para o botão , nome + valor ( exemplo de botão Lotes = 0,1 ) ?

Obrigado de antemão !

 
Olá! Estou tentando traçar uma linha de tendência usando fractais inferiores e não está funcionando. Toma o início dos tempos como o primeiro ponto, traça uma linha e pronto. Não vai para o próximo fractal. O que estou fazendo de errado, como posso consertá-lo?
datetime firsttime1;
datetime firsttime2;
datetime secondtime1;
datetime secondtime2;
double  firstprice1;
double  firstprice2;
double  secondprice1;
double  secondprice2;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Hour()>=9 && Hour()<22)
   {
    Fun_New_Bar();
    if(New_Bar)      
     {

double vallo=iFractals(NULL,0,MODE_LOWER,2);Alert("vallo = ",vallo);
      {if(vallo>0)
       {
       //забиваем координаты второй точки для линии Low
       secondtime1=(TimeCurrent()-7200);
       secondprice1=iLow(NULL,0,2);
       
       //рисуем трендовую линию Low
       ObjectCreate("LowLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);

      firsttime1=secondtime1;
      firstprice1=secondprice1;
   
       }
      }
     }
   }
  } 
 

Adicionadas setas ao indicador SuperTrend baixado do kodobase. Ele desenha as setas normalmente na inicialização,


mas se eu rolar para trás/esquerda na tabela, a algaraviada aparece e tudo cai.


Aqui está o código:

//+------------------------------------------------------------------+
//|                                                   SuperTrend.mq4 |
//|                   Copyright © 2008, Jason Robinson (jnrtrading). |
//|                                   http://www.spreadtrade2win.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Jason Robinson."
#property link      "http://www.spreadtrade2win.com"
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 3
#property indicator_width4 3

enum en_trend {
   Modern,   // Modern
   Classic,  // Classic
};

//+------------------------------------------------------------------+
//| Universal Constants                                              |
//+------------------------------------------------------------------+
#define  PHASE_NONE 0
#define  PHASE_BUY  1
#define  PHASE_SELL -1

//+------------------------------------------------------------------+
//| User input variables                                             |
//+------------------------------------------------------------------+
input en_trend TrendMode      = Modern;   // Trend Line Mode
input int      ATR_Period     = 10;       // ATR Period
input double   ATR_Multiplier = 3.0;      // ATR Multiplier
input int      BarsToCount    = 0;        // Bars to count (0 - all bars)
input color    clr_Up         = clrLime;  // Arrow Up Color
input color    clr_Dn         = clrRed;   // Arrow Down Color

//+------------------------------------------------------------------+
//| Universal variables                                              |
//+------------------------------------------------------------------+
double buffer_line_up[];
double buffer_line_down[];
double ArrowUpBuffer[];
double ArrowDnBuffer[];

double atr,
       band_upper,
       band_lower,
       shift;
int    phase=PHASE_NONE;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  
   IndicatorShortName("Super Trend");
   IndicatorDigits((int)MarketInfo(Symbol(),MODE_DIGITS));
   SetIndexBuffer(0,buffer_line_up);
   SetIndexLabel(0,"Up Trend");
   SetIndexBuffer(1,buffer_line_down);
   SetIndexLabel(1,"Down Trend");

//--- 2 additional arrows buffers
//---- drawing settings
   SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,EMPTY,clr_Up);
   SetIndexArrow(2,233);
   SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,EMPTY,clr_Dn);
   SetIndexArrow(3,234);
//---- indicator buffers
   SetIndexBuffer(2,ArrowUpBuffer);
   SetIndexBuffer(3,ArrowDnBuffer);
   SetIndexEmptyValue(2,0.0);
   SetIndexEmptyValue(3,0.0);  
  
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   if(counted_bars==0) limit-=1+2;

   for(int i=limit; i>=0; i--) 
     {
      atr   = iATR(Symbol(),0,ATR_Period,i);
      shift = 0.5*iATR(Symbol(),0,100,i);;
      band_upper = (High[i]+Low[i])/2 + ATR_Multiplier * atr;
      band_lower = (High[i]+Low[i])/2 - ATR_Multiplier * atr;

      if(phase==PHASE_NONE) 
        {
         buffer_line_up[i]=(High[i+1]+Low[i+1])/2;
         buffer_line_down[i]=(High[i+1]+Low[i+1])/2;
        }

      if(phase!=PHASE_BUY && Close[i]>buffer_line_down[i+1] && buffer_line_down[i+1]!=EMPTY_VALUE) 
        {
         phase = PHASE_BUY;
         buffer_line_up[i]=band_lower;
         buffer_line_up[i+1]=buffer_line_down[i+1];
        }

      if(phase!=PHASE_SELL && Close[i]<buffer_line_up[i+1] && buffer_line_up[i+1]!=EMPTY_VALUE) 
        {
         phase = PHASE_SELL;
         buffer_line_down[i]=band_upper;
         buffer_line_down[i+1]=buffer_line_up[i+1];
        }

      if(phase==PHASE_BUY
         && ((TrendMode==0 && buffer_line_up[i+2]!=EMPTY_VALUE) || TrendMode==1)) 
        {
         if(band_lower>buffer_line_up[i+1]) 
           {
            buffer_line_up[i]=band_lower;
           }
         else 
           {
            buffer_line_up[i]=buffer_line_up[i+1];
           }
        }
      if(phase==PHASE_SELL
         && ((TrendMode==0 && buffer_line_down[i+2]!=EMPTY_VALUE) || TrendMode==1)) 
        {
         if(band_upper<buffer_line_down[i+1]) 
           {
            buffer_line_down[i]=band_upper;
           }
         else 
           {
            buffer_line_down[i]=buffer_line_down[i+1];
           }
        }
        
        // Make Arrows
        if (buffer_line_up[i+1]  !=EMPTY_VALUE && 
            buffer_line_up[i+2]  !=EMPTY_VALUE && 
            buffer_line_down[i+2]!=EMPTY_VALUE) {
           ArrowUpBuffer[i+1]=Low[i+1]-shift;
           ArrowDnBuffer[i+1]=0.0;

        }
        if (buffer_line_down[i+1] !=EMPTY_VALUE && 
            buffer_line_down[i+2] !=EMPTY_VALUE && 
            buffer_line_up[i+2]   !=EMPTY_VALUE) {
           ArrowDnBuffer[i+1]=High[i+1]+shift;
           ArrowUpBuffer[i+1]=0.0;

        }
     }

   return(0);
  }
//+------------------------------------------------------------------+

Por favor, diga-me o que há de errado com isso.

Supertrend
Supertrend
  • www.mql5.com
AudioPrice Revision 1 Have audio output of latest price in stereo! Revised to cater for fractional pips as now offered by some brokers to MT4. Stochastic Net Stochastic net for the the classification problems with the instruction provided.
Arquivos anexados:
 
Grigori.S.B:

Por favor, diga-me o que eu fiz de errado.

Eu cometi um erro ao inserir este suplemento separadamente. As setas devem ser colocadas somente no momento da mudança do buffer. Ao mesmo tempo, não se esqueça de colocar um valor vazio no buffer em todos os outros casos.

Melhor ainda: coloque um valor vazio de uma vez, e preencha um dos amortecedores com uma seta quando a tendência mudar.

 
Grigori.S.B:

mas se eu rolar para trás/esquerda, a algaraviada aparece e tudo se quebra.

A história está sendo varrida? você não tem um recálculo para este caso e os novos itens de proteção indicadores que aparecem estão cheios de lixo.

 
O quê, estou perdendo algo elementar novamente, já que ninguém quer responder?
Razão: