Outros sites Medialivre
Caldeirão da Bolsa

Programação para Finanças (R/Python)

Espaço dedicado a todo o tipo de troca de impressões sobre os mercados financeiros e ao que possa condicionar o desempenho dos mesmos.

Re: Programação em R para Finanças

por Varendia » 17/2/2017 19:36

VirtuaGod Escreveu:Já que estamos numa de dar dicas, se usam um computador de 64 bits saquem o Microsoft R Open. É mais rápido.
:arrow: https://mran.microsoft.com/open/


Uso 64 bit, mas quando instalei o R meti so a versao 64 bit (R x64 3.3.2)
Mas esse microsoft e para substituir o R.

Como isso se faz? depois tem de se explicar ao R Studio onde esta o microsoft R? tem de se desinstalar o R?
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por Varendia » 17/2/2017 19:31

VirtuaGod Escreveu:Já te tinha falado disso há uma semana atrás :mrgreen: São das funções mais uteis de R


Pois mas a forma como ando a trabalhar tem o defeito que so aprendo quando preciso de fazer uma coisa e percebo para que serve.
Nao estou na versao de aprender tradicional, com o que isso tem de bom e de mau.

1. ler o csv com o que queria do FRED
Espero que isso seja automatizado senão mais valia usares o Quantmod para ires sacar a info do FRED


Sim, tenho um CSV com os ids da FRED e uso o quantmod getSymbols, por isso e que faco numa linha
no file do banco de portugal tive de martelar os 45 nomes das colunas num vector para acertar o ficheiro... nao foi bonito, mas ja esta feito e agora corre automatico

Outro comando lindo .. e o remove() para limpar o lixo todo que vai ficando no environment. Estou a deixar a coisa arrumada, fica muito mais facil de ver o que se usa e precisa.
Todos os meus scripts têm no topo:


eu estou a meter o remove ate no meio do script, uso uns objectos para construir o output que quero e a seguir limpo os que usei e guardo so o que e para ficar...
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por LoneWolf » 17/2/2017 19:05

VirtuaGod Escreveu:Já que estamos numa de dar dicas, se usam um computador de 64 bits saquem o Microsoft R Open. É mais rápido.

:arrow: https://mran.microsoft.com/open/


VG, Varendia, já estou a devorar os artigos dessa thread. Obrigado pelo link.
VG, para nao spamar lá na thread, excelente trabalho. Tem imensas coisas. Uma nota, verifica se os links funcionam. Estou na holanda e nao consigo abrir os pdfs da CMVM. Nao sei se estou restringido por IP ou se o link foi mesmo à vida.


Já saquei e instalei o R da microsoft. Preciso na mesmo do RStudio?

Abrç,
lone wolf
Avatar do Utilizador
 
Mensagens: 1333
Registado: 29/4/2015 16:02

Re: Programação em R para Finanças

por VirtuaGod » 17/2/2017 18:30

Já que estamos numa de dar dicas, se usam um computador de 64 bits saquem o Microsoft R Open. É mais rápido.

:arrow: https://mran.microsoft.com/open/
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por VirtuaGod » 17/2/2017 18:21

lonewolf Escreveu:VG, Varendia

Concordo totalmente em ir-se buscar informação "afinada" a artigos científicos.
Mas, de novo, não tenho conhecimentos suficientes para ser crítico de métodos, estratégias ou indicadores. A ideia seria espetar todos no software e compará-los com backtestings.

Mas também é por isso q estou aqui: sacar ideias para ir aprendendo e experimentando.

Já agora, geralmente tenho acesso a tudo o q são artigos científicos, desde q haja em formato pdf.

Abrços

Acho que a tua educação financeira é tão importante como a de programação. Lê muito sobre investimentos senão nem sabes distinguir um "bom" backtest mas irrealista de um "mau" mas realista.

A lista que tenho na primeira página do tópico que o Varendia recomendou é bom local para começares :wink:
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por VirtuaGod » 17/2/2017 18:17

Outra funcao linda... lapply

Já te tinha falado disso há uma semana atrás :mrgreen: São das funções mais uteis de R

http://caldeiraodebolsa.jornaldenegocios.pt/viewtopic.php?f=3&t=85069&start=75#p1270764

1. ler o csv com o que queria do FRED

Espero que isso seja automatizado senão mais valia usares o Quantmod para ires sacar a info do FRED

Outro comando lindo .. e o remove() para limpar o lixo todo que vai ficando no environment. Estou a deixar a coisa arrumada, fica muito mais facil de ver o que se usa e precisa.

Todos os meus scripts têm no topo:

Código: Selecionar todos
options(digits = 5, scipen = 100) # Setting to max five significant digits
rm(list = ls()) # Clears the environment
graphics.off() # Clears Graphics/Plots
cat("\014") # Clears the console
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Varendia » 17/2/2017 14:44

