Como ordenar um array? - Page 2
Página 2 de 744 FirstFirst 1 2 3 4 ÚltimaÚltima
Results 11 to 20 of 36

Thread: Como ordenar um array?

  1. #11
    N�o quero pisar em ningu�m aqui (especialmente porque ele tem mais c�lulas cerebrais do que o meu 1 e faz um �timo trabalho para todos aqui), mas o que h� de errado com a ideia original ... certamente isso classificar� cinco n�meros igualmente bem?

  2. #12

    Para classificar n�meros negativos, eu adicionaria um n�mero adequadamente grande (por exemplo, 999999) para converter todos os n�meros em valores positivos, na chave de classifica��o e usaria NumberToStr() para format�-los. Ent�o eu incluiria o pr�prio n�mero como um item na extremidade direita da string. No exemplo abaixo, permiti que n�meros com at� 2 casas decimais fossem classificados: array_to_sort[i] = NumberToStr(999999 RSI_value[i],Z8.2) pair_symbol[i] NumberToStr(RSI_value[i], Z-3.2) ; Da� um valor de -17,83 para AUDUSD...
    obrigado vou jogar

  3. #13

    Uau, obrigado por isso, certamente darei uma boa olhada nas fun��es adicionais. Um pedido de dica adicional de voc� - se eu usar um indior que produza valores -ve e ve, qual pr�-processamento de adi��o seria necess�rio para que o classifica��o de string pode ocorrer Obrigado novamente
    Para classificar n�meros negativos, eu adicionaria um n�mero adequadamente grande (por exemplo, 999999) para converter todos os n�meros em valores positivos, na chave de classifica��o e usaria NumberToStr() para format�-los. Ent�o eu incluiria o pr�prio n�mero como um item na extremidade direita da string. No exemplo abaixo, permiti que n�meros com at� 2 casas decimais fossem classificados: array_to_sort[i] = NumberToStr(999999 RSI_value[i],Z8.2) pair_symbol[i] NumberToStr(RSI_value[i], Z-3.2) ; Portanto, um valor de -17,83 para AUDUSD seria formatado da seguinte forma: 00999981.17AUDUSD-017,83 Em seguida, voc� classifica e, finalmente, usa StringSubstr() do MQL4 para extrair o par e o valor RSI da string. Para obter mais informa��es sobre a fun��o NumberToStr(), consulte o link em meu post anterior.

  4. #14

    Acho que � isso que eu estava tentando sugerir no post # 10
    Obrigado, mais uma vez, pela sua contribui��o

  5. #15
    Acho que � isso que eu estava tentando sugerir no post # 10

  6. #16

    Lucklogic, boa pergunta. Supondo que eu tenha entendido voc� corretamente......... Se eu tiver que classificar v�rios itens, construo uma string que consiste em: chave de classifica��o, item1, item2, item3, etc. No entanto, voc� n�o pode use ArraySort() do MQL4 para classificar arrays de strings. Adicionei mais de 70 novas fun��es � linguagem MQL4, que compartilhei livremente aqui. Entre elas est�o as fun��es de classifica��o de array e as fun��es de formata��o de n�mero para string e de string para n�mero. RSI � sempre positivo...
    Uau, obrigado por isso, certamente darei uma boa olhada nas fun��es adicionais. Um pedido de dica adicional de voc� - se eu usar um indior que produza valores -ve e ve, qual pr�-processamento de adi��o seria necess�rio para que o classifica��o de string pode ocorrer Obrigado novamente

  7. #17
    2 Anexo(s)
    Mas digamos que queremos introduzir uma progress�o di�ria de 20 per�odos do RSI e quer�amos classificar os pares n�o em ordem alfab�tica como acima, mas por valores decrescentes do RSI - AGORA, como eu faria isso ???
    Lucklogic, boa pergunta. Supondo que eu tenha entendido voc� corretamente......... Se eu tiver que classificar v�rios itens, construo uma string que consiste em: chave de classifica��o, item1, item2, item3, etc. No entanto, voc� n�o pode use ArraySort() do MQL4 para classificar arrays de strings. Adicionei mais de 70 novas fun��es � linguagem MQL4, que compartilhei livremente aqui. Entre elas est�o as fun��es de classifica��o de array e as fun��es de formata��o de n�mero para string e de string para n�mero. O RSI � sempre um n�mero positivo entre 0 e 100, o que facilita as coisas; item1 (RSI) e item2 (s�mbolo de par) podem ser incorporados e extra�dos da chave de classifica��o. Portanto, eu construiria uma matriz de strings a partir do RSI e das matrizes de s�mbolos de par, que consistem em NumberToStr(RSI) e, em seguida, no s�mbolo de par. Em seguida, simplesmente usaria minha pr�pria fun��o ShellsortStringArray() para classificar a matriz em sequ�ncia descendente e, finalmente, desconstruir a string para extrair os itens. Aqui est� um exemplo de script: C�digo inserido/ --------------------------------------- --------------------------- /| x.mq4 |/ ---------------------------------------------------- ------------------- #include lt;#91;color=Verde#93; --- cabe�alho da fun��o.mqh#91;/color#93;gt;/ ---------------------------------------------------- ------------------- int start() {/ ---------------------- --------------------------------------------- #91;cor= Azul#93; #91;color=Gray#93;//carrega matrizes de amostra com 10 IDs de s�mbolo de par e 10 valores RSI correspondentes.......#91;/color#93; #91;/cor#93; string pair_symbol#91;10#93; = {EURUSD,USDCAD,NZDJPY,GBPJPY,GBPCHF,AUDUSD,USDJPY, USDCHF,EURAUD,AUDCAD}; duplo RSI_value#91;10#93; = {46,10,55,79,28,93,12,66,51,8}; #91;cor=Azul#93; #91;color=Gray#93;//build sort array: os primeiros 3 caracteres s�o o RSI, depois o s�mbolo do par correspondente......#91;/color#93; #91;/cor#93; string array_for_sorting#91;10#93;; for (int i=0; ilt;ArraySize(pair_symbol); i ) array_for_sorting#91;i#93; = #91;color=Verde#93;NumberToStr(RSI_value#91;i#93;, Z3)#91;/color#93; pair_symbol#91;i#93;; #91;color=Gray#93;//Z3 alinha o RSI � direita com 3 caracteres com zeros � esquerda e, em seguida, acrescenta o s�mbolo#91;/color#93; #91;cor=Azul#93;#91;cor=Cinza#93;/realiza a ordena��o....... #91;/color#93; #91;/cor#93; #91;color=Verde#93;ShellsortStringArray(array_for_ sorting,true);#91;/color#93; #91;color=Gray#93;//true classifica em ordem decrescente#91;/color#93; #91;cor=Azul#93; #91;cor=Cinza#93;/agora desconstruir os valores classificados de volta aos arrays originais...... #91;/color#93; #91;/cor#93; for (i=0; ilt;ArraySize(pair_symbol); i ) { pair_symbol#91;i#93; = StringSubstr(array_for_sorting#91;i#93;,3); #91;color=Gray#93;//par � armazenado na posi��o 3 em diante#91;/color#93; RSI_value#91;i#93; = StrToDouble(StringSubstr(array_for_sorting#91;i#93 ;,0,3)); #91;color=Gray#93;//RSI � armazenado nas posi��es de caracteres de 0 a 2#91;/color#93; } #91;cor=Azul#93;#91;color=Gray#93;//exibe o resultado......#91;/color#93; #91;/cor#93; MessageBox(#91;color=Green#93;StringArrayToStr(pai r_symbol,T6)#91;/color#93; \n #91;color=Green#93;DoubleArrayToStr(RSI_value,T3)# 91;/color# 93; retornar(0); }/ ---------------------------------------------- -------------------- #include lt;#91;color=Verde#93; --- fun��es extens�veis.mqh#91;/color#93;gt; No resultado, voc� pode ver como os valores do RSI est�o em ordem decrescente, com seus pares de s�mbolos nos elementos correspondentes: AUDUSD,GBPJPY,USDCHF,NZDJPY,EURAUD,EURUSD,GBPCHF,U SDJPY,USDCAD,AUDCAD 93,79,66, 55,51,46,28,12,10,8 Os elementos no array array_to_sort[] s�o assim: 093AUDUSD,079GBPJPY,066USDCHF,055NZDJPY,051EURAUD, 046EURUSD,028GBPCHF,012USDJPY,010USDCAD,008AUDCAD Eu trapaceei usando alguns dos minhas pr�prias fun��es #8212; Destaquei-os em fonte verde. Mas todo o resto � MQL4 direto. Todo o processo construct#8212;sort#8212;deconstruct requer apenas 8 linhas de c�digo. De qualquer forma, � assim que eu abordaria sua pergunta. Espero que lhe d� algumas ideias para trabalhar. Boa sorte,
    David [EDIT] Esqueci de mencionar: voc� precisa copiar os arquivos anexados para sua pasta ..../experts/include.
    https://www.tradingintuitivo.com/gen...analytics.html
    https://www.tradingintuitivo.com/tra...92-trades.html

  8. #18
    [/quote] Hayseed se n�o, e voc� ainda est� interessado nisso, grite de volta ..... vou postar algo raro ....... todos n�s, amadores, temos que ficar juntos ...... h[/cita��o] Eu gostaria de ter sua opini�o

  9. #19
    1 Anexo(s)
    //--- ei sorte..... � dif�cil para n�s pegar peda�os de c�digo e mescl�-los sem ver o c�digo inteiro de tudo envolvido.... h� muitas inc�gnitas..... . vou postar algo mais tarde.....h
    Anexei todo o EA para sua divers�o, mas a parte relevante est� em meu primeiro post. Este � um EA ativo em desenvolvimento, mas acho que precisa seguir uma dire��o diferente - da� meu pedido de assist�ncia
    https://www.tradingintuitivo.com/att...284078891.23_2

  10. #20

    Sim, est� certo e como indior funciona muito bem, mas eu queria usar a ideia de classifica��oclassifica��o de par no contexto de um EA que � codificado de acordo com meu primeiro post. Eu poderia tentar recodificar minha primeira postagem na moda do indior que funciona, mas esse � um trabalho que provavelmente est� al�m da minha compreens�o do c�digo e da maneira como ele funciona
    //--- ei, sorte..... � dif�cil para n�s pegar peda�os de c�digo e mescl�-los sem ver o c�digo inteiro de tudo envolvido.... h� muitas inc�gnitas..... . vou postar algo mais tarde.....h

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.