Trend following: discussão de sistemas de trading
Pickbull Escreveu:É a chamada engenharia financeira em que os portugueses são realmente do melhor que há.
Tenho um amigo em Berkeley a tirar isso... nada de gozar tá


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
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
- Mensagens: 358
- Registado: 23/12/2011 1:41
Quico Escreveu:(Já agora: andam a fazer teses de mestrado em Engenharia sobre ferramentas de AT aplicada a mercados financeiros?! Tá bonito!)
É a chamada engenharia financeira em que os portugueses são realmente do melhor que há.

Mais vale perder um lucro do que ganhar um prejuízo.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
O conceito de derivada, pelo menos da forma como costuma ser considerado na matemática e na física, traduz-se na taxa de variação instantânea de uma função (no Wikipédia a coisa está bem explicadinha). Ou seja, diz respeito à variação de uma função quando a variação da variável (delta x) tende para zero (dx).
Daí que quando falas em derivadas aplicadas a séries de números discretos (como é o caso de uma média móvel - o facto de nos gráficos unirem os pontos não a torna numa função contínua) aquilo que me parece mais correcto assumir como derivada será a variação para o salto mais pequeno entre valores. Se estás a analisar uma gráfico diário, será a variação de um dia para o outro aquilo que mais se aproxima de uma variação instantânea.
Posto isto, não me parece bem que naquela tese se apresente como "derivada" a variação resultante da comparação entre o valor de um dia com o valor de há 25 dias atrás.
Percebo porque o fazem: a ideia será limpar o ruído que surgiria na "derivada" se a coisa fosse feita como disse atrás. Mas então que lhe chamem outra coisa (variação da MM em 25 dias, ou outra coisa igualmente explícita). Esta é a minha modesta opinião.
(Já agora: andam a fazer teses de mestrado em Engenharia sobre ferramentas de AT aplicada a mercados financeiros?! Tá bonito!
)
Daí que quando falas em derivadas aplicadas a séries de números discretos (como é o caso de uma média móvel - o facto de nos gráficos unirem os pontos não a torna numa função contínua) aquilo que me parece mais correcto assumir como derivada será a variação para o salto mais pequeno entre valores. Se estás a analisar uma gráfico diário, será a variação de um dia para o outro aquilo que mais se aproxima de uma variação instantânea.
Posto isto, não me parece bem que naquela tese se apresente como "derivada" a variação resultante da comparação entre o valor de um dia com o valor de há 25 dias atrás.
Percebo porque o fazem: a ideia será limpar o ruído que surgiria na "derivada" se a coisa fosse feita como disse atrás. Mas então que lhe chamem outra coisa (variação da MM em 25 dias, ou outra coisa igualmente explícita). Esta é a minha modesta opinião.
(Já agora: andam a fazer teses de mestrado em Engenharia sobre ferramentas de AT aplicada a mercados financeiros?! Tá bonito!

"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Re: Alguém me pode dar uma ajuda
Quico Escreveu:MPC_finance Escreveu:Tenho vindo a constatar que os intervenientes deste Tópico, têm especial interesse em sistemas mecânicos de trading. Por isso peço ajuda, alguém que me acenda uma candeia.
Como é que eu calculo,(prorealtime), por exemplo a derivada de uma média móvel? por exemplo, a derivada da MA20.
O que no fundo pretendo é eliminar o "ruído" de um sistema simples baseado na MA200, ou seja mesmo que a cotação passe em baixa a MA200 a ordem de venda não é executada enquanto a derivada da MA20 não seja negativa.
Obrigado e cumps
Qualquer variável dessas são séries; não funções contínuas. Daí que nunca possas falar em "derivadas" com o mesmo sentido de quando falas de uma função contínua(p. ex.: f(x)=x^2 => df(x)/dx=2*x+Const.).
Sendo a Média móvel de 20 dias, a coisa mais parecida - aliás penso que será a única possibilidade - será, na linguagem ProRealTime:
MA20 = Average[20](close)
A sua derivada será dada pela diferença entre o valor do dia em causa e o dia anterior (a dividir por 1 dia; ou seja 1, o que vai dar ao mesmo). Na linguagem ProRealTime:
DerivMA20 = MA20 - MA[1]
Tão simples como isto.![]()
Abraço.
Muito Obrigado Quico
Dá uma vista de olhos na tese de mestrado seguinte
vê na página 19 da tese ou 34 do PDF
https://dspace.ist.utl.pt/bitstream/229 ... 20v2.3.pdf
- Mensagens: 358
- Registado: 23/12/2011 1:41
MPC, a não ser que não tenha percebido a tua pergunta, a derivada duma MM altera-se todos os dias. Tu provavelmente o que queres é uma simples diferença entre a MM de hoje e de ontem para saber se esta está a descer ou a subir, certo ?
EDIT: Bolas, o Quico já tinha respondido e com uma resposta completissima !
EDIT: Bolas, o Quico já tinha respondido e com uma resposta completissima !

No man is rich enough to buy back his past - Oscar Wilde
Re: Alguém me pode dar uma ajuda
MPC_finance Escreveu:Tenho vindo a constatar que os intervenientes deste Tópico, têm especial interesse em sistemas mecânicos de trading. Por isso peço ajuda, alguém que me acenda uma candeia.
Como é que eu calculo,(prorealtime), por exemplo a derivada de uma média móvel? por exemplo, a derivada da MA20.
O que no fundo pretendo é eliminar o "ruído" de um sistema simples baseado na MA200, ou seja mesmo que a cotação passe em baixa a MA200 a ordem de venda não é executada enquanto a derivada da MA20 não seja negativa.
Obrigado e cumps
Qualquer variável dessas são séries; não funções contínuas. Daí que nunca possas falar em "derivadas" com o mesmo sentido de quando falas de uma função contínua(p. ex.: f(x)=x^2 => df(x)/dx=2*x+Const.).
Sendo a Média móvel de 20 dias, a coisa mais parecida - aliás penso que será a única possibilidade - será, na linguagem ProRealTime:
MA20 = Average[20](close)
A sua derivada será dada pela diferença entre o valor do dia em causa e o dia anterior (a dividir por 1 dia; ou seja 1, o que vai dar ao mesmo). Na linguagem ProRealTime:
DerivMA20 = MA20 - MA[1]
Tão simples como isto.

Abraço.
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Alguém me pode dar uma ajuda
Tenho vindo a constatar que os intervenientes deste Tópico, têm especial interesse em sistemas mecânicos de trading. Por isso peço ajuda, alguém que me acenda uma candeia
.
Como é que eu calculo,(prorealtime), por exemplo a derivada de uma média móvel? por exemplo, a derivada da MA20.
O que no fundo pretendo é eliminar o "ruído" de um sistema simples baseado na MA200, ou seja mesmo que a cotação passe em baixa a MA200 a ordem de venda não é executada enquanto a derivada da MA20 não seja negativa.
Obrigado e cumps

Como é que eu calculo,(prorealtime), por exemplo a derivada de uma média móvel? por exemplo, a derivada da MA20.
O que no fundo pretendo é eliminar o "ruído" de um sistema simples baseado na MA200, ou seja mesmo que a cotação passe em baixa a MA200 a ordem de venda não é executada enquanto a derivada da MA20 não seja negativa.
Obrigado e cumps
- Mensagens: 358
- Registado: 23/12/2011 1:41
Gostei muito dos valores no EUR/USD. Dá quase 10% ao ano e a equity curve é bonita 

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
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
(Continuação... No primeiro post não "cabiam" mais.)
- Anexos
-
- SLV.png (42.45 KiB) Visualizado 7864 vezes
-
- TOM2.png (40.42 KiB) Visualizado 7861 vezes
-
- USO.png (42.44 KiB) Visualizado 7856 vezes
-
- WMT.png (42.46 KiB) Visualizado 7866 vezes
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Não foi preciso a patroa deixar. Se não tivesse havido alguma má vontade da tua parte, já terias visto que o Pickbull tinha tratado disso (mesmo com as ressalvas que fiz).
Quanto aos 21% anuais, não vejo o que têm assim de tão desprezível. Relembro que cada posição aberta só "arrisca" 2% do capital - não "mete a carne toda no assador". Isto também porque estou a supor que o restante capital (10.000€) estaria a ser usado como margem para abrir outras posições noutros activos - coisa que (como já referi) o ProRealTime não faz. Só trata um de cada vez.
Quanto às restantes questões, "faça o favor de se servir"!
Abraço.
Quanto aos 21% anuais, não vejo o que têm assim de tão desprezível. Relembro que cada posição aberta só "arrisca" 2% do capital - não "mete a carne toda no assador". Isto também porque estou a supor que o restante capital (10.000€) estaria a ser usado como margem para abrir outras posições noutros activos - coisa que (como já referi) o ProRealTime não faz. Só trata um de cada vez.
Quanto às restantes questões, "faça o favor de se servir"!

Abraço.
- Anexos
-
- aapl.png (43.52 KiB) Visualizado 7875 vezes
-
- ALU.png (46.15 KiB) Visualizado 7869 vezes
-
- DAX.png (42.12 KiB) Visualizado 7872 vezes
-
- EURUSD.png (41.25 KiB) Visualizado 7873 vezes
-
- NVDA.png (41.38 KiB) Visualizado 7870 vezes
-
- PSI20.png (41.42 KiB) Visualizado 7882 vezes
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Quico Escreveu:LTCM Escreveu: «buying 89-day breakout for entries and selling 13-day breakdown for exit. … a 10-year in-sample test for 15 markets shows a 21% compounded return before commissions and slippage».
P.S. um sistema TF, que suponho seja de longo prazo, que falha 16 entradas no mesmo activo não é um sistema. É uma piada.
Ora bem! Como sabem, adoro uma boa piada.
Daí que, tendo a noite livre, resolvi tirar meia horita para testar o divertido sistema do Covel no ProRealTime; o tal do breakout de máximos/mínimos de 89 dias, com stop nos mínimos/máximos de 13 dias. Vai ser só rir!
Não me lembro bem dos detalhes, mas resolvi acrescentar um stop inicial 2 x ATR de 20 sessões abaixo/acima da entrada, arriscando apenas 2% do capital inicial (10000$ ou €). Nada de muito sofisticado; não considerei sequer piramidagens nem sei se o sistema o previa - penso que não.
Ora então vamos lá! Estão prontos para rir?!
Eu estava mesmo disposto a rir, nunca digo não à possibilidade de dar umas boas gargalhadas.

Mas de acordo com as citações que fizeste, para a pândega ser ainda maior, devias ter providenciado algumas informações:
Qual a rentabilidade anualizada, por certo terá sido algo próximo dos 21% anuais, em cada um dos activos testados?
Qual o máximo consecutivo de entradas falhadas em cada activo? Tem de rondar os 16 (esse é um dos principais critérios para ter piada).
E já agora, e não fosse pedir muito, qual o MDD em cada um dos testes.
Quico Escreveu:Pickbull Escreveu:Gasta lá mais 10 minutos do teu tempo para comparar com uma estratégia buy and hold.
Vocês julgam que eu tenho a vossa vida?! Tou a trabalhar!(Mais logo... e se a patroa deixar!)
Hummm...parece que a patroa não deixou.

Vá lá faz lá um esforço sem os dados que solicito, perante os testes, só dá para sorrir.

Abraço e BN
Remember the Golden Rule: Those who have the gold make the rules.
***
"A soberania e o respeito de Portugal impõem que neste lugar se erga um Forte, e isso é obra e serviço dos homens de El-Rei nosso senhor e, como tal, por mais duro, por mais difícil e por mais trabalhoso que isso dê, (...) é serviço de Portugal. E tem que se cumprir."
***
"A soberania e o respeito de Portugal impõem que neste lugar se erga um Forte, e isso é obra e serviço dos homens de El-Rei nosso senhor e, como tal, por mais duro, por mais difícil e por mais trabalhoso que isso dê, (...) é serviço de Portugal. E tem que se cumprir."
Quico Escreveu:Pickbull Escreveu:Quico Escreveu:Os mais extensos iniciam a 2 de Janeiro de 2002. Mas nem todos os activos têm dados até tão cedo.
Mas vê lá o que comparas... if you know what I mean!
Investindo numa perspectiva de buy&hold com início a 2/1/2002 e fim a 29/3/2012 com investimento de 10000$ (ou €) teríamos hoje o seguinte:
AAPL: 523.485$ => Lucro de 513.485$
ALU: 1328€ => Prejuízo de 8672€
WMT: 10.477$ => Lucro de 477§
A AAPL é sem dúvida um "mau" exemplo para qualquer sistema.
Pois! Não te esqueças que quando disse para não comparar coisas incomparáveis, referia-me a isso. Até que ponto é justo comparar buy-and-hold com uma estratégia que não mete o dinheiro todo no activo; dimensiona cada posição de forma a só ter uma perda* por trade de 2%?
Também é certo que este dimensionamento pode implicar alavancagem, mas mesmo assim...
* - Claro que falo de perda "esperada". Às vezes apanha-se uns gaps que lixam tudo.
Obviamente não é correcto.
Só daria para comparar se os teus valores tb aplicassem todo o capital cada vez que entrasse.
Mais vale perder um lucro do que ganhar um prejuízo.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
Stefano Escreveu:Quico Escreveu:resolvi acrescentar um stop inicial 2 x ATR de 20 sessões abaixo/acima da entrada, arriscando apenas 2% do capital inicial (10000$ ou €). Nada de muito sofisticado;
Quico. Não querendo abusar da tua boa vontade, mas já abusando... Ando a tentar testar uns sistemas que tenho desenvolvido no Prorealtime e queria introduzir uma coisa desse género, ou seja, um stop inicial abaixo ou acima da entrada relacionado com um múltiplo do ATR mas ainda não descobri como dizer ao gajo (prorealtime): depois da posição aberta não pode descer mais do que isto tás a ver??. Se poderes explicar em linguagem Prorealtime agradecia-te imenso.
Se calhar é melhor pôr aqui todo o código do teste. Ele está um bocado esquisito porque resulta da adaptação do "Triple Don" que apresentei aqui, neste tópico, há uns tempos (a variável minnn e minnnl são a mesma, tal como maxxx e maxxxl - dizem respeito aos canais Donchian mais lentos):
- Código: Selecionar todos
ni=89
minnn=lowest[ni](Low)
maxxx=highest[ni](high)
REM ############################################
m=89
minnnl=lowest[m](Low)
maxxxl=highest[m](high)
REM ############################################
k=13
minnnlk=lowest[k](Low)
maxxxlk=highest[k](high)
f=2 //número de ATR's de distância do stop
risco=0.02
REM ##############################################
IF LONGONMARKET THEN
posl=1.0
endif
IF SHORTONMARKET THEN
posl=-1.0
endif
IF posl=1.0 THEN
porcentobuy=100*risco*maxxx/f/AverageTrueRange[20](close)
porcentosell=100*risco*minnnl/f/AverageTrueRange[20](close)
elsIF posl=-1.0 THEN
porcentobuy=100*risco*maxxxl/f/AverageTrueRange[20](close)
porcentosell=100*risco*minnn/f/AverageTrueRange[20](close)
else
porcentobuy=100*risco*maxxxl/f/AverageTrueRange[20](close)
porcentosell=100*risco*minnnl/f/AverageTrueRange[20](close)
endif
if (LONGONMARKET>LONGONMARKET[1] and posl=posl[1]) then
stopi=maxxx[1]-f*AverageTrueRange[20](close)
elsif (LONGONMARKET>LONGONMARKET[1] and posl>posl[1]) then
stopi=maxxxl[1]-f*AverageTrueRange[20](close)
elsif (SHORTONMARKET>SHORTONMARKET[1] and posl=posl[1]) then
stopi=minnn[1]+f*AverageTrueRange[20](close)
elsif (SHORTONMARKET>SHORTONMARKET[1] and posl<posl[1]) then
stopi=minnnl[1]+f*AverageTrueRange[20](close)
ENDIF
IF (posl<>1.0 and posl<>-1.0) THEN
BUY porcentobuy %capital AT max(high,maxxxl) STOP
SELLSHORT porcentosell %capital AT min(low,minnnl) STOP
endif
IF (posl=1.0 and NOT LONGONMARKET) THEN
BUY porcentobuy %capital AT max(high,maxxx) STOP
SELLSHORT porcentosell %capital AT min(low,minnnl) STOP
endif
IF LONGONMARKET THEN
sell at max(stopi,min(low,minnnlk)) STOP
SELLSHORT porcentosell %capital AT min(low,minnnl) STOP
ENDIF
IF (posl=-1.0 and NOT SHORTONMARKET) THEN
SELLSHORT porcentosell %capital AT min(low,minnn) STOP
BUY porcentobuy %capital AT max(high,maxxxl) STOP
endif
IF SHORTONMARKET THEN
posl=-1
exitshort at min(stopi,max(high,maxxxlk)) STOP
BUY porcentobuy %capital AT max(high,maxxxl) STOP
ENDIF
O cálculo do tamanho das posições é feito com base na % do capital (são as variáveis porcentobuy e porcentosell). O Stop inicial é a variável stopi.
Vê se dá para perceber. Se não der pergunta.
Abraço.
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Pickbull Escreveu:Quico Escreveu:Os mais extensos iniciam a 2 de Janeiro de 2002. Mas nem todos os activos têm dados até tão cedo.
Mas vê lá o que comparas... if you know what I mean!
Investindo numa perspectiva de buy&hold com início a 2/1/2002 e fim a 29/3/2012 com investimento de 10000$ (ou €) teríamos hoje o seguinte:
AAPL: 523.485$ => Lucro de 513.485$
ALU: 1328€ => Prejuízo de 8672€
WMT: 10.477$ => Lucro de 477§
A AAPL é sem dúvida um "mau" exemplo para qualquer sistema.
Pois! Não te esqueças que quando disse para não comparar coisas incomparáveis, referia-me a isso. Até que ponto é justo comparar buy-and-hold com uma estratégia que não mete o dinheiro todo no activo; dimensiona cada posição de forma a só ter uma perda* por trade de 2%?
Também é certo que este dimensionamento pode implicar alavancagem, mas mesmo assim...
* - Claro que falo de perda "esperada". Às vezes apanha-se uns gaps que lixam tudo.
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Quico Escreveu:Os mais extensos iniciam a 2 de Janeiro de 2002. Mas nem todos os activos têm dados até tão cedo.
Mas vê lá o que comparas... if you know what I mean!
Investindo numa perspectiva de buy&hold com início a 2/1/2002 e fim a 29/3/2012 com investimento de 10000$ (ou €) teríamos hoje o seguinte:
AAPL: 523.485$ => Lucro de 513.485$

ALU: 1328€ => Prejuízo de 8672€
WMT: 10.477$ => Lucro de 477§
A AAPL é sem dúvida um "mau" exemplo para qualquer sistema.

Mais vale perder um lucro do que ganhar um prejuízo.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
Quico Escreveu:resolvi acrescentar um stop inicial 2 x ATR de 20 sessões abaixo/acima da entrada, arriscando apenas 2% do capital inicial (10000$ ou €). Nada de muito sofisticado;
Quico. Não querendo abusar da tua boa vontade, mas já abusando... Ando a tentar testar uns sistemas que tenho desenvolvido no Prorealtime e queria introduzir uma coisa desse género, ou seja, um stop inicial abaixo ou acima da entrada relacionado com um múltiplo do ATR mas ainda não descobri como dizer ao gajo (prorealtime): depois da posição aberta não pode descer mais do que isto tás a ver??. Se poderes explicar em linguagem Prorealtime agradecia-te imenso.
- Mensagens: 18
- Registado: 21/9/2008 15:29
- Localização: 16
Quico Escreveu:traderdoespaco Escreveu:e que ferramenta usas para carteiras?
Não uso nada!![]()
Tenho ideia que o Metastock dá para esse serviço... (:wink:)
Ou se quiseres, - e esse é mesmo específico para testar sistemas - podes descarregar o trial do TradingBlox. Funciona uns 10 dias após a instalação.
(Já me lembrei de programar umas coisas mais à minha maneira em fortran, mas é daqueles projectos de longo prazo que se mantêm sempre no tinteiro.)
tenho aqui uma versao antiga do tradingblox mas nunca usei...
deixa la o teu emprego pa, isto e' mais importante











Quico Escreveu:Pickbull Escreveu:Gasta lá mais 10 minutos do teu tempo para comparar com uma estratégia buy and hold.
Vocês julgam que eu tenho a vossa vida?! Tou a trabalhar!
(Mais logo... e se a patroa deixar!)
Se quiseres dá-me as datas do início e fim que eu vou procurar os valores.
Mais vale perder um lucro do que ganhar um prejuízo.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
É melhor um burro vivo do que um cavalo morto.
Mais vale uma alegria na vida do que um tostão no bolso.
trillion Escreveu:Boa tarde,
Quico, como são programados essas estratégias? Do mesmo modo q os EA's para MT4?!
Obrigado
O ProRealTime tem uma linguagem específica para programar (não o C++ do Metatrader); é uma espécie de basic, mas tem alguns bugs.
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
traderdoespaco Escreveu:e que ferramenta usas para carteiras?
Não uso nada!

Tenho ideia que o Metastock dá para esse serviço... (:wink:)
Ou se quiseres, - e esse é mesmo específico para testar sistemas - podes descarregar o trial do TradingBlox. Funciona uns 10 dias após a instalação.
(Já me lembrei de programar umas coisas mais à minha maneira em fortran, mas é daqueles projectos de longo prazo que se mantêm sempre no tinteiro.)
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men