[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 632
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Por exemplo, você precisa calcular uma média móvel simples com o PeriodSMA. Para calcular o SMA, adicionar os valores das barras do último PeriodSMA e dividir pelo PeriodSMA. É óbvio que para as barras com números Bars-1, Bars-2, ..., Bars-PeriodSMA+1 não vai funcionar, porque simplesmente não temos o número necessário de barras para o cálculo (a barra mais à esquerda tem o índice Bars-1). Portanto, temos que iniciar o cálculo do indicador não com a última barra no gráfico, mas com a barra com o índice Bars-PeriodSMA.
Por que eles escrevem este valor, e não um valor arbitrário? É porque este deslocamento do início do cálculo nos permite calcular a quantidade máxima de barras sem prejuízo da exatidão do cálculo.
Mas tenha em mente que este é o caso mais simples. s vezes pode não estar imediatamente claro a partir do código quantas barras anteriores o programa precisa para o cálculo e de onde exatamente vem esta mudança. Bem, você provavelmente deveria perguntar ao desenvolvedor que escreveu o código. Mas em geral, há uma forma universal - basta olhar para o código, o que em princípio o índice máximo da barra pode ser obtido usando dados de preços e dados de buffer de índice durante a operação do programa, geralmente já nesta fase se torna claro...
Obrigado pelo esclarecimento!
E só para esclarecer, se eu mecanicamente adicionar 0, TP e SL funcionarão neste tipo de terminal?
É claro que sim.
É para isso que eles servem, variáveis externas, para definir quaisquer valores.
Mas é mais fácil colocar no módulo de inicialização o que você foi aconselhado.
Ou sob esta forma:
As variáveis serão ajustadas automaticamente, e para outras necessidades usar multiplicador de uso "decimal".
Спасибо за разъяснения!
И просто чтобы уточнить, если я механическим путем добавлю 0, то TP и SL будут работать в данном типе терминалов?
prorab:
Eles irão, é claro.É para isso que eles servem, variáveis externas, para definir quaisquer valores.
Mas é mais fácil ainda colocar o que você foi aconselhado a fazer no módulo de inicialização.
Ou sob esta forma:
As variáveis serão automaticamente ajustadas, e para outras necessidades usar multiplicador de uso "decimal".
Esta tarefa precisa ser esclarecida:
Boa tarde...
SOS!!! BOA GENTE, SOCORRO!!! Sou um iniciante na programação em geral (sou autodidata), e na MQL em particular. Eu escrevi um indicador simples: RSI + Bandas de Bollinger em uma pessoa. Mas aqui está o problema: se eu não especificar expressamente a quantidade de elementos na matriz Buf_std_dev (ou seja, a linha de declaração da matriz é assim: Buf_std_devduplo []), então ao exibir este indicador na janela do terminal do cliente(CT) eu obtenho a seguinte imagem:
Explicação do quadro:
a) no topo está o RSI, que está disponível no conjunto de indicadores fornecidos com CT, e as Bandas de Bollinger foram arrastadas para a janela deste RSI pelo arraste e drop);
b) na parte inferior está o RSI, que é programado por mim;
O compilador não detecta nenhum erro ou aviso.
Se, por outro lado, ao declarar a matriz Buf_std_dev, eu especificar explicitamente o número de elementos nela (ou seja, a linha de declaração da matriz é assim: duplo Buf_std_dev[5502], onde 5502 é o número de barras, que é obtido usando a variável Barras), então tudo volta ao normal (pois, como você vê na comparação de dois indicadores: todos os valores são os mesmos):
Você pode me dizer o que fazer para salvar a imagem, como na segunda foto, mas explicitamente NÃO para definir o número de elementos na matriz Buf_std_dev.
P.S. Agradecemos antecipadamente a resposta.
Código anexado (sem algumas peças - não cabe em 4 MB!!!):
Mostrar todos os códigos
Favor informar se há maneiras de despejar código acima de 4Mb aqui (ou despejá-lo aqui em partes?) ?
Se seu Buf_std_dev não for um buffer indicador (um dos oito), você precisa especificar seu tamanho, ou qualquer tamanho (se você pretende mudá-lo (tamanho) no futuro) ao declará-lo.
Certo, não é... Se me permitem, então mais duas perguntas ao mesmo tempo:
1. Se eu lhe atribuir um buffer (a matriz Buf_std_dev) , isso significa que ele também será exibido na janela indicadora?
Se eu não atribuir um tampão a ele, então (se eu entender corretamente) ocorrerá a seguinte situação: suponha que eu tenha especificado o tamanho de 100 barras. Então quando novas barras aparecerem (ou seja, se por exemplo Bars=101), faremos cálculos apenas para as últimas 100 barras especificadas (ou seja, a barra mais antiga - 101 - será descartada). Então, ao carregar o histórico, o tamanho da matriz será sempre igual a apenas 100 barras (ou algum outro valor, que eu especificarei ao declarar)?