Outros sites Medialivre
Caldeirão da Bolsa

Sistema de trading "Tromba Rija"

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.

por TRSM » 13/4/2008 14:38

Tojo Escreveu:Já agora, acho curioso o sinal que o sistema dá para o dax no gráf semanal: Então quando quase todos os indicadores dão sinal de venda ou no minimo assumir posições neutras, o sistema tromba rija dá +2, ou seja reforçar longos!!! E esta???


Alguma coisa deve estar errado com o teu gráfico tojo, pq no meu semanal o Dax está vendido desde a semana de 7/3/2008
Penso que algumas diferenças que possam existir com os mesmos dados pode muito ter haver com "load options", mete o teu em 9999 e ve se os teus resultados se mantêm
Anexos
dax.png
dax.png (21.34 KiB) Visualizado 5645 vezes
 
Mensagens: 23939
Registado: 5/11/2002 11:30
Localização: 4

por Tojo » 13/4/2008 13:57

Já agora, no nikey tb existe uma indicação do sistema em que desde 2004, oscilou entre -1 e -2 mesmo com as cotações a subir. resultados para refletir
Anexos
n225.jpg
n225.jpg (243.78 KiB) Visualizado 5669 vezes
 
Mensagens: 676
Registado: 8/1/2004 13:14

por Tojo » 13/4/2008 13:32

Já agora, acho curioso o sinal que o sistema dá para o dax no gráf semanal: Então quando quase todos os indicadores dão sinal de venda ou no minimo assumir posições neutras, o sistema tromba rija dá +2, ou seja reforçar longos!!! E esta???
Anexos
dax.jpg
dax.jpg (253.17 KiB) Visualizado 5689 vezes
 
Mensagens: 676
Registado: 8/1/2004 13:14

por arnie » 13/4/2008 13:31

Olá Tojo,

Lembra-te que apenas poderás colocar isto no indicador, mais nada:
Código: Selecionar todos
trombarija:=If(FmlVar("LRS","SIGNALLRS") > 0 AND
FmlVar("PVTC","SIGNALPVTC") > 0 ,1 ,
If(FmlVar("LRS","SIGNALLRS") < 0 AND
FmlVar("PVTC","SIGNALPVTC") < 0 ,-1,0 )) ;

trombarija ;


Qualquer texto descritivo terá que estar dentro de brackets, por exemplo:

Código: Selecionar todos
{ Tromba Rija }


Deste modo o MS trata o texto acima como descritivo não levando-o em consideração na formula.

Tens a certeza que tens o indicador LRS e o PVTC a funcionar bem? Não te esqueças que o nome deles tem que ser apenas LRS e PVTC, nada mais.

um abraço,
arnie
Bons negocios,
arnie
 
Mensagens: 3094
Registado: 4/11/2002 23:09
Localização: Viras à esq, segues em frente, viras à dir, segues em frente e viras novamente à dir. CHEGASTE

por Tojo » 13/4/2008 12:55

Cem ao inserir esta formula, o sistema dá-me resposta que "this variable does not exist in the specified formula"


Componente "Tromba Rija":

trombarija:=
If(
FmlVar("LRS","SIGNALLRS") > 0
AND
FmlVar("PVTC","SIGNALPVTC") > 0 ,
1 ,
If(
FmlVar("LRS","SIGNALLRS") < 0
AND
FmlVar("PVTC","SIGNALPVTC") < 0 ,
-1,
0 )) ;

trombarija ;
 
Mensagens: 676
Registado: 8/1/2004 13:14

por arnie » 13/4/2008 11:52

olá Cem,

Obrigado po colocares os diversos anos do BCP pois deu claramente para perceber que existe diferenças nos sinais. A única coisa que pode provocar tal diferença é a base de dados em si.
Os meus dados do BCP são aqui do próprio caldeirão, fornecidos pelo LS.

Alterei a formula como os sinais são disparados e em vez de ignorar todos os sinais entre o 1º trade acima de 0 e o ultimo trade abaixo de 0, optei por incluir todos o que apesar de estarmos sujeitos a um maior gasto em termos de comissões pois iremos negociar TODOS os sinais, para meu espanto melhorou de forma significativa os resultados.

Ora no 1º gráfico temos primeiro, os sinais dado pelo indicador Tromba Rija, seguido dos sinais para posições longas e por ultimo os sinais para posições curtas.
Como podem observar, estamos assim a negociar TODOS os sinais dados pelo Tromba Rija, curtos e longos, havendo períodos não negociáveis.

No 2º gráfico temos a performance relativa à tomada de posições longas.
Podemos ver claramente uma performance positiva depois de 2003, com um ganho acumulado de 30%.
Agradecia que ignorassem o indicador do drawdown pois este está a calcular mal o mesmo.