Outra funcao linda... lapply

com quatro linhas:

1. ler o csv com o que queria do FRED
2. descarregar
3. merge dos ficheiros todos do FRED, o lapply e o meu melhor amigo, depois de 1 hora a tentar inventar loops.... e porcaria que nao fazia nada do que queria
4. merge com a base do BdP

Ou seja, fiquei com uma base de dados que tem taxas de juro a 1 ano desde 1959... cambios do USD e do EUR com todas as principais moedas e com uns indices BoAf de high yield / etc..

E rapido e facil descarregar tudo do zero quando se quer em vez de actualizar a base de dados...

Mas confirma-se o nao saber umas bases de R vao-se comecar a notar quando comecar os backtests, por outro lado ha tanta resposta pronta na internet... devo perder menos tempo a procurar para conseguir fazer exactamente o que quero, do que perder semanas a aprender o Ba BA do R.

Para acabar o momento em grande, descarreguei a base de dados final para um csv (mais 4 linhas) e fiz o script para o importar de volta e voltar a transformar no mesmo xts (outras 4 linhas) ... assim ja da para actualizar so os valores novos, ou para usar para testes sem ter de andar a criar DBs a cada vez. Bonito.

A desgraca e que fica dificil de exportar para o excel... so reformatando as colunas todas para nao estoirar a importacao, mas daqui a pouco nao e preciso. O R fica com tudo la dentro...

Outro comando lindo .. e o remove() para limpar o lixo todo que vai ficando no environment. Estou a deixar a coisa arrumada, fica muito mais facil de ver o que se usa e precisa.
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por Varendia » 17/2/2017 12:24

lonewolf Escreveu:Mas também é por isso q estou aqui: sacar ideias para ir aprendendo e experimentando


Dir-te ia para veres a primeira pagina do outro Topico do VG Finanças & Fundos de Investimento (baixo risco). comeca a ler para perceberes o que e normal, o que se faz, etc... talvez o VG saiba de alguns sites que tenha o MPT bem explicado e depois de tudo o que se lhe pode juntar. Eu tem sido na versao de quando vejo mais uma coisa que pode ser interessante, vou ler.
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por LoneWolf » 17/2/2017 12:03

VG, Varendia

Concordo totalmente em ir-se buscar informação "afinada" a artigos científicos.
Mas, de novo, não tenho conhecimentos suficientes para ser crítico de métodos, estratégias ou indicadores. A ideia seria espetar todos no software e compará-los com backtestings.

Mas também é por isso q estou aqui: sacar ideias para ir aprendendo e experimentando.

Já agora, geralmente tenho acesso a tudo o q são artigos científicos, desde q haja em formato pdf.

Abrços
Avatar do Utilizador
 
Mensagens: 1333
Registado: 29/4/2015 16:02

Re: Programação em R para Finanças

por Varendia » 17/2/2017 8:34

mesmo assim o yahoo so da desde dezembro de 2003

O do BdP ja esta feito desde 1999 (desde que existe EUR)
Vou seguir para a lista do FRED que da os historicos de sempre do USD e mais umas coisas.

devagarinho vamos la.
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por VirtuaGod » 17/2/2017 1:03

Varendia Escreveu:dados do yahoo acho que so da 10 anos, foi o que me deu para as moedas, por isso e que voltei ao BdP.

Está assim por defeito no quantmod. Tens de alterar as options. Faz algo estilo
Código: Selecionar todos
getSymbols("SPY", src="yahoo", from = "1900-01-01")
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Varendia » 16/2/2017 22:42

La fiz o script das moedas com duas marteladas um pouco feias, mas ja esta feito, e no fim fica so com os pares de moedas que quero guardar para testes. A rotina para actualizar este file vai ser gira. Deve ser mais facil tirar tudo de novo do que ir actualizar so a partir da data que ja tenho.

O dos fundos ja estava com o teu script, tenho de actualizar a lista dos fundos que quero ir buscar.

Depois decidir como quero tratar dos indices, os MSCI dao para testes mas nao me dao para as regressoes, precisava de algo diario desde 1999, ideias?
dados do yahoo acho que so da 10 anos, foi o que me deu para as moedas, por isso e que voltei ao BdP.
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por VirtuaGod » 16/2/2017 19:03

A trabalheira é de não saberes dplyr ainda. Dá aí uma olhadela 8-)

https://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html

Para backtests e assim, que me parece que te interessa, tens o quantstrat que tb me parece bastante interessante. Tanta coisa, tão pouco tempo...
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Varendia » 16/2/2017 18:41

