Indicador para TRYD - A ser desenvolvido.



  • Estou com dificuldades de escrever este indicador que fiz para o MT5 na linguagem do TRYD

    caso alguém se disponha a ajudar a escrevê-lo eu agradeço.

    Imagem do indicador no MT5:

    Imagem do indicador no TRYD onde não consigo prosseguir:

    Link do Script em desenvolvimento para TRYD.

    https://drive.google.com/open?...



  • De ontem para hoje fiz uma nova alteração.

    Ele começa a ficar funcional.

    nesta ele consegue analisar duas velas e as vezes uma terceira. mão não é o ideal.

    O problema esta em saber trabalhar com o tempo nesta linguagem, de modo que ele possa passar por todos as Candles.

    https://drive.google.com/open?...

    Não é eficiente, mas dá para trabalhar em gráficos de 20 min 30 min ou 60 min, considerando a precisão conseguida.



  • @rhofollower disse:

    De ontem para hoje fiz uma nova alteração.
    Ele começa a ficar funcional.
    nesta ele consegue analisar duas velas e as vezes uma terceira. mão não é o ideal.
    O problema esta em saber trabalhar com o tempo nesta linguagem, de modo que ele possa passar por todos as Candles.
    https://drive.google.com/open?...
    Não é eficiente, mas dá para trabalhar em gráficos de 20 min 30 min ou 60 min, considerando a precisão conseguida.

     Rhofollower, admiro sua persistência em fazer as coisas, mesmo sem a ajuda do pessoal do TRYD.

    Agora, eu vi o seu código e fiquei com uma dúvida.

    O cálculo do pivot não deveria ser diário? sempre? 

    Se fizer assim, fica bem mais fácil para você conseguir plotar as linhas, independente do horário gráfico que esteja sendo mostrado na tela.

    Pergunto isso porque o pivot point que o RENATO usa lá no Portal, no MT5, é calculado desse jeito... Ele calcula com base nos valores do diário e não muda quando vamos pro gráfico 5m ou 15m ou 30m.

    Abraços.



  • Bom dia Goofy

    Sim eu gosto e utilizo a minha versão do PIVO do RENATO  - (Minha versão pois não tenho certeza se é exatamente assim que ele determina o alvo 61,8 do dia, pois sempre apresentou ligeiras alterações no valor deste, mas nada que atrapalhe a utilização.)

    Antes de saber deste PIVO eu utilizava o valor 50% de Fibo (Do dia anterior) para determinar o divisor de águas do dia atual, e então com o RENATO afirmando que o correto é o valor 61,8 primeiro alterei no código para experimentar, e ao ver que a precisão das operações foi aperfeiçoada, fiz a alteração neste Código do MT5 da primeira imagem postada acima

    A questão de não estar visível é que ainda tenho um outro Pivo que o chamo de Pivo Fixo e eu embaralhei tudo no mesmo indicador - Com algumas opções de ligar/ desligar) no caso do Fixo e deste dinámico posso configurar para ser visível ou não, mas o PIVO do RENATO sempre fica visível, Tive que ir na aba de configurações de cores e em cada uma delas por a cor "None" assim as linhas do PIVO do RENATO estão 100% transparentes na imagem.

    Segue abaixo o Código do Pivo semelhante ao do RENATO: e um outro o PIVO Fixo que utilizo:

    Renato:

    https://drive.google.com/open?...

    Fixo:

    https://drive.google.com/open?...

    Quanto ao dinâmico a ser desenvolvido, perceba na imagem que na queda enquanto não ultrapassar a 61,8 não  há a menor possibilidade de alta, e no que eu chamo de retorno da tarde, ou no toque na 61,8 ou entre esta e a 50% pode-se bater contra o repique com stop na 38,2 , caso suba novamente pode bater contra o mercado na linha amarela pontilhada. o que ajuda bastante a ver o comportamento do trade e decidir pela probabilidade mais provável da direção.

    Obrigado pela participação Goofy.

    Vlw.



  • @rhofollower disse:

    Bom dia Goofy
    Sim eu gosto e utilizo a minha versão do PIVO do RENATO  - (Minha versão pois não tenho certeza se é exatamente assim que ele determina o alvo 61,8 do dia, pois sempre apresentou ligeiras alterações no valor deste, mas nada que atrapalhe a utilização.)
    Antes de saber deste PIVO eu utilizava o valor 50% de Fibo (Do dia anterior) para determinar o divisor de águas do dia atual, e então com o RENATO afirmando que o correto é o valor 61,8 primeiro alterei no código para experimentar, e ao ver que a precisão das operações foi aperfeiçoada, fiz a alteração neste Código do MT5 da primeira imagem postada acima
    A questão de não estar visível é que ainda tenho um outro Pivo que o chamo de Pivo Fixo e eu embaralhei tudo no mesmo indicador - Com algumas opções de ligar/ desligar) no caso do Fixo e deste dinámico posso configurar para ser visível ou não, mas o PIVO do RENATO sempre fica visível, Tive que ir na aba de configurações de cores e em cada uma delas por a cor "None" assim as linhas do PIVO do RENATO estão 100% transparentes na imagem.

    Segue abaixo o Código do Pivo semelhante ao do RENATO: e um outro o PIVO Fixo que utilizo:
    Renato:
    https://drive.google.com/open?...
    Fixo:
    https://drive.google.com/open?...
    Quanto ao dinâmico a ser desenvolvido, perceba na imagem que na queda enquanto não ultrapassar a 61,8 não  há a menor possibilidade de alta, e no que eu chamo de retorno da tarde, ou no toque na 61,8 ou entre esta e a 50% pode-se bater contra o repique com stop na 38,2 , caso suba novamente pode bater contra o mercado na linha amarela pontilhada. o que ajuda bastante a ver o comportamento do trade e decidir pela probabilidade mais provável da direção.
    Obrigado pela participação Goofy.

    Vlw.

     Acho que eu só atrapalhei e não ajudei em nada... kkkk

    Desculpa aí, mas acho que não entendi o que você quer efetivamente fazer então...

    Mas, sobre o lance de trabalhar os candles necessários conforme o tempo gráfico, não seria melhor você fazer um array para considerar os possíveis tempos gráficos?

    Talvez até um array com outros arrays dentro... tipo... para o gráfico diário é mole... é só um único candle, e para os outros gráficos seriam as 9h de pregão convertidos em minutos divididos pelo timeframe do gráfico sendo exibido.


    Vou me informar melhor com a linguagem do tryd e tentar ser mais útil um pouquinho.

    Abraços.



  • Bom dia Goofy

    O meu conhecimento é muito básico em programação, ainda não havia pensado nisso.

    Descobri há dois dias que há duas funções que talvez possa ajudar, e havia pensado em trabalhar nelas neste fim de semana.

    Funções:

    last() - Retorna a máxima do dia.

    lowLot() - Retorna a mínima do dia.

    No entanto, ontem ao ler as instruções dos comandos controladores do tempo, eu experimentei comentar a linha 98 que é a instrução:

    cal.set(Calendar.HOUR_OF_DAY, 0);

    Deixando-a desta forma:

    //cal.set(Calendar.HOUR_OF_DAY, 0);

    O resultado é que agora ao invés de pegar o valor open de cada dia ele passou a pegar o valor open de cada mudança de horário.

    Assim, irei trabalhar em uma outra função desta, mas desta vez comentado também a linha 99 e talvez a linha 100.

    Espero que assim ele possa passar por todas as barras, mantendo o histórico das leituras, desenhado as máximas e as mínimas, e a partir daí traça-se os Fibos.

    E espero que ao passar pelo segundo controlador de tempo, este, então, iguale todos os valores no ponto de abertura do dia, voltando (O que eu vou adicionar) a ler os valores máximos e mínimos das barras.

    Esta abordagem no momento me parece mais simples de tentar.



  • @rhofollower disse:

    Bom dia Goofy
    O meu conhecimento é muito básico em programação, ainda não havia pensado nisso.
    Descobri há dois dias que há duas funções que talvez possa ajudar, e havia pensado em trabalhar nelas neste fim de semana.
    Funções:
    last() - Retorna a máxima do dia.
    lowLot() - Retorna a mínima do dia.
    No entanto, ontem ao ler as instruções dos comandos controladores do tempo, eu experimentei comentar a linha 98 que é a instrução:
    cal.set(Calendar.HOUR_OF_DAY, 0);
    Deixando-a desta forma:
    //cal.set(Calendar.HOUR_OF_DAY, 0);
    O resultado é que agora ao invés de pegar o valor open de cada dia ele passou a pegar o valor open de cada mudança de horário.
    Assim, irei trabalhar em uma outra função desta, mas desta vez comentado também a linha 99 e talvez a linha 100.
    Espero que assim ele possa passar por todas as barras, mantendo o histórico das leituras, desenhado as máximas e as mínimas, e a partir daí traça-se os Fibos.
    E espero que ao passar pelo segundo controlador de tempo, este, então, iguale todos os valores no ponto de abertura do dia, voltando (O que eu vou adicionar) a ler os valores máximos e mínimos das barras.
    Esta abordagem no momento me parece mais simples de tentar.

     Dá uma olhada na ajuda do tryd sobre scripts...

    https://www.tryd.com.br/manual/HTML/index.html?scripts.htm

    Tem um exemplo legal lá sobre como buscar informações sobre o gráfico intraday no tempo de 1 minuto.

    E a ajuda da API de scripts também pode ajudar um pouco...


    https://www.tryd.com.br//manual/APISCRIPT/javadoc/



  • Compartilhar a última alteração que fiz, segundo a minha suspeita anteriormente apontada.

    Ao que me parece, poderá sim ser uma solução, pois segundo a imagem abaixo já é possível traçar as linhas do maior valor e do menor valor das barras>

    Sim ele está fazendo isso em todo o histórico, mas se perceber bem, o período gráfico é de 30 min então ele não está no início de cada dia voltando a máxima e a mínima para o ponto de abertura do dia.

    Perfeito, se considerarmos que o objetivo é justamente ler as máximas e as mínimas. - O que falta ai é só adicionarmos as linhas internas e já teremos a nossa retração de FIBO, nesta modificação do código.

    Então passamos agora para a segunda etapa do Código, a qual segundo o planejado, consistirá em ensanduichar este com a versão da primeira imagem do TRYD posta acima.

    Link do Código que gera as linhas acima:

    https://drive.google.com/open?...

    Precisamos agora só unificar os código para que ele gere o indicador segundo a imagem do MT5  inicialmente postada e então o PIVO DINÂMICO estará concluído.

    Se agora parecer simples, saiba estou há alguns meses tentando solucionar isso.

    Qualquer ajuda que oferecerem será muito bem vinda.



  • Legalllllllllllll, agora sim eu realmente acredito que estou progredindo.

    Adicionado o código que lê os valores das aberturas do dia.

    Agora o primeiro este faz as Máximas e as mínimas se encontrarem no ponto de abertura de cada dia.

    Acredito que só falta voltar ao código trabalhado ontem para alguns pequenos ajustes.


    Link do código que gera as linhas da imagem:

    https://drive.google.com/file/...



  • Foi um avanço, pela primeira vez consegui fazer percorrer os valores máximos e também os valores mínimos.

    Mas está com cara de placebo.

    Já fiz diversas alterações, ou simplesmente não esquece o ultimo valor sempre retorna a ele após ler a abertura ou simplesmente ignora o valor da abertura.

    Caso kover algum novo progresso volto a postar.



  • @rhofollower disse:

    Foi um avanço, pela primeira vez consegui fazer percorrer os valores máximos e também os valores mínimos.
    Mas está com cara de placebo.
    Já fiz diversas alterações, ou simplesmente não esquece o ultimo valor sempre retorna a ele após ler a abertura ou simplesmente ignora o valor da abertura.
    Caso kover algum novo progresso volto a postar.

     Meu caro,

    Estava lendo seu código para aprender, e também para ver se posso ajudar em alguma coisa, e confesso que não entendi essa parte aqui:

    // Calcula o ponto de abertura.			
    			BARR_lastMAXIMAValue = ( PreviewsHighValue_II + PreviewsHighValue_II + PreviewsHighValue_II ) / 3;
    			BARR_lastMINIMAValue = ( PreviewsLowValue_II + PreviewsLowValue_II + PreviewsLowValue_II ) / 3;     			
    

    Eu li errado o código ou você está fazendo uma média da mesma variável?



  • @Rhofollower 

    outra dúvida:

    eu criei o código abaixo para tentar replicar o pivot fibonacci do mt5 no tryd.

    Pivot Fibonacci para Tryd - Teste 1

    Mas quando eu rodo ele no Tryd recebo o erro de que não foi possível executar o comando "return r". Mas o código nem tem essa linha!!!!

    kkkkkkkk

    Se puder me ajudar nisso...

    Ah outra coisa que percebi é que o cálculo do pivot central no seu outro código está diferente do cálculo tradicional do pivot (abertura + máxima + fechamento divididos por 3).

    Isso é intencional?

    Abraços...



  • Aqui não apareceu esse erro "return r"

    r no TRYD é o o que ele vai retornar ( deve receber tudo o que queremos que ele gere na tela.)

    pivot (abertura + máxima + fechamento divididos por 3).

    Esta definição determina que ele some os valores de: abertura mais o valor da máxima mais o fechamento e após esta soma o resultado deve ser dividido por três e assim resultara em um valor médio.

    Como eu preciso exatamente do valor da abertura, somei a abertura com ela mesma mais duas vezes e ao dividir por três tem-se o próprio valor. (está função requer a soma de três valores) por isso faço: abertura = abertura = abertura e ao dividir por 3 o resultado retornado é exatamente a abertura.

    Caso comente alguma das minha linhas "r" verá que apesar de estarem sendo calculadas não será plotada esta linha comentada.

    Aqui o erro retornado foi na linha 39

      if ( qtCandles < 2 ) {

    talvez a variável: qtCandles não esteja recebendo nenhum valor na na definição dada a ela na linha 36

    qtCandles = historicalData.size();

    Mas não sei se é isso pois eu pus duas afirmação das quais em uma delas devera ter passado:

    if ( 3 < 2 ) ...

    e

    if ( 3 > 2 ) ...

    Apresentou erro em ambas afirmações.



  • valeu pela ajuda.

    vou continuar pesquisando...



  • Não houve nenhum avanço.

    Apresento uma forma mais simplificada

    Onde explico nos comentários o que pretendo.

    Assim primeiro tem o desenho como na última imagem postada e ao comentarem as linhas 159 e 160 e descomentarem as linhas 165 e 166 tem um desenho diferente

    mas acredito que o correto são as linhas anteriores

    Seguindo os comentários verá que eu pretendia fazer a correção nas linhas 260 até 263, mas não é o que o TRYD está aceitando.

    Link:

    https://drive.google.com/open?...

    Então não sei porquê ele desconsidera as atribuições  feitas nas linhas 260 até 263 e para min bastaria isso para funcionar corretamente.

    E somente faltaria adicionar as linhas que faltam, pois até aqui é apenas o essencial para a construção dele.



  • Vou desta vez postar um arquivo mql5 do pivo

    É uma versão bastante simplificada, talvez auxilie no desenvolvimento.

    Aqui fiz um teste do download o navegador o entendeu que é um arquivo sonoro, mas, é um mql5 tem que baixar para ver o código se isso também ocorrer na visualização.

    https://drive.google.com/open?...

     Goofy eu não ví a sua primeira pergunta, ainda bem que a repetiu na segunda.

    Após responder fiz o teste e sim no TRYD não é necessário repetir a variável três vezes e dividi-la, respondi de acordo com uma função do mql5 que ao ver semelhança no script entendi que seria como no MQL5

    O seu código eu não consigo fazer maior comentários, em java eu ainda estou na fase de apenas fuçar e ver o que acontece.



  • @Rhofollower ,

    Fiz umas mudanças no código, mas ainda está dando erro...

    Pelo menos agora é só um erro... kkkkk

    Segue o link para a última versão...

    https://docs.google.com/docume...

    Quando clico no raiozinho (verificar sintaxe) não é encontrado nenhum erro.

    Mas quando clico no triângulo verde (testar) o tryd me retorna a seguinte mensagem:

    Resultados do teste:
    Fórmula inconsistente.
    Causa: 
    - Referência a uma função inexistente.
    - Utilização de variável antes de sua inicialização.
    Detalhes:
    javax.script.ScriptException: groovy.lang.MissingPropertyException: No Such property: close for class: Script27
    Possible Solutions: class

    Desconfio que seja algum erro na linha 27 ou próximo (tem uma variável na linha 29 que uso a função close.date, conforme vi em outro exemplo de script), mas ainda não descobri como corrigir isso.



  • Bom Dia Goofy

    Só utilizo o botão da seta verde para a verificação do código, se passar por ele está ok, segundo as normas JAVA TRYD

    A qui apresentou uma lista enorme de erros.

    Fiz uma alteração no código em que consiste de declarar primeiramente todas as variáveis. ( Que por sinal não encontrei nenhuma sem já ter sido declarada)

    no teste apresentou um erro apenas. Não sabendo como corrigir voltei este erro para a forma de sua declaração ( alteração 02)

    no teste voltou a apresentar a lista de erros da primeira imagem.

    sendo assim, acredito que o erro está somente na declaração da variável da data.

    Link das alterações:

    https://drive.google.com/open?...



  • @rhofollower disse:

    Bom Dia Goofy
    Só utilizo o botão da seta verde para a verificação do código, se passar por ele está ok, segundo as normas JAVA TRYD
    A qui apresentou uma lista enorme de erros.
    Fiz uma alteração no código em que consiste de declarar primeiramente todas as variáveis. ( Que por sinal não encontrei nenhuma sem já ter sido declarada)
    no teste apresentou um erro apenas. Não sabendo como corrigir voltei este erro para a forma de sua declaração ( alteração 02)
    no teste voltou a apresentar a lista de erros da primeira imagem.
    sendo assim, acredito que o erro está somente na declaração da variável da data.
    Link das alterações:
    https://drive.google.com/open?...


     Bom dia amigo,

    Agradeço a sua bondade em me ajudar mais até do que eu estou conseguindo te ajudar.

    heheheheehe

    Obrigado pela sugestão de fazer a declaração de todas as variáveis antes de iniciar o loop FOR. Vou testar aqui.

    Sobre o erro que ocorreu após a sua alteração, acredito que a correção desse erro seja possível somente mudando a linha que define a variável dAtu para o seguinte:

    Date dAtu = null;

    Pois a mensagem de erro diz que não se pode atribuir um valor do tipo INT para uma variável do tipo DATE.

    Vou testar aqui e depois te falo se corrigiu mesmo.

    Abraços.



  • Testei aqui e não de certo do jeito que eu imaginei.

    A mudança de dAtu = 0 para dAtu = null realmente resolveu aquele erro, mas agora voltaram a aparecer aquela imensa quantidade de erros que mostrava anteriormente.

    Voltando aos estudos.


Log in to reply
 


O Portal do Trader não se responsabiliza pelas informações e opiniões veiculadas neste fórum, sendo elas de autoria individual de cada participante. Vale ainda ressaltar que investimentos em mercado de renda variável possuem riscos, ganhos passados não garantem ganhos futuros, e a decisão final e responsabilidade sobre cada operação é de cada investidor, devendo ser tomada individualmente.
© 2018 Portal do Trader. Todos os direitos reservados.