Para facilitar no entanto o máximo de perda que este indicador nos deu, vamos olhar para o mínimo no 3º indicador no gráfico.
Podemos ver que em finais de 2003 este sistema esteve a perder mais de 16%.

Olhando agora para o 3º gráfico temos a performance das posições curtas.
De 2003 a meados de 2007 a performance foi claramente descendente, onde o sistema esteve a perder mais de 14%.
Neste momento mostra um ganho acumulado de 51%, tendo apanhado todo o “bear market” em que o BCP se situa desde meados de 2007.
Novamente, ignorem o indicador do drawdown.

Por ultimo, vamos olhar para o 4º gráfico, a GOOG.
Aqui podemos ver a performance do sistema tanto no lado longo como no lado curto.

Continuo a ver este sistema com drawdowns enormes. Naturalmente que a base de amostra é pequena mas em média, olhando para o BCP e GOOG podemos ver claramente que a perda máximo ronda os 16%.

Muito bom Cem.
Continua a dar-nos sistemas para testar pois estes exercícios são de extrema importância para a nossa educação :wink:
Anexos
BCP_signals.png
BCP_signals.png (11.63 KiB) Visualizado 5700 vezes
BCP_long-trades.png
BCP_long-trades.png (14.15 KiB) Visualizado 5707 vezes
BCP_short-trades.png
BCP_short-trades.png (13.33 KiB) Visualizado 5690 vezes
GOOG_long-and-short.png
GOOG_long-and-short.png (12.78 KiB) Visualizado 5716 vezes
Bons negocios,
arnie
 
Mensagens: 3094
Registado: 4/11/2002 23:09
Localização: Viras à esq, segues em frente, viras à dir, segues em frente e viras novamente à dir. CHEGASTE

Cont.

por Cem pt » 13/4/2008 0:42

Finalmente os gráficos do BCP de 2007 e 2008.
Cem
Anexos
BCP TR 2007.png
BCP 2007
BCP TR 2007.png (16.68 KiB) Visualizado 5752 vezes
BCP TR 2008.png
BCP 2008
BCP TR 2008.png (14.87 KiB) Visualizado 5756 vezes
 
Mensagens: 3126
Registado: 4/3/2008 17:21
Localização: 16

Re

por Cem pt » 13/4/2008 0:35

Amigo Arnie:
Deves ter aí algum bug que não te sei explicar no teste que fizeste ao BCP.
Se reparares o grande drawdown em posições longas verifica-se nos anos iniciais de 2002 e 2003. Não terás um número insuficiente de sessões para arrancar com os sinais desses anos? É que realmente não tenho aqui nenhum drawdown que se pareça com mqais de 60% no referido período...
À cautela fui buscar os sinais que me dá o BCP aqui no meu Metastock e assim poderás comparar com as posições longas e curtas do teu teste.
Abraço amigo e obrigado pelo teu interesse e paciência!
Cem

P.S:
Ao amigo ljbk, os meus agradecimentos pela explicação em "português" de vários dos passos do programa. Em relação ao número de períodos é muito natural que os valores utilizados sejam realmente optimizados e melhorados, só depende dos testes.
Abraço.
Anexos
BCP TR 2001.png
BCP 2001
BCP TR 2001.png (20.36 KiB) Visualizado 5778 vezes
BCP TR 2002.png
BCP 2002
BCP TR 2002.png (17.51 KiB) Visualizado 5776 vezes
BCP TR 2003.png
BCP 2003
BCP TR 2003.png (20.38 KiB) Visualizado 5769 vezes
BCP TR 2004.png
BCP 2004
BCP TR 2004.png (20.88 KiB) Visualizado 5773 vezes
BCP TR 2005.png
BCP 2005
BCP TR 2005.png (20.83 KiB) Visualizado 5787 vezes
BCP TR 2006.png
BCP 2006
BCP TR 2006.png (18.22 KiB) Visualizado 5766 vezes
 
Mensagens: 3126
Registado: 4/3/2008 17:21
Localização: 16

por ljbk » 12/4/2008 22:45

Boas !

Como não tenho o Metastock, lembrei-me de escrever aqui a versão do sistema em "português" para quem quiser entender.
Se houver algum erro, agradeço que o indiquem.

Componente LRS ou Componente de Tendencia:

trendslope:=
LinRegSlope(C,31)*4+LinRegSlope(C,42)*9;

// 4*(tendencia media do close dos ultimos 31 dias)
// + 9*(tendencia media do close dos ultimos 42 dias)


trendslopelt:=
LinRegSlope(C,155)*4+LinRegSlope(C,210)*9;

// 4*(tendencia media do close dos ultimos 155 dias)
// + 9*(tendencia media do close dos ultimos 210 dias)


