[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 310

 
Vinin:


Posso lhe dizer que não li o livro didático, mas também não fiz nenhuma pergunta.

Se houver dúvidas e houver uma fonte para resolver o problema, você provavelmente está no lugar errado. Você precisa voltar para o jardim de infância. Você não pegou o jeito.

Não disse que não lia nada por uma questão de princípio. Se a ligação me ajuda, a questão não é mais um problema. Uma pergunta e uma fonte não são suficientes para resolver um problema, você precisa saber o que procurar na fonte.
 
Vinin:

É sempre da esquerda para a direita e não depende dos resultados das expressões de entrada. É sempre verificado até o final.

A este respeito, gostaria de acrescentar que se houver necessidade de usar condições do tipo if (a>b && c>d), então...

Para acelerar a execução, use a seguinte maneira: se (a>b) se (c>d), então...

Porque se se verificar que a<b, a execução saltará imediatamente para o próximo se (a>b) se (c>d) mas não irá comparar totalmente as expressões entre parênteses, ou seja, não irá verificar c>d como no primeiro caso.

 
GarKain:
Não disse que não li nada. Se o link me ajuda, a questão não é mais um problema. Uma pergunta e uma fonte não são suficientes para resolver um problema, você também precisa saber o que procurar na fonte.

Leia o fórum MQL5 - as pessoas lá recomendam a leitura correta de TODOS os artigos para entender o básico do idioma.

Em qualquer caso, você precisa conhecer (ler) a base na forma do tutorial e os documentos ANTES de fazer perguntas.


 
Roman.:


Está tudo bem. Gerchik no YouTube, olha e escuta: "30% do mercado - já superior ao telhado ..." - assim, mas eles estão falando principalmente com GEPs de um milhão de rublos e acima ... Isto é, de tais somas, quando você já pode retirar o dinheiro e viver com ele. Como o que Soros tem em diferentes anos em média 37% um ano antes e isso é mais do que o normal...

Ele e sua equipe, a propósito, estão aceitando fundos de gestão... da RUB 1 milhão, então ele estará interessado em você. Veja. "The Hunt for Gerchik" no finam.fm. Todas as peças.

Na verdade, em uma de suas últimas "caçadas", ele disse que mesmo que um "novato" tire mais do que o interesse do banco por ano do mercado, ele pode se orgulhar de ter "vencido" o mercado e tudo mais... MAS, trata-se de mais/menos derositos sérios, dos quais 10,20,30% é também uma quantia séria ...

Se o DEP é muito menor, ele usa o termo - "DEPOSIT DEVELOPMENT"!

ou seja, a partir de 1000% ao ano e acima.

Eu concordo com ele.

 
MQL414:

Se acreditarmos no testador MT4, duas condições são dinheiro e tempo. 20.000 rublos. 200.000 rublos e 2 milhões de rublos.


Isso dói... :-) imagens familiares. Afixar o código expa neste ramo do fórum. Eles olharão para ele, o testarão e proporão opções depois de otimizá-lo...

 

Ajude-me a encontrar um erro lógico no código. Quando anexado a um gráfico, o indicador não traça uma linha, ele escreve um erro "4002 - Array index - out of range".

//+------------------------------------------------------------------+
//|                                                  +OtherChart.mq4 |
//|                                                       silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "silhouette"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//+------------------------------------------------------------------+
extern string Smb="GBPUSD";
extern bool Candles=false;
extern bool Line=true;
//+------------------------------------------------------------------+
double Buffer_ind[];
double Buffer_OHLC[4][];
string Symb;
int init()
  {
   Symb=Symbol();
   
   SetIndexBuffer(0,Buffer_ind);
   SetIndexStyle(0,DRAW_LINE,EMPTY,1);
   
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   int counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars-1;
   if (limit>1) 
      limit=Bars-1;
   for(int i=limit; i>=0; i--)
    {
      Buffer_OHLC[1][i]=iOpen (Smb,Period(),i);
      Buffer_OHLC[2][i]=iHigh (Smb,Period(),i);
      Buffer_OHLC[3][i]=iLow  (Smb,Period(),i);
      Buffer_OHLC[4][i]=iClose(Smb,Period(),i);
      
      if(Line==true)
       {
        double Cls=Buffer_OHLC[4][i];
        Buffer_ind[i]=Cls; 
       }
    }
   Alert("Error: ", GetLastError());
   return(0);
  }
 
silhouette:

Ajude-me a encontrar um erro lógico no código. Quando anexado a um gráfico, o indicador não traça uma linha, ele escreve um erro "4002 - Array index - out of range".


1. A variável Velas não é usada em nenhum lugar.

2. A linha

double Cls=Buffer_OHLC[4][i];

não está escrito corretamente. Está no laço - a cada iteração do laço, você cria uma nova variável Cls. E não é necessário lá. É o suficiente para escrever

Buffer_ind[i]=Buffer_OHLC[4][i];
 

E tente a linha

double Buffer_OHLC[4][];

substitua-o por

double Buffer_OHLC[][];
 
Embora seja melhor definir o tamanho da matriz explicitamente - ou alterar o tamanho da matriz no código já no início do indicador.
 
Ah, e aqui está outra coisa. Declarando dimensão de 4 células em uma das dimensões da matriz, você não pode chamar Buffer_OHLC[4][] - a questão é que a numeração começa com zero, não uma. Portanto, o máximo que você pode chamar é Buffer_OHLC[3][];
Razão: