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
Havia aquela outra coisa com a qual eu já tinha um problema - a descrição do ArrayCopySeries é ambígua. Ela sugere em partes que a array[] está escrita em algumas partes, mas em outras, sugere que não está. E eu olho para ela e não entendo absolutamente o propósito da função se ela NÃO copia os dados da moeda para o array.
Aqui está outra coisa que eu gostaria de saber. Ele diz que um EA pode ter 3 funções principais. init, deinit e start. init é executado uma vez quando é executado pela primeira vez, start é executado sempre que há um novo tick, e não diz nada sobre o deinit. O exemplo aqui https://book.mql4.com/samples/expert não tem nem mesmo um init. Ele tem um init. Tem algumas coisas complicadas para aparentemente lidar com erros como Fun_Error seja lá o que for que isso faz. Não tem init. E quanto às variáveis. As variáveis definidas dentro do init ainda são válidas quando ele é feito e quando "start" é executado? Ou elas devem ser declaradas fora de ambas as variáveis? As variáveis são declaradas dentro do start sempre que o start é executado novamente? As variáveis são declaradas fora dela? Espero que não! Não tenho nem mesmo certeza se estou autorizado a ALTERAR as variáveis que são declaradas fora de qualquer função. Elas parecem ser todas variáveis estáticas globais, pelo que vi.
A propósito, são símbolos de moeda usados em funções como o iTime, supostamente entre aspas simples ou duplas. "USDCHF" ou "USDCHF". Mil pequenas coisas como esta. Qualquer uma delas com certeza não será compilada quando eu chegar ao fim. E com milhares de pequenas coisas diferentes e erradas, haverá debugging.
RaptorUK oh de COURSE você não tem nenhuma obrigação de me ajudar. E se a sua idéia de um bom momento é andar à caça de pessoas nos fóruns, zombando delas por estarem em um fórum pedindo ajuda quando o objetivo de ir a qualquer fórum é, LIMPENTE, em primeiro lugar, andar à caça de pessoas, então eu vejo que você está realmente se divertindo e cumprindo o que você acredita ser o papel correto de um usuário do fórum. Quanto a mim, se eu fosse QUALIFICADO para ajudar qualquer pessoa, respondendo a uma pergunta que eu pudesse responder, eu hipoteticamente poderia estar disposto a fazer isso. Sei muito sobre matemática arcana, não tanto sobre programação. Por exemplo, se você tivesse uma dúzia de indicadores que não fossem estatisticamente independentes, sei como combiná-los de forma otimizada em um indicador composto de forma a compensar o fato de que eles são estatisticamente dependentes. É claro que eu certamente não vou ajudar VOCÊ com nada agora. Por Deus, se eu o visse com o pé preso nos trilhos da ferrovia, eu diria: "Eu deveria ajudá-lo, mas o que eu ganho com isso?".
FMIC, há COISAS nessa documentação que não QUITAM que fazem sentido. ...
Não tive dificuldade para ler todo o livro do começo ao fim, apesar de ser bem versado em idiomas de Alto Nível e de Baixo Nível.
Tenho 45 anos de idade e sou desenvolvedor de software por profissão desde 1986, tendo também um B.Sc em Engenharia (Eletrônica de Baixa Corrente). Sou proficiente em C, C++, C#, Pascal, Cobol, Fortran, Perl e muitos outros que já desapareceram há muito tempo. Também sou bem versado em programação Assembler para x86, Z-80, Pics e muitas outras arquiteturas. Mais uma vez, digo, que não tive dificuldade para ler e aprender MQL4.
Portanto, tudo o que posso concluir é que sua atitude de alto e poderoso criticar a documentação, ao invés de se concentrar no objetivo real de aprender MQL, só pode significar uma coisa - você é na verdade mais estúpido do que os não-programadores para os quais a documentação foi escrita.
Se você acha que MetaTrader e MQL são tão inferiores a você, então por que você está aqui? Sério! Por quê?
Existem muitas outras aplicações comerciais e sistemas algorítmicos por aí. Escolha um e vá incomodá-los!
A propósito, o "RaptorUK" é um MODERADOR no fórum. VOCÊ É O TROLL aqui!
Este é o meu último post neste tópico! Você não vale a pena o esforço.
RaptorUK oh de COURSE você não tem nenhuma obrigação de me ajudar. E se a sua idéia de um bom momento é andar à caça de pessoas nos fóruns, zombando delas por estarem em um fórum pedindo ajuda quando o propósito de ir a qualquer fórum é, em primeiro lugar, enganar as pessoas, então vejo que você está realmente se divertindo e cumprindo o que você acredita ser o papel correto de um usuário do fórum. Quanto a mim, se eu fosse QUALIFICADO para ajudar qualquer pessoa, respondendo a uma pergunta que eu pudesse responder, eu hipoteticamente poderia estar disposto a fazer isso. Sei muito sobre matemática arcana, não tanto sobre programação. Por exemplo, se você tivesse uma dúzia de indicadores que não fossem estatisticamente independentes, sei como combiná-los de forma otimizada em um indicador composto de forma a compensar o fato de que eles são estatisticamente dependentes. É claro que eu certamente não vou ajudar VOCÊ com nada agora. Por Deus, se eu o visse com o pé preso nos trilhos da ferrovia, eu diria: "Eu deveria ajudá-lo, mas o que eu ganho com isso?".
Talvez você devesse explicar este seu comentário?
A audácia do povo neste fórum!
Muitas pessoas neste fórum desistem de seu tempo livre para tentar ajudar. . e você vem junto e espera ser ajudado como se fosse um direito! Eu acho que todos ficariam felizes em ajudá-lo até que você demonstre sua atitude . . . você deve mostrar um pouco de humildade ao pedir ajuda.
Você pode me rotular como quiser, eu realmente não me importo, eu sei porque estou aqui e algumas pessoas até me agradecem por tentar ajudar... . . Acho que isso está além de você.
Então tenho que baixar os preços históricos uma vez de cada vez com o iclose? https://docs.mql4.com/series/iClose O problema com isso, a meu ver, é que os dados podem ser atualizados enquanto eu estou no meio do download. Seria muito bom baixar tudo isso como um bloco. Eu acho que posso baixar o tempo com o iTime e ENTÃO usar iclose e ENTÃO usar o iTime novamente no mesmo índice e se ele mudou, então ele começou um novo intervalo de tempo de barra e eu tenho que voltar um número de índice. Estou raciocinando corretamente ou há algo que eu não entendo?
Por que uma função chamada ArrayCopySeries() exigiria que você mesmo copiasse a série?
Você declara a matriz, mas não precisa especificar o tamanho.
Quando você acessa o array, o mql faz "mágica" e (esperançosamente) o valor correto aparece no lugar certo.
Há um exemplo na página.
Dito isto, a documentação on-line está fora de sincronia no momento, portanto use a Ajuda no metaeditor como sua referência principal.
Olhe para o exemplo até que faça sentido!
O tipo de dados de data e hora. Eu vou aqui: http://msdn.microsoft.com/en-us/library/system.datetime_members%28v=VS.90%29.aspx e vejo que as variáveis de data/hora são, por padrão, muito mais complicadas do que o que diz esta documentação. Por exemplo, ela contém informações sobre o MILLISECONDS. Pode ser em qualquer ano até AD 9999. No entanto, esta documentação SUGERE que ela é diferente, mas não entra em detalhes suficientes. Talvez não seja a variável de data padrão C++, mas algo específico da MQL4 então? O número de segundos desde o início de 1970, válido até o final de 2037. Agora, acontece que há quase 2^31 segundos nesse intervalo de tempo. Isso sugere que é um número inteiro longo assinado - já que um número inteiro longo não assinado chegaria de fato ao século 22 a partir de 1970. Posso realmente utilizá-lo em operações aritméticas como se fosse um inteiro longo e assinado? Não diz. É ambíguo. É uma variável glorificada como uma corda, apenas com certas restrições sobre o que a corda pode ser. Também mostra algumas maneiras incompletas de utilizá-la. Mas não é suficientemente explícita sobre todas as formas em que pode ser acessada ou manipulada. Posso simplesmente usá-la em aritmética inteira junto com a ints? Se eu ler o índice de tempo de uma amostra, posso apenas subtrair um de um gráfico de 1 minuto de outro gráfico de 1 minuto e, se forem minutos consecutivos, esperar que difiram em 60 (possivelmente mais ou menos 1)?
Por que tantas palavras para pedir uma coisa simples :)
Antiga MQL: https://docs.mql4.com/dateandtime Um grupo de funções que fornece os dados de trabalho do tipo data/hora(número inteiro representando a quantidade de segundos decorridos a partir da meia-noite de 1 de janeiro de 1970).
Nova MQL: https://www.mql5.com/en/docs/basis/types/integer/datetime - O tipo dedata/hora é destinado ao armazenamento da data e hora como o número de segundos transcorridos desde 01 de janeiro de 1970. Este tipo ocupa 8 bytes de memória.
A maioria dos idiomas que usavam o antigo integer de 32 bits para armazenar o tempo, mudaram para 64 bits, para evitar a ruína quando o ano 2038 chegar.
Basta adicionar e subtrair, como você imagina. Mas mantenha-o como um datatype de data e evite a tentação de armazenar em uma variável longa .
OBRIGADO ydrol!
Hmmmmm. Eu não sei se a transmissão_estática existe mesmo em mql4, mas posso usar qualquer operação aritmética regular em datas, desde que eu guarde o resultado em outra data? Como se X[] fosse um conjunto de datas e eu quisesse trabalhar com o número de minutos, eu poderia tomar Y=(X[17]+30)/60, desde que Y seja uma data e não um tempo longo? Não é? Ou melhor, eu talvez levaria Y=(X[17]-X[16]+30)/60 porque seria ruim se X[17] fosse 29 mod 60 e X[16] fosse 30 mod 60, pensaria que eles estariam 2 minutos separados se eu o fizesse da primeira maneira.
Oh cara, o código que eu fiz até agora já é tão longo, e tudo o que é feito é ler nos dados e agora eu tenho que compensar os minutos de pulo de dados (ou o fim de semana inteiro!), deslocando mais os dados e interpolando, eu me pergunto quais são as chances deste peru funcionar quando eu terminar com ele, ha ha ha. Tudo a partir de um programa matlab que mostra que finalmente tenho um método comercial que pode vencer a propagação/comissão, mas colocá-lo na prática real é outra coisa.
A todos que não são ydrol, ok, estou declarando vocês os vencedores de seus respectivos concursos de p***ing, então parabéns e como vocês ganharam, vocês podem parar de postar neste tópico agora.
Hmmmmm. I don't know if static_cast even exists in mql4, but can I just use any regular arithmetic operations on datetimes then, so long as I save the result in another datetime?
Se o resultado de sua aritmética ainda for um ponto no tempo (ou seja, ainda um valor que é um número de segundos desde 1970), então mantenha-o como uma data, caso contrário você pode lançá-lo para um longo ou int. (Você não tem que fazê-lo, mas evitará confusão mais tarde)
Não ajuda a antagonizar a todos, basta mudar a abordagem para obter a ajuda que você deseja :)
Bem, depois de escrever algum código, de fato me parece muito difícil evitar salvar resultados aritméticos com datas e horas como entradas em pontos. Mas estática_cast<long> funcionaria teoricamente como funcionaria em C++? Eu não vejo nenhuma menção nos documentos.
Ah, a propósito, fuso horário. É UTC? Esse livro continua a dizer o número de segundos desde 1 de janeiro de 1970 às 0:00. Eu poderia assumir que é UTC como a hora UNIX, exceto que já estabelecemos que existem pelo menos algumas discrepâncias entre as variáveis "datetime" aqui e o que C++ usa (sem milissegundos, por exemplo) - que reconhecidamente não é hora UNIX, mas é chamada de "datetime", no entanto - então só porque se assemelha superficialmente à hora UNIX por causa do início de 1970, eu não deveria assumir que é isso que é. É necessariamente UTC ou é possível que cada corretor possa ter seu próprio offset baseado em seu próprio fuso horário e que eu precise tê-lo no código para que ele descubra onde está o início da semana, modulo 10080 minutos, com base nos dados? A questão é saber o tempo em que o modulo 10080 inicia e termina as negociações, já que o mercado só está aberto 7200 desses 10080 minutos, para que ele possa reduzir as posições à medida que o fim de semana se aproxima, e não começar a pleno vapor logo no início ou MUITO pior, para tomar decisões drásticas de negociação baseadas em descontinuidades nos preços entre o final de uma semana e o início da próxima, ou até mesmo para não ter conhecimento de hiatos ao determinar informações como volatilidade - que eu defino como sendo a mudança média quadrática no preço após 1 minuto - e então eu adiciono 1/4 vezes a mudança média quadrática no preço após 2 minutos e 1/9 vezes a mudança média quadrática no preço após 3 e 1/16 vezes a mudança média quadrática no preço após 4 e então multiplique tudo por 1/(1+1/2+1/3+1/4)=0.48.
O que posso dizer, entrei pedindo ajuda e eles foram desagradáveis e antagônicos para mim desde o início. Se alguém pede ajuda, o que eu faço é ou não a dou a eles ou dou a eles. Se eu não sei a resposta a uma pergunta que alguém faz, eu não faço conversa fiada em vez de respondê-la, e se eu não quero tomar o tempo para responder a pergunta corretamente, eu não tomo o tempo para zombar deles por perguntar ou dar-lhes uma inútil não-resposta. Há uma margem de tempo para que alguém faça uma pergunta à qual deveria saber a resposta se viveu no planeta Terra por mais de um dia, ou se a pergunta é retórica e, especialmente, se projetada para ser insultuosa para um determinado grupo de pessoas. Sou uma espécie de indivíduo que vai direto ao assunto e opero com um código de ética teta por teta. Sou educado com as pessoas até que elas sejam desagradáveis comigo e depois deixo de ser educado, e também sou honesto com as pessoas até que elas mentem, trapaceiem e roubem de mim e então meu código padrão de comportamento civil está fora da janela e eu vou mentir, trapacear e roubar em troca e não mostrarei piedade ou restrição. Pode ser uma maneira simplista de ver o mundo, mas eu sou teimoso e implacável.
Mas para você, obrigado por sua ajuda. E se houver alguma coisa em que eu possa ajudá-lo, pergunte. Não que eu suponha que você esteja procurando ajuda com qualquer coisa em que eu possa ajudar.
Bem, depois de escrever algum código, de fato me parece muito difícil evitar salvar resultados aritméticos com datas e horas como entradas em pontos. Mas estática_cast<long> funcionaria teoricamente como funcionaria em C++? Eu não vejo nenhuma menção nos documentos.
Ah, a propósito, fuso horário. É UTC?
EDIT: Oops, como já foi assinalado, não há um fuso horário específico para a data. Depende de onde você o obteve! (isto causa complicações desnecessárias, ao contrário do UnixTime no qual se baseou em última instância!)
O fuso horário para a data (segundos depois de 1970) é baseado no UTC. Assim como a hora Unix. É o UnixTime - tempo unix de 64 bits.
Unile true UTC, Unix time ignore os segundos bissextos (ver 1o parágrafo) e assim modulo aritmético funciona por minutos, e horas.
data hora - data hora = longo (duração de segundos) - embora, no que diz respeito à negociação, será uma intensão na maioria das vezes que eu posso prever!
datetime +/- seconds(long) = datetime(outra data)
data hora +/- segundos(int) = data hora(outra data)