VirtuaGod Escreveu:P.S. - NOT kidding. Teria é que se montar algo com uma estrutura estilo hedge fund onde eu pudesse fazer TUDO o que eu quisesse 8-) Umas boas estratégias market neutral + estratégias de volatilidade + beneficiar do ineficiencias de determinados produtos financeiros + um simples lazy portfolio e voilá, sharpe > 1. São estratégias que eu tenho debaixo de olho há uns anos com sucesso, não foi um backtest feito hoje de manhã :mrgreen:


Queria dizer que hoje ha tanto $ no mercado que e dificil arranjar bons premiums, por isso e que se veem fundos a fechar e nao aceitar mais entradas, porque conseguem com 100 milhoes um retorno que nao conseguem com 10x isso. Quem tem centenas de milhoes tem e ganancia a mais, ou sao fundos soberanos ou etc... Eu nao precisava de muito para me reformar, nao sou assim tao ambicioso 8-)

Estou totalmente de acordo com o quote acima, por exemplo ler umas coisas sobre o Ed Thorpe, portfolios market neutral com 3 meses negativos em 200 meses !!!!! 200 meses !!!
Nao faltam coisas boas para fazer, mas infelizemente e preciso ou $ ou coragem de largar tudo e acreditar que se consegue montar um sistema desses.

Estou prestes a desistir de tratar o csv de dados do BdP e de ir buscar o mesmo a outro lado.... so a trabalheira que e corrigir as colunas para poder usar e sem saber se no futuro metem mais uma ou menos uma ...
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por VirtuaGod » 16/2/2017 17:24

Sim, muito do conhecimento está em papers. Os livros são versões simplificadas (watered down) para as massas. Leio imensos livros mas se me foco numa ideia é seguir para papers. Excluindo talvez o iijournals.com que vou lendo com gosto, pois é uma mistura entre a simplicidade dos livros e o rigor dos papers e costumam ter sempre ideias interessantes no meio de tantos journals que eles editam. O paper original do sharpe ratio entre outros é de lá.

Estou a precorrer a lista do que são considerados os melhores deles:

:arrow: http://www.iijournals.com/page/BFJLABooks

Varendia Escreveu:nao ha mercado suficiente para dar bons retornos a quem tem centenas de milhoes para investir.

Arranja-me as centenas de milhões que eu arranjo-te os retornos :mrgreen:

P.S. - NOT kidding. Teria é que se montar algo com uma estrutura estilo hedge fund onde eu pudesse fazer TUDO o que eu quisesse 8-) Umas boas estratégias market neutral + estratégias de volatilidade + beneficiar do ineficiencias de determinados produtos financeiros + um simples lazy portfolio e voilá, sharpe > 1. São estratégias que eu tenho debaixo de olho há uns anos com sucesso, não foi um backtest feito hoje de manhã :mrgreen:
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Varendia » 16/2/2017 16:42

lonewolf Escreveu: A ideia seria construir uma framework q por um lado reunisse todos esses dados, extraísse informação (categórica, numérica, estatística - o que o R faz -), se visualizasse a informação (tabelas, gráficos, linhas, pontos, cores e "magias"), e se interagisse com essas visualizações seguindo regras/tecnicas q se vao encontrando nos livros/blogs/foruns.


Eu ja me deixei de blogs/foruns (excepto este e outro topico onde me motivo a fazer alguma coisa).
Quando leio e so papers academicos e pouca coisa em livros. Podcasts para ir ouvindo enquanto conduzo. Em papers academicos encontro coisas que gostava muito de fazer, para isso o R e a ferramenta perfeita e por isso ter-me atirado com tanta vontade.

De quem pos o excel a fazer muita coisa (tal como outros que andam por este forum), hoje em dia ha muita teoria, nao da para querer fazer 'tudo', usar 'todos os dados'. Com o avanco dos quants, nao faltam programadores e machine learning a testar milhoes de cenarios e a tentar encontrar o buraquinho da agulha. As consultoras e advisories tem dezenas de milhoes para brincar a testar coisas. O problema e que para o mundo em geral ha muito pouca inovacao e nao ha mercado suficiente para dar bons retornos a quem tem centenas de milhoes para investir.

O que tenho tentado fazer e em que acredito, e encontrar algo que funcione e que seja diferente do que a maioria do mundo faz, porque ai abre-se a oportunidade de conseguir ter risk adjusted returns interessantes, mas isso passa por ler, ter ideias, testar, ler, ....
Ha coisas tao interessantes em Long/Short, em algumas estrategias diferentes, que ainda nao estao overpopulated. Le umas coisas basicas sobre tipos de estrategias diferentes e ve o que se adequa ao que procuras.
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por LoneWolf » 16/2/2017 15:50

Varendia,
Obrigado pela tua resposta tão completa! :wink:

Sim, tudo o q dizes dou-te razão. Li há ja uns bons tempos um artigo cientifico onde puseram lado-a-lado uma miúda de 8 ano, um trader professional, e outras pessoas com conhecimentos a jogar com fake money. A menina de 8 anos ganhou. Tenho noção completa do risco e da loucura q os mercados são. :roll:

