[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 409
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
Ao abrir e atualizar o gráfico, uma solicitação de novos dados vai para o servidor. Algumas empresas de corretagem gananciosas preferem gastar seu dinheiro em seus próprios bolsos em vez de em servidores mais poderosos e em um canal mais amplo. Eles têm que limitar o número de solicitações do terminal para que um servidor fraco não fique "pendurado". A MRC tem apenas 2000 pedidos por dia. É 10 vezes menor do que o número de seus instrumentos multiplicado pelo número de TFs, sem contar os pedidos comerciais.
Inlúi em MQL4 ajuda a racionalizar o código. Por exemplo, é assim que se parece um indicador para 3000 linhas no meu código.
A questão é que, já vi bibliotecas, e é mencionado na documentação, que os lúdes são normalmente colocados no topo do código, onde as variáveis globais são declaradas. Se há funções em inlúdios, parece estranho pensar que em um lugar onde as variáveis globais são declaradas haverá de fato uma função naquele lugar, e alternativamente, algum tipo de variável. Não é assim que o código é escrito. Se variáveis usadas no Expert Advisor e variáveis externas personalizadas forem declaradas no topo, ninguém coloca funções ao lado delas! Mas eles colocam inlúdios com funções, e isso é considerado normal, como eu o entendo. Isto é o que mais me confunde aqui.
Só não parece lógico...
Por outro lado, se for colocado um inline, em algum lugar. em vez de várias funções, que são responsáveis por obter, digamos, um sinal comercial para algum atributo, seria uma coisa lógica e legível.
Infelizmente, o compilador não permite que uma inclusão seja usada mais de uma vez em um módulo. Esta é normalmente uma maneira de economizar em códigos repetitivos.
Boa tarde a todos.
Funções Studying MarketInfo ( ) e Print( )
Aqui está um código simples com estas funções
Testador, TF 60 min.
O pedido da tabela se parece com o pedido do CopyRates ArrayCopySeries e não com o do RefreshRates. CopyRates é a única função não comercializável que move o servidor.
RefreshRates() verificado. Se este Expert Advisor for executado, por exemplo, no EURUSD, e outra ferramenta cuja janela não foi aberta por muito tempo for inserida nas configurações (para que o histórico não esteja lá), o histórico aparece.
Portanto, ainda RefreshRates() refere-se ao servidor e preenche o histórico. Como conseqüência, é necessário controlar a chegada da história.
O suporte diz que nenhuma das funções se refere diretamente ao servidor. Tudo é realizado através do terminal :-).
Se você usa GetProfitFromDateInCurrency() (original - isto é IMPORTANTE: não sei o que você pode ter em sua versão), então a função deve ser chamada assim:
e a função devolverá lucros sobre os pedidos fechados desde o início do dia atual.
E você pode pegar todas as coisas estúpidas no código usando o Print().
não funciona. Ele mostra todo o lucro disponível nas negociações durante toda a história.
Aqui está a função original e eu não mudei nada nela, é claro
aqui está sua chamada e impressão
RefreshRates() verificado. Se este Expert Advisor for executado, por exemplo, no EURUSD, e outra ferramenta cuja janela não foi aberta por muito tempo for inserida nas configurações (para que o histórico não esteja lá), o histórico aparece.
Portanto, ainda RefreshRates() refere-se ao servidor e preenche o histórico. Como conseqüência, é necessário controlar a chegada da história.
O suporte diz que nenhuma das funções se refere diretamente ao servidor. Então, tudo é feito através do terminal :-)
Vadim, eu corri seu roteiro em um terminal no qual eu nunca abri nenhum instrumento além de majores e cruzes com ienes. De qualquer forma, aqui está uma captura de tela:
Nada é bombeado porque a matriz de dados do mercado está vazia, a julgar pelos comentários...
Vadim, eu corri seu roteiro em um terminal no qual eu nunca abri nenhum instrumento além de majores e cruzes com ienes. De qualquer forma, aqui está uma captura de tela:
Nada está sendo bombeado, pois a matriz de dados do mercado está vazia, a julgar pelos comentários...
Sim. Ele também não notou que tem MarketInfo() em seu Expert Advisor e não apenas RefreshRates().
RefreshRates() verificado. Se este Expert Advisor é executado, por exemplo, no EURUSD, e outra ferramenta cuja janela não está aberta há muito tempo é inserida nas configurações (para que o histórico não esteja lá), o histórico aparece.
Portanto, ainda RefreshRates() refere-se ao servidor e preenche o histórico. Como conseqüência, é necessário controlar a chegada da história.
O suporte diz que nenhuma das funções se refere diretamente ao servidor. Então, tudo é feito através do terminal :-)
O nível de imaginação é impressionante. Por que os dados apareceram apenas para alguns símbolos (que não foram abertos), e não para todos eles na análise do mercado? Como a função RefreshRates() sabia que alguns símbolos deveriam ser atualizados e outros não?
Junko, pare de divagar.
não funciona. Produz todos os lucros disponíveis nas negociações em toda a história.
Aqui está a função original e eu não mudei nada nela, é claro
aqui está sua chamada e impressão
Portanto, tudo está correto. Você "lê" a função linha por linha e entende como funciona, se estiver muito entediado para escrevê-la você mesmo, e tudo se encaixa...
Você tem um parâmetro de função:
é ahora do último dia deabertura da barra, ou seja, todas as posições que forem fechadas antes da abertura da barra do dia atual serão calculadas e somadas! Isso faz sentido? Portanto, estabeleça outra barra, que é necessária ou seja lá o que for. Mas você tem que ver por si mesmo.
Sim. Ele também não notou que tem MarketInfo() em seu Expert Advisor, não apenas RefreshRates().
Todas as outras funções:
DoubleToStr(iOpen(sTool, 0, i), Dígitos), ",
DoubleToStr(iLow(sTool, 0, i), Dígitos), ",
DoubleToStr(iHigh(sTool, 0, i), Dígitos), 0, i), Dígitos), " ",
DoubleToStr(iClose(sTool, 0, i), Dígitos), ",
DoubleToStr(iVolume(sTool, 0, i), 0), "\n");
Naturalmente, os dados serão atualizados.