signaltrenda:=
If(
trendslope>=0 ,
1 ,
-1 ) ;

signaltrendalt:=
If(
trendslopelt>=0 ,
1 ,
-1 ) ;

// Não necessita comentarios

signaltrendb:=
If(
trendslope > Ref(trendslope,-1)
AND
trendslope > 0 ,
1 ,
If(
trendslope < Ref(trendslope,-1)
AND
trendslope < 0 ,
-1 ,
0 )) ;

signaltrendblt:=
If(
trendslopelt > Ref(trendslopelt,-1) // compara com anterior
AND
trendslopelt > 0 ,
1 ,
If(
trendslopelt < Ref(trendslopelt,-1) // compara com anterior
AND
trendslopelt < 0 ,
-1 ,
0 )) ;

signaltrenddef:=
signaltrenda + signaltrendb +
signaltrendalt + signaltrendblt ;

signallrs:=
If(
signaltrenddef > 0 ,
1 ,
If(
signaltrenddef < 0 ,
-1 ,
PREV )) ; // Valor anterior é mantido por defeito

signaltrenddef ;



Componente "PVTC" ou dependente de medias moveis:
movcvol42:=
Mov(C,42,VOL) ; // Media Movel "Volume Adjusted" do Close de 42 dias

movcs42:=
Mov(C,42,S) ; // Media Movel Simples do Close de 42 dias

pvtc:=
(movcvol42 - movcs42) ; // Diferença de MMs

smoothpvtc:=
Mov(pvtc,21,W) ; // Media movel de 21 dias do tipo weighted (peso 1 para dia-20 até peso 21 para ultimo) do sinal anterior

signalvola:=
If(
pvtc >= 0 ,
1 ,
-1 ) ;

signalvolb:=
If(
pvtc > smoothpvtc
AND
pvtc > 0 ,
1 ,
If(
pvtc < smoothpvtc
AND
pvtc < 0 ,
-1 ,
0 )) ;

// Mesma historia com 210 dias e 105 dias em vez de 42 e 21

movcvol210:=
Mov(C,210,VOL) ;

movcs210:=
Mov(C,210,S) ;

pvtclt:=
(movcvol210 - movcs210) ;

smoothpvtclt:=
Mov(pvtclt,105,W) ;

signalvolalt:=
If(
pvtclt >= 0 ,
1 ,
-1 ) ;

signalvolblt:=
If(
pvtclt > smoothpvtclt
AND
pvtclt > 0 ,
1 ,
If(
pvtclt < smoothpvtclt
AND
pvtclt < 0 ,
-1 ,
0 )) ;

signalvoldef:=
signalvola + signalvolb +
signalvolalt + signalvolblt ;

signalpvtc:=
If(
signalvoldef > 0 ,
1 ,
If(
signalvoldef < 0 ,
-1 ,
PREV )) ; // Valor anterior é mantido por defeito


signalvoldef ;



Componente "Tromba Rija":

trombarija:=
If(
FmlVar("LRS","SIGNALLRS") > 0
AND
FmlVar("PVTC","SIGNALPVTC") > 0 ,
1 ,
If(
FmlVar("LRS","SIGNALLRS") < 0
AND
FmlVar("PVTC","SIGNALPVTC") < 0 ,
-1,
0 )) ;

trombarija ;


Já agora incluo umas perguntas.
Porquê os periodos de 31, 42, 155 e 210 dias ?
Sendo os valores acima relativamente grandes (31 dias = aprox. 1.5 meses e 42 dias = aprox. 2 meses), não terá este sistema tendencia a falhar no curto prazo em especial com a volatilidade a que se tem assistido por exemplo no S&P ?

Obrigado e BN,
ljbk.
 
Mensagens: 1000
Registado: 25/11/2005 11:15

update

por arnie » 12/4/2008 21:44

Olá Cem,

Depois de alterar o indicador como indicaste, a performance melhorou um pouco mas a coisa continua não muito católica :|

Depois de resolver o problema no sistema de shorts, deixo então aqui a nova leitura.

Como podemos ver no 1º gráfico, o sistema mantém uma posição curta desde o dia 22-11-2007. O ganho acumulado está nos 13% desde o 1º trade em 2003 mas como podemos ver, a actual posição curta, trouxe o BCP de uma performance negativa de -38% para os actuais 13%.

O máximo de drawdowm situa-se nos 39%, indicando claramente que estamos perante um sistema fortemente penalizador para o investidor.

No 2º gráfico temos as posições longas tomadas desde 2002 com um prejuízo acumulado de 3%. O máximo de drawdown situa-se nos 61%, mantendo a leitura anterior, também com posições longas este sistema se mostra arrasador para uma carteira.

Cem, a razão desta diferença de leituras só pode ser uma, os sinais de entrada e saida.