Aquilo a q te referes de fazer analise de sentimento de mercado, analise fundamental e analise técnica é o que eu escrevi acima. A minha idea é ter uma plataforma de software q me faça isso tudo. E tudo é "relativamente" quantificável. São apenas números, preços, tendências, comportamentos, sinais, rácios, etc. Infelizmente o que vou vendo nas aplicações de trading (IB, goBulling, etc) têm pontos fortes e fracos, mas sempre imcompleto e inflexivel ou simplesmente demasiado complicado :shock: A ideia seria construir uma framework q por um lado reunisse todos esses dados, extraísse informação (categórica, numérica, estatística - o que o R faz -), se visualizasse a informação (tabelas, gráficos, linhas, pontos, cores e "magias"), e se interagisse com essas visualizações seguindo regras/tecnicas q se vao encontrando nos livros/blogs/foruns. Através da visualização e interacção, extrair novo conhecimento para servir de input ao R (R como exemplo. pode ser feito em C++ ou python por exemplo).

Infelizmente os meus conhecimentos de economia, finanças, estatística e machine learning são muito limitados. Tal como o VG propôs, se calhar ainda sai daqui uma comunidade interessante e lançamos um livro (e um software e um PME e ficamos todos ricos em 3 tempos!) :twisted:

VirtuaGod, Boa onda!

Abraços!
Avatar do Utilizador
 
Mensagens: 1333
Registado: 29/4/2015 16:02

Re: Programação em R para Finanças

por VirtuaGod » 16/2/2017 15:43

Varendia Escreveu:
lonewolf Escreveu:shinny apps = https://shiny.rstudio.com/ ?


Obrigado, outro mundo novo.
Mais trabalho/estudo. :mrgreen:
Mas so depois dos dados...

Sim, todo um mundo novo. Mas acho que não te trás nada de novo para ti. Basicamente é uma UI (user interface) para o pessoal poder usar o teu script de R.

@lonewolf

Posso sacar fundos doutros sites, ou a tua package já faz isso automaticamente? (desculpa a pergunta, aposto q a resposta está algures na thread).

O meu package é só para os fundos do BEST. Mas via quantmod podes usar imensas fontes, sendo talvez a favorita da comunidade a yahoo finance, sendo que passas a ter acesso a um universo gigante para investimento. O Quandl é outro site com montes de base de dados e uma API bastante simples de usar.

shinny apps = https://shiny.rstudio.com/ ? Queres ter uma app online (ou web app a correr localmente) baseada nas tuas coisas de R?

Qual é a piada de correr localmente?? :twisted: Novidades para breve 8-)
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Varendia » 16/2/2017 15:08

lonewolf Escreveu:Investir em ETFs e acções atractivas/undervalued. Como descobri-las? Estou convencido q ao aplicar uma séria de rácios, cálculos, machine learning, observações de curto e longo prazo se chegue lá alguma segurança. Há várias empresas e muita gente q já o faz mas parece-me q usam ferramentas muito incompletas e demasiado complexas, e rígidas no q toca À exploraçao dos dados. E é aqui q me vejo a entrar, pois sou engº software.


Atractivo/undervalued e muito relativo, para isso e melhor ir ver acima um pouco do que escreveu o ArtistaRomeno. Analise fundamental e uma ciencia e depois ha todo o lado de sentimento de mercado / trend strategy que pode furar tudo isso.
Ha uma serie de racios que te podem ajudar a estimar o sentimento do mercado (overbought/underbought) em relacao a um asset, mas diria para leres muito antes de olhar para tentar descobrir o pinheiro certo no meio do pinhal. Uns numeros:
Se considerares o periodo 2000-2016 a Berkshire Hathaway (W.Buffett) overperformed o mercado (S&P500) em cerca de 4%/ano, uma brutalidade, mas se so contares o period 2010-2016 tem uma underperformance de 3%/ano. Ou seja, o guru de descobrir negocios fez menos % return do que eu nos ultimos 6 anos. Claro que se calhar ja comprou o que o vai fazer overperform outra vez os proximos 4 ou 6.... mas stock picking.. ui

No S&P500, a valorizacao toda do indice vem das melhores 15% a 20% accoes, as outras 80 a 85% todas juntas sao performance neutral, e no total do indice, 50% tem retorno negativo. Mais uma vez, stock picking .. ui... medo.

Tenho um basket de accoes directas, nao tem grande peso no meu portfolio global, mas em 4 anos tenho uma com performance acumulada (real retunr) de +48% e outra com -60% ... foi sorte. quando as comprei acreditava em ambas com momentum diferente .. mas, e uma das carteiras que deve ir a vida este ano, o risco nao justifica.

