Friday 14 July 2017

Rpgle Chain Hi Indicator Forex


Programando o indicador MT4 Juntou-se a agosto de 2010 Status: Membro 150 Posts Eu sou um código na TradeStation que é muito útil muito útil Estou sob metatrader por 10 dias, então eu não sei como programar meu indicador metatrader sob este programa é bastante complicado. Estudo estatístico da probabilidade de cálculo de swing usando cadeias de markov, então se alguém puder transcrever itll, é claro, este código :-) obrigado jai fais un código sous tradutor qui mest trs utile vraiment trs utile je suis sous metatrader depuis 10 dias donc je ne sais pas comment Programador mon indicateur sous metatrader ce programa é bastante complico il fait une tude statistique des swings um cálculo de probabilidade em caso de mudanças de qualidade, se você puder ser um candidato pode transcrever bem sobre ela código de auras ce :-) merciAgreed - se for apenas Entre CHAIN ​​e SETLL. No entanto, a menos que você esteja mantendo um código legado e você tenha padrões muito rígidos para preservar os códigos opcionais RPG (whammy duplo), tomarei a rota SQL (selecione a contagem, se existir, etc.) neste. É comum acreditar que a IBM parou de otimizar os códigos opcionais RPG há muito tempo (provavelmente ao mesmo tempo que sua esposa participou da conferência), mas eles continuaram trabalhando no mecanismo SQL. Então, do ponto de vista da performance, e francamente o SQL é mais legível com o código livre do que o quotsetll Z1DEPT DPTMASTquot - eu recomendo encostar SETLLCHAIN ​​em favor do SQL. Essa é a minha humilde opinião, é claro. O desempenho é geralmente (nem sempre) menos importante do que outras considerações, como clareza. E se (se) as versões atuais da IBM forem confiáveis ​​e obedecidas ao n-ésimo grau, isso deve ser realizado com o SQL em qualquer caso. - kh Este é um artigo interessante. Nós (AS400 pessoas), sabemos que, claro, quotspeedquot, é relativo. O desempenho sempre é limitado pelo InputOutput, enquanto o melhor código escrito sempre ganha. O desempenho ainda está limitado pela IO. Mas o SETLL é interessante porque não traz dados no buffer, enquanto o tradicional CHAIN ​​faz. Além disso, o SETLL é importante ao criar uma função 3Copy. Traga para o programa o registro original, carregue os campos principais mudando o que você precisa mudar Antes de escrever, use SETLL para garantir que ninguém tenha aninhado na gravação com estas teclas Se não for encontrado (usando não Equal após o Setll) você Agora pode escrever com segurança o registro. Se você fosse usar CHAIN ​​em vez de SETLL na etapa acima, o comportamento da CHAIN ​​irá substituir os valores-chave que você acabou de carregar ... Ele usou muito o setll porque é mais rapido para uma quantidade de registros a realizar a busqueda, Você está em situação privilegiada e fica a cargo de buscar, enquanto a cadeia e o arquivo são poucas da diferença. Lo importante é melhor trabalhar com o Setll. Eu usei muito porque é mais rápido SETLL para uma série de registros para realizar a pesquisa, porque está localizado na direta. Registro do ponteiro para encontrar, enquanto a cadeia, se o arquivo for pequeno, há pouca diferença. O importante é melhor trabalhar com o SETLL. Eu trabalhei com RPGII, III e ambiente nativo, eu gosto de SETLL como bloqueios de registro, não toco na imagem e é fácil começar a ler a partir desse ponto se desejado. Embora, se a leitura de quantidades MASSIVAS de desempenho de dados pode ser uma consideração, mas com as máquinas de hoje, a diferença entre uma CADEIA e SETLL é tão pequena, mas não sei se eu usaria o desempenho como a determinação total que é melhor. Mas mesmo assim SETLL deve ser mais rápido, menos problemas com bloqueios de gravação (sim, eu sei que você pode evitá-los com CHAIN ​​também) e é uma boa plataforma de lançamento para IO, se for considerado necessário. Eu sempre segui o que Tommy sugere. Foi-me dito quando comecei a aprender RPG que a SETLL era mais eficiente ao verificar a existência de um registro. Para experimentar o SETLL é um pouco mais rápido, mas deve ser seguido por uma CADEIA DE LEITURA. É uma educação única, logicamente menos, que escreva instruções mais rapidamente no cálculo. Sim, na situação dada, o SETLL é mais eficiente por 2 razões - primeiro é a velocidade com que o ponteiro do arquivo pode chegar ao registro reqd. SETLL apenas define o indicador, a cadeia trará para a memória tampão ou as variáveis ​​do programa todas as informações de campo da gravação encontrada - às vezes essas informações podem substituir os valores das variáveis ​​quando o mesmo não se destina. Portanto, SETLL economizaria na memória e EVITAR erros de substituição indesejados. SETLL é inerentemente mais rápido, como observado por outros. Infelizmente, devido às mudanças de design às vezes você precisa seguir em frente e recuperar o registro para obter alguns valores de campo, e quando essa alteração for feita, você precisa fazer testes de volume além dos testes regulares no programa para determinar o quanto será Custou-lhe em termos de tempo de execução - esteve lá. Se o registro for acessado apenas por existência, então um SETLL é menos caro que uma CADEIA. Sempre melhor repor o cursor e testar um indicador. Isso pode não importar para pequenas quantidades de IO, mas para um trabalho que precisa fazer isso muitas vezes, as economias de tempo podem aumentar rapidamente. Simon, eu gosto de usar in42 -) SETLL é mais frequentemente muito menos caro do que CHAIN. Eu sei de uma exceção. Alguns anos atrás, no meu emprego anterior, descobrimos que fazer um SETLL em um arquivo de seleção seletiva lógica poderia ser muito caro, muito mais lento do que CHAIN. Se eu me lembro bem, a maioria das linhas foram excluídas pelo selectomit. Este é um não mais inteligente, o SETLL é sempre o melhor método para simplesmente validar que existe um registro em arquivos. Os programas devem ser projetados para maximizar a funcionalidade. Eles também devem ser projetados para ser usados ​​por aplicativos estrangeiros, bem como locais. Eu gastei mais de 25 anos criando aplicativos no RPG, RPG400, amp RPGLE. O método SETLL assegura que os valores das variáveis ​​em seu programa não sejam modificados durante uma validação de registro simples. Depois de validar a existência de um registro, você pode seguir em frente para processar o pedido, conforme necessário. Acima é uma ótima explicação que cobre tudo para atualizar alguma memória. SETLL é ainda mais eficiente quando você está lidando com arquivos e índices lógicos. Com esses tipos de arquivos, uma cadeia precisaria posicionar o argumento de busca no arquivo lógico, recuperar a localização da gravação no arquivo físico, posicionar a gravação no físico e, em seguida, mover o registro de dados para o buffer de IO. Um SETLL simplesmente precisaria posicionar o argumento de busca na lógica. Outro bônus é que, ao lidar com arquivos localmente escopados, o SETLL não requer uma estrutura de dados IO. Absolutamente a CADEIA é muito melhor. Seria útil, Manoj, se você pudesse dar suas razões pelas quais você considera que a CHAVE é melhor do que SETLL para a validação da existência do registro. Para mim, eu usaria SETLL pelos motivos dados por outros aqui. Especialmente em um programa complexo onde o uso é feito de dados de outros registros no mesmo arquivo. No entanto, uma outra abordagem quando você está rotineiramente validando um registro existe em uma tabela 39 de conteúdo 39 (por exemplo, códigos de país) seria ter um programa de utilitário ou programa de serviço que contenha todas as tabelas de dados permanentes. Uma chamada ou chamada de procedimento seria feita a partir do seu programa, dando a identificação da tabela, chaves e método (obter ou verificar). O procedimento ou programa retorna um código para indicar se a gravação existe (método de verificação) e a própria gravação em uma estrutura de dados de formato de registro (método de obtenção). Usando este utilitário, você não precisa acessar muitos arquivos de tabelas em cada programa que você escreve. E determinados arquivos só são abertos no programa de utilitário quando uma solicitação é feita. Fazemos isso na minha empresa, usando um programa em lote para lidar com as tabelas e um par de fila de dados para se comunicar entre o programa aplicativo e o trabalho em lote. Além disso, há um sistema de janela de consulta para lidar com 3939 solicitações em campos-chave na chamada. Mas isso vai além do alcance desta discussão. Eu acho que Manoj quis dizer que você tira mais da CADEIA, então é melhor. Eu uso CHAIN ​​somente quando eu sei com certeza que há apenas um registro para as chaves fornecidas e eu preciso de informações recuperadas para essa linha para uso posterior. Eu acredito que ambos os comandos foram criados para diferentes fins, talvez suas funções sejam semelhantes, mas SETLL é aproximar um ponteiro para ler registros sob um critério e a cadeia é localizar registros aleatoriamente. Posso usar uma faca para ferrar, mas a faca deve cortar. Eu não acredito que SETLL seja mais expressivo do que setll. Enfim, todos fazem um programa de acordo com seu estilo. A velocidade não deve realmente ser o fator gating aqui - a clareza deve ser. Eu pessoalmente sempre usaria CHAIN ​​porque acho que isso torna a intenção do código mais óbvia. Um SETLL, por definição, destina-se a posicionar o cursor. O fato de que ele pode detectar uma correspondência exata é incidental ao seu uso principal. Quando vejo um SETLL, suponho que o programador esteja posicionando uma seqüência READ - quando vejo CHAIN, suponho que a existência de um registro esteja sendo verificada. Qual dos dois cenários corresponde melhor ao requisito quotvalidatequot do OP39 Para mim, a escolha é óbvia. P. S. Enquanto, em teoria, um SETLL sempre deve ser mais rápido, testei alguns anos atrás em um banco de dados regular (não multi-formato) e descobri que em vários testes a CHAIN ​​era mais rápida. Vai saber. Eu concordo com Jon. Em um aplicativo vinculado ao IO, qualquer diferença no desempenho entre CHAIN ​​e SETLL é menor. Código para a precisão e clareza primeiro. No caso de validação, let39s digam um código de estado, por que eu CADEAR Eu não preciso da descrição do estado. Eu só preciso saber que a CA é um código válido. Eu uso o SETLL para ser como documentação no código para dizer às outras pessoas que encontram o código, que eu não preciso dos valores no registro. Estou apenas verificando se está lá no arquivo. Enquanto com uma CADEIA estou fazendo o esforço consciente para recuperar os valores do arquivo para usá-los. Então, se você já decidiu por que você fez a pergunta Se você realmente deseja que a intenção seja inequivocamente óbvia, então você deve codificar um subprocesso para validar esses itens. Dessa forma, o código lê: E então você pode usar use uma pesquisa de matriz, SETLL, CHAIN, SQL, um serviço da Web, etc. etc. para a recuperação real e isso não é importante. O fato de que nenhum dado está sendo recuperado também é óbvio. Você também pode mudar o método mais tarde com zero impacto (por exemplo, realmente faz algum sentido para ter uma tabela de estado? Foi muito tempo desde que foram adicionados.) No que diz respeito a quot. Precisa dos valores. Eu realmente não tenho certeza porque, ao olhar para o código, eles se importariam. Além disso, sua convenção SETLL não ajudaria se eu estivesse lendo seu código porque eu assumiria que você estava começando uma lista. Eu não acho que nunca tenha pensado que você estava fazendo uma validação, mas não precisava dos dados. Esta é, em última instância, uma dessas perguntas, realmente, isso é citado. Depende - se houver uma forte possibilidade, eu vou precisar dos dados de qualquer maneira, eu uso a CADEIA - se for estritamente para verificação dos dados (o usuário deseja ADICIONAR um registro. Verifique se isso não existe primeiro Tipo de coisa) Eu uso SETLL - por que ler em dados se você não vai usá-lo? Por que usar SETLL se você estiver indo usar os dados de qualquer maneira? Em outras palavras - o objetivo determina o que é mais lógico de usar. Atendendo aos critérios estabelecidos - validação de registros. SETLL faz sentido - por que o sistema recupera dados que não serão usados. Isso é como dirigir para o supermercado para ver se há leite, levá-lo para casa e dizer quotYup, eles têm milkquot quando você pode simplesmente ligar para a loja e Pergunte. Eu sou um programador de RPG autodidata e aprendi mais com essa breve discussão do que posso dizer. Eu sempre quis saber a diferença, mas nunca pensei nas ramificações da escolha. Agradeço a todos por me esclarecer. Para um novo desenvolvimento, prefiro SQL SELECT em vez de IO nativo, a lista de vantagens para usar o SQE em relação ao CQE é longa. Mas você encontrará muitos ângulos na ponta de um alfinete.

No comments:

Post a Comment