Há aqui qualquer coisa que me está a escapar.

Já agora deixo as formulas para o MS no que diz respeito ao sistema de posições curtas:



Código: Selecionar todos
{ Sistema Tromba Rija - Short trades
<-- http://caldeiraodebolsa.jornaldenegocios.pt/viewtopic.php?t=61792-->
2008 - Todos os direitos reservados.
Cem }

{ é necessário ter o indicador LRS e o indicador PVTC para que o Tromba Rija possa ser executado, caso contrario irá dar erro }

{Input User}
plot:=Input("[1]%Profit,[2]MaxDrawDown%,[3]Signals",1,3,1);
cost:=Input("Total Costs(Brokerage + Slippage)",0,100,.2)/200;

{ Entry and Exit Signals }
entry:=FmlVar("LRS","SIGNALTRENDDEF") < 0 AND
FmlVar("PVTC","SIGNALVOLDEF") < 0;
exit:=FmlVar("LRS","SIGNALTRENDDEF") > 0 AND
FmlVar("PVTC","SIGNALVOLDEF") > 0;

{*****}
{-<---------
Copyright © 2005-2007 Jose Silva.
The grant of this license is for personal use
only - no resale or repackaging allowed.
All code remains the property of Jose Silva
http://www.metastocktools.com
->---------}

{ Trade Binary & clean Entry/Exit signals }
init:=Cum(IsDefined(entry+exit))=1;
flag:=ValueWhen(1,entry-exit<>0 OR init,entry);
entry:=flag*(Alert(flag=0,2)
OR entry*Cum(entry)=1);
exit:=(flag=0)*(Alert(flag,2)
OR exit*Cum(exit)=1);
signals:=entry-exit;

{ Profit Short % curve }
EntryVal:=ValueWhen(1,entry,C*(1-cost));
Profit:=EntryVal/C*(1+cost)-1;
ProfitPer:=(flag*Profit+Cum(exit*Profit))*100;

{ Normalized Profit Long max % drawdown }
PrNorm:=If(C*(1-cost)<EntryVal,Profit,
1-EntryVal/C*(1-cost));
PrNorm:=(flag*prnorm+Cum(exit*Prnorm))*100;
MaxDD:=Highest(Max(Highest(PrNorm),0)-PrNorm);

{*****}

{ Plot in own window }
If(plot=1,profitper,If(plot=2,maxdd,signals))


e já agora, também para as posições longas:

Código: Selecionar todos
{ Sistema Tromba Rija - Long trades
<-- http://caldeiraodebolsa.jornaldenegocios.pt/viewtopic.php?t=61792-->
2008 - Todos os direitos reservados.
Cem }

{ é necessário ter o indicador LRS e o indicador PVTC para que o Tromba Rija possa ser executado, caso contrario irá dar erro }

{Input User}
plot:=Input("[1]%Profit,[2]MaxDrawDown%,[3]Signals",1,3,1);
cost:=Input("Total Costs(Brokerage + Slippage)",0,100,.2)/200;

{ Entry and Exit Signals }
entry:=FmlVar("LRS","SIGNALTRENDDEF") > 0 AND
FmlVar("PVTC","SIGNALVOLDEF") > 0;
exit:=FmlVar("LRS","SIGNALTRENDDEF") < 0 AND
FmlVar("PVTC","SIGNALVOLDEF") < 0;

{*****}
{-<---------
Copyright © 2005-2007 Jose Silva.
The grant of this license is for personal use
only - no resale or repackaging allowed.
All code remains the property of Jose Silva
http://www.metastocktools.com
->---------}

{ Trade Binary & clean Entry/Exit signals }
init:=Cum(IsDefined(entry+exit))=1;
flag:=ValueWhen(1,entry-exit<>0 OR init,entry);
entry:=flag*(Alert(flag=0,2)
OR entry*Cum(entry)=1);
exit:=(flag=0)*(Alert(flag,2)
OR exit*Cum(exit)=1);
signals:=entry-exit;

{ Profit Short % curve }
EntryVal:=ValueWhen(1,entry,C*(1+cost));
Profit:=C*(1-cost)/EntryVal-1;
ProfitPer:=(flag*Profit+Cum(exit*Profit))*100;

{ Normalized Profit Long max % drawdown }
PrNorm:=If(C*(1-cost)<EntryVal,Profit,
1-EntryVal/C*(1-cost));
PrNorm:=(flag*PrNorm+Cum(exit*PrNorm))*100;
MaxDD:=Highest(Max(Highest(PrNorm),0)-PrNorm);

{*****}

{ Plot in own window }
If(plot=1,profitper,If(plot=2,maxdd,signals))