Tenho uma componente tactical long term no meu portfolio, ou seja, procuro classes que em prazos medios tem um underperform interessante, como emerging markets... que andam de rastos ha uns anos, nao quer dizer que nao continuem uns tempos, mas e numa versao longo prazo, podem continuar a perder mais 3 ou 4 ou n anos...
Outra componente e trend following/tilt, que pode ser olhado um pouco menos longo prazo, mas da mesma forma, sao 'sinais' de entrada/saida, nao sao garantes de estar barato, nem de retornos.

Estou a usar palavras caras porque nem sei dizer estas coisas em Portugues, o VG deve saber traduzir

Ve o outro Topico do VG dos investimentos de 'baixo risco' onde ha muita muita informacao, e le outros, ha um topico de qq coisa especulativas que e interessante e com exemplos de analise tecnica... ha muitas teorias / estrategias / mas ou se investe tipo 'fe', nao e preciso saber basta acreditar, ou entao ha muito para estudar para se tomar uma decisao informada.

Em relacao ao R, para alguem de Eng. software deve ser instantaneo, se eu consigo em pouco tempo fazer o que tento e descubro os gatos no codigo quando nao faz o que quero.. mas ha tanta coisa, se nao se souber exactamente o que se quer fazer uma pessoa perde-se no universo de informacao.

lonewolf Escreveu:Agrada-me isto! Vou começar a fazer isto, espero eu, já este fim de semana. Posso sacar fundos doutros sites, ou a tua package já faz isso automaticamente? (desculpa a pergunta, aposto q a resposta está algures na thread).


Ha algumas bases free, outras nao. A rotina do VG tira do Best. Do Yahoo e facil tirar, ha mais alguns sitios.
Eu vou agora voltar para isso, acho que e mais saber o que se quer como resultado final do que a dificuldade de arranjar os dados.

VirtuaGod Escreveu:A ideia será criar uma comunidade de R/Finance Portugal como a dos fundos de investimento.
A parte 1 é a única coisa que fiz mas isso não diz respeito à carteira 4 fundos. Tens apenas 2 posts da carteira 4 fundos no RPubs.


Bolas, ja a comunidade de fundos de investimento e pequena, a comunidade R/Finance devem uma duzia de pessoas, e muito niche! :D
Isso devia dar para por no CV ... Member da comunidade R/Finance Portugal... :lol: crias a associacao e cobras quotas!

lonewolf Escreveu:shinny apps = https://shiny.rstudio.com/ ?


Obrigado, outro mundo novo.
Mais trabalho/estudo. :mrgreen:
Mas so depois dos dados...

Se tiveres mais perguntas atira, se for de R aqui, se for de investimento talvez no outro topico, se for de investir com o R ... ui ..
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por LoneWolf » 16/2/2017 13:11

Olá VirtuaGod, de novo obrigado pelas respostas.

VirtuaGod Escreveu:O que pretendes fazer?


Investir em ETFs e acções atractivas/undervalued. Como descobri-las? Estou convencido q ao aplicar uma séria de rácios, cálculos, machine learning, observações de curto e longo prazo se chegue lá alguma segurança. Há várias empresas e muita gente q já o faz mas parece-me q usam ferramentas muito incompletas e demasiado complexas, e rígidas no q toca À exploraçao dos dados. E é aqui q me vejo a entrar, pois sou engº software.

VirtuaGod Escreveu:De qualquer forma R é o caminho e é bastante simples. EM duas semanas o Varendia foi de sacar o R + RStudio a fazer uma Fronteira Eficiente :shock:
Instala o R e o RStudio e lê o tópico desde o início. instala o quantmod, devtools etc e depois o meu package e começa a sacar fundos do best que aches bons para a base de dados.
Quando tiveres a base de dados o resto é simples. Se quiseres ajuda vai pedindo que o pessoal vai dando dicas (atrás deram-me uma dica brilhante). Começas com fundos mas depois podes ir incluindo o que quiseres na base de dados, só tens de arranjar os dados/cotações.
Por enquanto ainda ng é expert em R por isso seria porreiro apanhares o comboio ainda a sair da estação :wink:


Agrada-me isto! Vou começar a fazer isto, espero eu, já este fim de semana. Posso sacar fundos doutros sites, ou a tua package já faz isso automaticamente? (desculpa a pergunta, aposto q a resposta está algures na thread).


VirtuaGod Escreveu:A ideia será criar uma comunidade de R/Finance Portugal como a dos fundos de investimento.
A parte 1 é a única coisa que fiz mas isso não diz respeito à carteira 4 fundos. Tens apenas 2 posts da carteira 4 fundos no RPubs.

ok!


shinny apps = https://shiny.rstudio.com/ ? Queres ter uma app online (ou web app a correr localmente) baseada nas tuas coisas de R?