Um abraço,
arnie
Anexos
TR_bcp_short-trade02.png
TR_bcp_short-trade02.png (12.09 KiB) Visualizado 5048 vezes
TR_bcp_long-trade02.png
TR_bcp_long-trade02.png (14.61 KiB) Visualizado 5045 vezes
Bons negocios,
arnie
 
Mensagens: 3094
Registado: 4/11/2002 23:09
Localização: Viras à esq, segues em frente, viras à dir, segues em frente e viras novamente à dir. CHEGASTE

Re

por Cem pt » 12/4/2008 21:28

oi, amigo Tojo, prazer em rever-te por aqui!
Sim, de facto estas novas versões das componentes são um pouco diferentes.
Abraço.
Cem
 
Mensagens: 3126
Registado: 4/3/2008 17:21
Localização: 16

por Tojo » 12/4/2008 20:49

Grande Cem, antes de mais obrigado pela partilha e disponibilidade. Já agora, estas componentes de cima são diferentes de outras que já tinha apresentado aqui à dias?
 
Mensagens: 676
Registado: 8/1/2004 13:14

Re

por Cem pt » 12/4/2008 18:32

Ok, amigo TRSM, thanks pela confirmação.
Entretanto parbéns pelo FCP, mas nada se compara à vitória da minha Briosa sobre o SLB, a sua maior derrota em casa desde sempre em diferença de golos sofridos, aquilo vale mais que um título!
Abraço,
Cem
 
Mensagens: 3126
Registado: 4/3/2008 17:21
Localização: 16

Cont.

por Cem pt » 12/4/2008 18:27

Entretanto e no sentido de facilitar os testes, vou aqui deixar ficar uma outra versão do sistema detrading em que apenas existem sinais finais de +1 (comprado ou longo), 0 (neutro) e -1 (vendido ou curto).
Aqui ficam as correcções paracada um dos indicadores componentes do sistema:

Componente "LRS":

trendslope:=
LinRegSlope(C,31)*4+LinRegSlope(C,42)*9;

trendslopelt:=
LinRegSlope(C,155)*4+LinRegSlope(C,210)*9;

signaltrenda:=
If(
trendslope>=0 ,
1 ,
-1 ) ;

signaltrendalt:=
If(
trendslopelt>=0 ,
1 ,
-1 ) ;

signaltrendb:=
If(
trendslope > Ref(trendslope,-1)
AND
trendslope > 0 ,
1 ,
If(
trendslope < Ref(trendslope,-1)
AND
trendslope < 0 ,
-1 ,
0 )) ;

signaltrendblt:=
If(
trendslopelt > Ref(trendslopelt,-1)
AND
trendslopelt > 0 ,
1 ,
If(
trendslopelt < Ref(trendslopelt,-1)
AND
trendslopelt < 0 ,
-1 ,
0 )) ;

signaltrenddef:=
signaltrenda + signaltrendb +
signaltrendalt + signaltrendblt ;

signallrs:=
If(
signaltrenddef > 0 ,
1 ,
If(
signaltrenddef < 0 ,
-1 ,
PREV )) ;

signaltrenddef ;




Componente "PVTC":
movcvol42:=
Mov(C,42,VOL) ;

movcs42:=
Mov(C,42,S) ;

pvtc:=
(movcvol42 - movcs42) ;

smoothpvtc:=
Mov(pvtc,21,W) ;

signalvola:=
If(
pvtc >= 0 ,
1 ,
-1 ) ;

signalvolb:=
If(
pvtc > smoothpvtc
AND
pvtc > 0 ,
1 ,
If(
pvtc < smoothpvtc
AND
pvtc < 0 ,
-1 ,
0 )) ;

movcvol210:=
Mov(C,210,VOL) ;

movcs210:=
Mov(C,210,S) ;

pvtclt:=
(movcvol210 - movcs210) ;

smoothpvtclt:=
Mov(pvtclt,105,W) ;

signalvolalt:=
If(
pvtclt >= 0 ,
1 ,
-1 ) ;

signalvolblt:=
If(
pvtclt > smoothpvtclt
AND
pvtclt > 0 ,
1 ,
If(
pvtclt < smoothpvtclt
AND
pvtclt < 0 ,
-1 ,
0 )) ;

signalvoldef:=
signalvola + signalvolb +
signalvolalt + signalvolblt ;

signalpvtc:=
If(
signalvoldef > 0 ,
1 ,
If(
signalvoldef < 0 ,
-1 ,
PREV )) ;

signalvoldef ;




Componente "Tromba Rija":

trombarija:=
If(
FmlVar("LRS","SIGNALLRS") > 0
AND
FmlVar("PVTC","SIGNALPVTC") > 0 ,
1 ,
If(
FmlVar("LRS","SIGNALLRS") < 0
AND
FmlVar("PVTC","SIGNALPVTC") < 0 ,
-1,
0 )) ;

trombarija ;






E pronto, desta forma fica mais fácil testar o sistema.
Deixo um pequeno exemplo de uma acção americana utilizando este sistema: a Google.
Boa sorte e boas trades.
Cem
Anexos
Google TR 20080411.png
Google : Sinais do Sistema de Trading "Tromba Rija"
Google TR 20080411.png (17.09 KiB) Visualizado 5133 vezes
Editado pela última vez por Cem pt em 12/4/2008 18:39, num total de 1 vez.
 
Mensagens: 3126
Registado: 4/3/2008 17:21
Localização: 16

Re: Re

por TRSM » 12/4/2008 18:25

Cem pt Escreveu:Pessoal:
A todos os que se têm interessado pelos testes ao sistema de trading que aqui deixei, ficam mais uma vez os meus agradecimentos.
No caso particular do Arnie, que deixou ficar uma rotina de linguagem de testes que até eu fiquei de boca aberta (uau!), queria só acrescentar que deve haver aí um pequeno bug pelo meio uma vez que o BCP está vendido neste sistema de trading desde Agosto de 2007 (ver meu gráfico na página 1 da thread) e no caso do gráfico deixado pelo Arnie o BCP encontra-se comprado desde finais de 2007.

Entretanto e sem deixar que isto atrapalhe os testes já efectuados, creio que encontrei um pequeno bug na linguagem de programação da componente "Preço Volume", numa das relações de longo prazo, na comparação com uma das médias smooth respectivas.
O facto do amigo LTCM ter referido que a componente PVTC estaria a piorar os resultados do sistema de trading no indicador global, talvez (digo talvez porque não testei, mas fica a sugestão) por causa dessa média de longo prazo.
Assim, sugiro que no lugar do indicador "PVTC" insiram os seguintes comandos alternativos:


movcvol42:=
Mov(C,42,VOL) ;

movcs42:=
Mov(C,42,S) ;

pvtc:=
(movcvol42 - movcs42) ;

smoothpvtc:=
Mov(pvtc,21,W) ;

signalvola:=
If(
pvtc >= 0 ,
1 ,
-1 ) ;

signalvolb:=
If(
pvtc > smoothpvtc
AND
pvtc > 0 ,
1 ,
If(
pvtc < smoothpvtc
AND
pvtc < 0 ,
-1 ,
0 )) ;

movcvol210:=
Mov(C,210,VOL) ;

movcs210:=
Mov(C,210,S) ;

pvtclt:=
(movcvol210 - movcs210) ;

smoothpvtclt:=
Mov(pvtclt,105,W) ;

signalvolalt:=
If(
pvtclt >= 0 ,
1 ,
-1 ) ;

signalvolblt:=
If(
pvtclt > smoothpvtclt
AND
pvtclt > 0 ,
1 ,
If(
pvtclt < smoothpvtclt
AND
pvtclt < 0 ,
-1 ,
0 )) ;

signalvoldef:=
signalvola + signalvolb +
signalvolalt + signalvolblt ;

signalvoldef ;



E pronto, não custa nada experimentar se esta pequena diferença pode alterar alguma coisa.

Abraços amigos e mais uma vez os meus agradecimentos a todos os que participaram neste debate de tentativa de melhoria do sistema e a todos os demais.
Cem


Olá Mestre, foi um prazer rever-te

Aproveito para te informar que o BCP está vendido desde 22/11/2007 pelo trombarija e no dia 31/3/2008 manda reforçar curtos, isto na primeira formula que disponibilizaste

abração

abraço e mais uma vez :wink:
 
Mensagens: 23939
Registado: 5/11/2002 11:30
Localização: 4

Re

por Cem pt » 12/4/2008 17:43

Pessoal:
A todos os que se têm interessado pelos testes ao sistema de trading que aqui deixei, ficam mais uma vez os meus agradecimentos.
No caso particular do Arnie, que deixou ficar uma rotina de linguagem de testes que até eu fiquei de boca aberta (uau!), queria só acrescentar que deve haver aí um pequeno bug pelo meio uma vez que o BCP está vendido neste sistema de trading desde Agosto de 2007 (ver meu gráfico na página 1 da thread) e no caso do gráfico deixado pelo Arnie o BCP encontra-se comprado desde finais de 2007.

Entretanto e sem deixar que isto atrapalhe os testes já efectuados, creio que encontrei um pequeno bug na linguagem de programação da componente "Preço Volume", numa das relações de longo prazo, na comparação com uma das médias smooth respectivas.
O facto do amigo LTCM ter referido que a componente PVTC estaria a piorar os resultados do sistema de trading no indicador global, talvez (digo talvez porque não testei, mas fica a sugestão) por causa dessa média de longo prazo.
Assim, sugiro que no lugar do indicador "PVTC" insiram os seguintes comandos alternativos:


movcvol42:=
Mov(C,42,VOL) ;

movcs42:=
Mov(C,42,S) ;

pvtc:=
(movcvol42 - movcs42) ;

smoothpvtc:=
Mov(pvtc,21,W) ;

signalvola:=
If(
pvtc >= 0 ,
1 ,
-1 ) ;

signalvolb:=
If(
pvtc > smoothpvtc
AND
pvtc > 0 ,
1 ,
If(
pvtc < smoothpvtc
AND
pvtc < 0 ,
-1 ,
0 )) ;

movcvol210:=
Mov(C,210,VOL) ;

movcs210:=
Mov(C,210,S) ;

pvtclt:=
(movcvol210 - movcs210) ;

smoothpvtclt:=
Mov(pvtclt,105,W) ;

signalvolalt:=
If(
pvtclt >= 0 ,
1 ,
-1 ) ;

signalvolblt:=
If(
pvtclt > smoothpvtclt
AND
pvtclt > 0 ,
1 ,
If(
pvtclt < smoothpvtclt
AND
pvtclt < 0 ,
-1 ,
0 )) ;

signalvoldef:=
signalvola + signalvolb +
signalvolalt + signalvolblt ;

signalvoldef ;



E pronto, não custa nada experimentar se esta pequena diferença pode alterar alguma coisa.

Abraços amigos e mais uma vez os meus agradecimentos a todos os que participaram neste debate de tentativa de melhoria do sistema e a todos os demais.
Cem
 
Mensagens: 3126
Registado: 4/3/2008 17:21
Localização: 16

3 sistemas

por LTCM » 12/4/2008 15:35

Tem de haver aqui marosca, o CEM está a brincar com a malta :twisted:

Ou isso ou erro meu (costuma acontecer) :roll:

Fica a imagem. :shock:
Anexos
CEM's.png
CEM's.png (9.39 KiB) Visualizado 5170 vezes
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."
Avatar do Utilizador
 
Mensagens: 3030
Registado: 28/2/2007 14:18

por LTCM » 12/4/2008 15:06

Com as mesmas condições e testando só a componente LRS, os resultados melhoram de forma significativa.
Pelo menos no PSI20. :?
Anexos
Cem LRS teste.png
Cem LRS teste.png (24.29 KiB) Visualizado 5178 vezes
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."
Avatar do Utilizador
 
Mensagens: 3030
Registado: 28/2/2007 14:18

por arnie » 12/4/2008 14:41

:oops: :oops: :oops:

Odeio quando isto acontece.

Descobri aqui um piqueno erro nos dados que certamente intervem de forma significativa nos resultados.

Mais tarde voltarei com uma melhor leitura da situação.

Por enquanto, ignorem os resultados do post acima

:|
Bons negocios,
arnie
 
Mensagens: 3094
Registado: 4/11/2002 23:09
Localização: Viras à esq, segues em frente, viras à dir, segues em frente e viras novamente à dir. CHEGASTE

por arnie » 12/4/2008 14:23

testei o sistema no BCP limitando os sinais, não reforçando assim as posições já abertas

como podem ver na formula que deixei, limitei os sinais a:

Código: Selecionar todos
entry:=FmlVar("LRS","SIGNALTRENDDEF") < 0 AND
FmlVar("PVTC","SIGNALVOLDEF") < 0;
exit:=FmlVar("LRS","SIGNALTRENDDEF") > 0 AND
FmlVar("PVTC","SIGNALVOLDEF") > 0;


o resultado é no mínimo decepcionante :( :-k

no 1º gráfico temos o Tromba Rija vendendo curto o BCP com um ganho acumulado desde o 1º trade de 11.4% mas com um drawdown máximo também ele acumulado de 50.3%. Algo totalmente impensável.

no 2º gráfico temos o Tromba Rija comprando o BCP com uma perda acumulada de 11.3% e um drawdown máximo, também acumulado de 66%. Novamente, intolerável tal drawdown.

Ora pelo que pude perceber, o CEM dá um sinal positivo a este sistema o que me leva a pensar que existe discrepâncias nos sinais usados para a abertura de posições.

um abraço,
arnie
Anexos
TR_bcp_short-trade.png
TR_bcp_short-trade.png (13.08 KiB) Visualizado 5213 vezes
TR_bcp_long-trade.png
TR_bcp_long-trade.png (15.89 KiB) Visualizado 5212 vezes
Bons negocios,
arnie
 
Mensagens: 3094
Registado: 4/11/2002 23:09
Localização: Viras à esq, segues em frente, viras à dir, segues em frente e viras novamente à dir. CHEGASTE

por rsacramento » 12/4/2008 13:08

já agora uma dúvida:
deve limitar-se o nº de trades simultâneas? porquê?
se não, os resultados alteram-se significativamente)
Avatar do Utilizador
 