Abraços,
o lobito das finanças ^^
Avatar do Utilizador
 
Mensagens: 1333
Registado: 29/4/2015 16:02

Re: Programação em R para Finanças

por Varendia » 16/2/2017 6:18

VirtuaGod Escreveu: nos dias que correm só quero saber de shiny apps :wink:


O que raio sao shiny apps? sao apps que brilham ?

Eu tenho de voltar aos dados, ate ter a base de dados a fazer tudo o que a minha faz agora (e mais umas coisas que quero por a fazer) nao vale a pena tentar optimizar mais nada.

A fase seguinte serao os outputs graficos e como os combinar num output .. essa e que deve ser bonita, depois de criar 10 graficos como e que os monto numa pagina / folha / pdf?. :shock:
E interessante ver o quanto preciso de aprender de R so para replicar o que ja faco em excel. E claro que com o R o potencial do que posso fazer a mais e a velocidade a que o posso fazer nao sao comparaveis. So quer dizer que perdi muito tempo e aprendi muito de excel.
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

Re: Programação em R para Finanças

por VirtuaGod » 15/2/2017 22:46

Para mim uma carteira feita assim tem um risco que não consigo quantificar tão bem e duvido que tivesse muito melhor retorno que uma posição mais global e mais passiva como a que recomendo. Análise fundamental é um pouco mais avançado que analise técnica (na minha opinião) mas depende na mesma de ineficiências de mercado que não acredito que existiam, pelo menos em valor significativo que criem um alpha à carteira a médio/longo prazo.

Sou até apologista de ter uma carteira satélite (ao lado da core) que dê para aproveitar certas "loucuras" que os mercados têm (quedas estilo o HY em 2015, o Brasil em 2015, Europa em 2011 etc etc) mas não me daria ao trabalho de fazer essa análise fundamental de que falas. Sei de quem usa algo semelhante e embora tenha óptimos resultados (até envergonha profissionais de anos que gerem centenas de milhões) as carteiras dele são ligeiramente abaixo das minhas últimas carteiras puramente quantitativas. Há 2/3 anos era que ele tinha ligeira vantagem sobre mim, mas o R deu-me aquele danoninho que faltava :wink:

A parte quantitativa deu um pulo à minha construção de carteiras no final de 2013 e o R agora deu outro jeito grande, principalmente na construção de carteiras pequenas. Um dia talvez vá usar uma análise mais qualitativa que por enquanto não me acrescentaria nada ou pouco.
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Artista Romeno » 15/2/2017 22:19

VirtuaGod Escreveu:Não discordo completamente de ti mas..

:arrow: Estamos a falar de investimento não de especulação;
:arrow: Tb sou da opinião que no curto prazo os mercados poderão ser ineficientes, mas estas aplicações são para anos;
:arrow: A maioria do tempo os mercados são eficientes, e cada vez há mais mercados eficientes;
:arrow: Backtests e fronteira eficiente, principalmente se usados por alguém que perceba os seus defeitos, é algo simples e bastante eficaz;
:arrow: A teoria é como aprender a andar, e só depois aprender a correr. Primeiro aplicas as coisas como se o mundo fosse perfeito (um modelo) depois começas a ajustar à realidade;
:arrow: Ter uma carteira de investimento e usar a FE (ou/e backtests) )para fazer as alocações de longo prazo não impede de fazer ajustes quando a oportunidade surge. O ano passado estive sobre ponderado em HY, porque achei que a oportunidade era boa demais para deixar escapar. O timming não foi perfeito mas... foi suficientemente bom :wink:

Dito isto, o que sugeres para a criação de uma carteira de investimento :?:


Numa abordagem puramente matematica propor-me ia a fazer algo em 2/3 fases, caso o objectivo fosse investir por fundos ou etf, primeiro tentava defenir qual o meu perfil de risco, assumindo para tal um cenario extremo, numa carteira de ações diversificada pelos principais ativos globais, qual foi a perda maxima até hoje num só ano!, a seguir perguntava a mim mesmo quanto não me importava de encaixar de pancada sabendo que no longo prazo, com dividendos reinvestidos as ações são sempre um investimento ganhador e daí saberia quanto ia meter em ativos com risco e ativos de risco mínimo e facilmente vendaveis leia-se divida pelo menos A- e aplicações monetarias.
Depois de saber quanto estaria disposto a levar de porrada :mrgreen: ia então estudar que ativos ia meter na carteira de ações, e ai haveria 3 tipos de escolhas a fazer por empresas globais, 2 geografia e 3 setor, e aqui necessitaria de boas skills de programação. Assim se escolheres fundos/ etf maiores empresas em geral a nivel global acabas por estar exposto a economia como um todo pois as operações são transnacionais vide a coca cola a apple , a mercedes, a lvmh etc, iria analisar este package em termos dos seguintes itens ( exemplo)
Para ações globais e setores
AG e setores only
FCF yield
ev/ebita
5 10 20 yr earnings growth
5 10 20 yr sales growth
Net debt/ebit
Grau de concentração
ambiente regulatorio
barreiras a entrada
facilidade de disrupção

retorno a 5 10 20 e 50 anos passados
setores especialmente industrias incluia +
evolução preço output 10 20 e 50 yr
Existencia de susbstitutos crediveis ? se sim perdia atratividade


Facilidade de disrupção
Geografias
Crescimento demografico
crescimento da produtividade
crescimento economico
50 20 10 yr passado e estimado futuro aqui nao tinha tão para a frente ( e previsões)
inflação
estabilidade politica
corrupção
genero ranking facilidade fazer negocios
economia essencialmente primaria secundaria terciaria etc?
resumindo ia meter indicadores puramente financeiros e numa componente quantitativa pura, mas ia complementar com alguns indicadores não numericos e que teria que lhe dar uma escala ( nos paises era facil há aqueles rankings da facilidade de fazer negocio http://www.doingbusiness.org/rankings ), mas que considero serem verdadeiros fatores de risco, isto foi um draft rapido :D

mas eu ao fazer uma carteira era este tipo de coisas que ia olhar, bem sei que não ia ser facil modelizar isto, a variancia como indicador do risco é bem mais simples, só que a meu ver tem um grande problema baseia-se nos comportamentos do passado e o amanha pode não ser o ontem :-k
As opiniões expressas baseiam-se essencialmente em análise fundamental, e na relação entre o valor de mercado dos ativos e as suas perspectivas futuras de negocio, como tal traduzem uma interpretação pessoal da realidade,devendo como tal apenas serem consideradas como uma perspetiva meramente informativa sobre os ativos em questão, não se constituindo como sugestões firmes de investimento
Avatar do Utilizador
 
Mensagens: 5385
Registado: 4/4/2014 18:06
Localização: Iberia

Re: Programação em R para Finanças

por VirtuaGod » 15/2/2017 20:54

Se aprendeste isso tudo num dia a mim dá-me esperança que eu não demore mais de uma... semana :mrgreen:

Quando tiver oportunidade dou uma vista de olhos, mas acho que só para o Verão que nos dias que correm só quero saber de shiny apps :wink:

Mas boa evolução. Por enquanto não usamos muito das coisas mas acredito que vamos passar a usar para tentar evitar overfitting. Gosto muito da visão de optimização por Drawdowns, principalmente com um verdadeiro Stress Test real em 2008. Pode ser que abra novos horizontes, mas por enquanto estou bastante satisfeito com o que tenho!

Abr
Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus

"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Avatar do Utilizador
 
Mensagens: 5707
Registado: 20/11/2002 21:56
Localização: Porto

Re: Programação em R para Finanças

por Varendia » 15/2/2017 19:26

VirtuaGod Escreveu:Estuda PortfolioAnalytics para depois me explicares :mrgreen:


Comecei a ver, pareceu-me pacifico por isso nao resisti e fui por a funcionar.
So em libraries foram 10 min a descarregar e instalar coisas

Como comentario geral, a maior parte dos scripts que encontro em posts/blogs tem sempre gato, ou falta um passo, ou nao transformam os objectos para se conseguir por a funcionar, ou tem um erro no meio onde usam objectos para calcular coisas de forma errada. Os documentos do cran-r explicam as funcoes mas nao sao um script completo, por isso isto ja comeca a obrigar ver as coisas com olhos de ver e saber o que se quer calcular.

No meu excel fazia optimizacoes para portfolios ate 20 fundos e targets entre Sharpe, SD e return para determinadas alocacoes maxima e minima. Ja nao estava mal. Sem falar do actualizar dados, correr uma optimizacao tinha 3 fases ate chegar ao meu weights mix, intervalo de limite inferior e superior. eram umas horas boas.

Na rotina R de ontem a unica coisa que se controlava era a alocacao maxima por asset e basicamente os weights que tiramos sao as da EF. Ou seja se queria forcar outro tipo de criterios, tinha de ir alterar a funcao e fazer loops dentro de loops, ja vi como funciona, mas nao e muito pratico. Aqui esta o PortfolioAnalytics :twisted:

O PortfolioAnalytics e de tal forma poderoso que alem das varias hipoteses que ja da por defeito para criar constraints de base, como por exemplo se queres que cada asset tenha alocacao minima e/ou maxima, se fazes short ou nao, se queres por sectores, tipos de assets ... e muitas outras coisas que ja sao fora do campeonato que preciso, permite definir funcoes nossas que queiramos usar para constraints. Deste que as variavies existam, podemos criar uma formula e meter constraints.

Depois da para criar optimization objectives, da mesma forma que se atira para um constraint, aqui pode atirar-se para um target, por exemplo limitar o risk component de cada asset no portfolio, ou equilibrar o risk component no portfolio, ou uma determinada expected return, ou SD ou weight concentration. Mais uma vez, da para definir uma funcao nossa, por exemplo calcular o DD e usar como objectivo de optimizacao.

Isto vai-se fazendo e ao mesmo tempo da para mudar o objecto. Ou seja, podemos ter um portfolio inicial ao qual impomos determinadas constraints, copiando, podemos impor as mesmas constraints a N portfolios. Depois para cada um dos portfolios, podemos impor diferentes objectivos de optimizacao, e depois optimizar cada um dos portfolios como quantas constraints e objectivos que quisermos... basicamente, de um conjunto de assets, podes chegar a N portfolios diferentes que dao o mesmo de forma diferente... muito interessante.

Ou seja, quem corre varios portfolios de varios tipos, pode fazer tudo de uma vez. Cria a base e quando quer actualiza os dados, carrega em Ctrl-Alt-E, vai buscar uma cola e quando volta tem os graficos todos feitos.

Passando essa fase, segue-se para o portfolio.optimizer .. licao numero 1, nunca usar optimize_method = "random". primeiro o computador comeca a chorar, segundo e mesmo random.
Depois de estudar fui usar o optimize_method = "ROI".

Para fazer testes como faco no excel e super basico, fazer o optimizer para o max sharpe, ou SD minima ou retorno maximo com meia duzia de constraints sao 2 segundos.
Para bases de dados grandes, e muito interessante. Pode-se correr a base de dados completa, e dizer que queremos um portfolio de assets com determinados limites de relacoes, ou se a base de dados incluir caracteristicas (regiao), podemos dizer que queremos um de cada, ou nao mais de 2 de cada regiao, ou o que for.... correlacoes ate um certo valor.
The sky is the limit. e preciso estudar um pouco, mas mais de como a funcao le o ficheiro do que dificuldade em criar a constraint. Muito facil.

Nao so para tras mas para a frente. Com tempo, da para facilmente replicar dados passados, fazer crescer a base de dados ate 2030 a acreditar que acontecem uma serie de cenarios, e correr optimizacoes para cada um desses.... isto e um brinquedo que da para tudo, houvesse tempo.

Este portfolio optimizer para usar caso a caso e muito facil, em relacao ao EF faz-se um loop e ja esta a funcionar. Mas o portfolio optimizer tem imenso potencial, mais do que calcular a EF, para calcular porfolios a medida.

Como ainda nao fui ver como fazer graficos, mudei umas coisas no codigo e usei o mesmo.
Claramente isto tem de funcionar tudo por blocos, por isso vou ter de comecar a fazer uma base de dados dos nomes das variaveis que uso para cada coisa, assim evita-se andar sempre a mudar coisas no codigo e da para optimizar uma serie de coisas, em especial quando passar para os graficos, detalhes do backtest e etc...

Mas basicamente, a partir do momento em que tenho os dados, ter os portfolios que quiser optimizados como quiser e chegar ao EF sao ... 7 segundos. Se quiser mudar uma constraint, 2 segundos para escrever .. e mais 7 para ter tudo corrido outra vez.

Estou a usar 16 fundos, 7 anos de dados mensais. Acredito que carregando uma base pesada, ja tenho de ir olhar para a janela, mas mesmo assim ... :clap:

Abaixo a EF com o solveQP onde so conseguia dizer que nao queria nenhum fundo com mais de 15% no portfolio. Depois a EF com o mesmo criterio no Port.optimizr e depois outro em que obrigo a usar todos os fundos com um minimo de 2.5% e max de 15%.

Nos proximos tempos vou voltar aos dados, a optimizacao e pacifica, so vai depender do que se quer fazer, porque isto faz tudo facilmente.
Anexos
Port solveQP.png
Versao solveQP
Port solveQP.png (18.2 KiB) Visualizado 10492 vezes
Port Optimzr 0-15.png
Versao PortOptimzr com as mesmas condicoes 0% alocacao minima e 15% maxima
Port Optimzr 0-15.png (15.76 KiB) Visualizado 10492 vezes
Port Optimzr 2.5-15.png
Versao PortOptimzr com as mesmas condicoes 2.5% alocacao minima e 15% maxima
Port Optimzr 2.5-15.png (14.77 KiB) Visualizado 10492 vezes
"Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat." Sun Tzu
 
Mensagens: 215
Registado: 10/12/2012 12:12

AnteriorPróximo

Quem está ligado:
Utilizadores a ver este Fórum: Bing [Bot], Google [Bot], PXYC, Shimazaki_2 e 305 visitantes