Mensagens: 10503
Registado: 29/11/2007 12:50

por rsacramento » 12/4/2008 13:03

LTCM: obrigado

num primeiro e apressado teste, desde meados de 2002, os resultados ultrapassam o B%H (por vezes no dobro), excepto para:
brisa
cimpor
mota
pt
scosta
jmt
com a sonae sgps praticamente empata

procurei reproduzir o esquema do LTCM
Anexos
sistema.GIF
sistema.GIF (15.07 KiB) Visualizado 5229 vezes
resumo.GIF
resumo.GIF (36 KiB) Visualizado 5238 vezes
Avatar do Utilizador
 
Mensagens: 10503
Registado: 29/11/2007 12:50

por LTCM » 12/4/2008 12:21

rsacramento Escreveu:para usar o system editor podes dizer-me o que usaste em buy e sell order?
usaste mais alguma coisa de especial?


Usei a função TR (Tromba Rija) que é o conjunto dos dois indicadores que o CEM aqui deixou.

O teste é feito:
Sem comissões;
Compra no fecho;
Long Only.
Anexos
Cem TR teste.png
Cem TR teste.png (23.81 KiB) Visualizado 5277 vezes
Cem TR Sistema.png
Cem TR Sistema.png (16.18 KiB) Visualizado 5274 vezes
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."
Avatar do Utilizador
 
Mensagens: 3030
Registado: 28/2/2007 14:18

por rsacramento » 11/4/2008 19:40

LTCM Escreveu:Testei de acordo com as regras, ou fiz alguma asneira (muito provável) ou os resultados surgem muito abaixo de uma estratégia de Buy & Hold.

Se mais algum colega do forum testou, gostava de saber os resultados.

para usar o system editor podes dizer-me o que usaste em buy e sell order?
usaste mais alguma coisa de especial?
Avatar do Utilizador
 
Mensagens: 10503
Registado: 29/11/2007 12:50

por rsacramento » 11/4/2008 19:04

Crómio Escreveu:Grande Cem,

Venho aqui exprimir o meu agradecimento pela tua enorme Generosidade e Altruismo.

Estas são para mim as grandes mais valias deste abençoado fórum, do qual podemos nutrir o nosso conhecimento de intervenções deste género que são a mais pura das essências do espírito do Caldeirão:

Generosidade,
Altruismo.

Claro que não são só as tuas intervenções que fazem o Caldeirão, temos aqui alguns dos melhores a participar e a contribuir, começando nos administradores que nos presenteiam regularmente com artigos de uma qualidade fora de série assim como outros que valiosos comentários e análises nos dão e por fim os cromos como eu que tentam partilhar o que vão descobrindo.

Mas existe uma diferença... é o valor da informação partilhada.

Uma coisa é partilhar um breakout, outra coisa é partilhar uma análise ou opinião que demorou anos de estudo, meditação e árduo trabalho a ser produzida.

O que acho de especial nas tuas intervenções é a especificidade do tema que além de ser coisa de rara abordagem, normalmente quem evolui dentro da cena guarda a sete chaves o conhecimento, "O Meu Santo Gral".

Claro que o "Teu Santo Gral", não o dás a ninguém (seria idiota), mas partilhas o teu conhecimento de forma a que cada um encontre o seu.
E isso é lindo.

Depois é chato e trabalhoso dar as explicações e responder às dúvidas... e tu não te recusas.

Estás neste momento a dar a mão a quem precisava de uma mão, temos hoje no Caldeirão mais gente a utilizar e estudar Sistemas que tínhamos a semana passada, temos pessoal que nunca tinha pensado nisso pois era muito complicado, misterioso quase oculto mas tu deste a mão.

Em suma quero agradecer-te a ti sem me esquecer dos "outros" que sabem bem quem são, pois estaria a ser injusto não os referir e talvez mais injusto se os referisse nominalmente.

No fim até deveria ter aberto um tópico para poder abraçar todos neste agradecimento, mas foste tu que despoletaste este agradecimento.

Bem hajam,
Um sentido Abraço.

subscrevo totalmente
obrigado, cem
já agora, uma nota mínima: se acrescentares em cada um dos indicadores, no fim:
0
escusa-se de introduzir uma linha horizontal a zeros
Anexos
cimpor.jpg
cimpor.jpg (216.81 KiB) Visualizado 5373 vezes
Avatar do Utilizador
 
Mensagens: 10503
Registado: 29/11/2007 12:50

AnteriorPróximo

Quem está ligado:
Utilizadores a ver este Fórum: azulcordomar, Bing [Bot], CORTIÇA, hugob0ss, PAULOJOAO, rtinto e 183 visitantes