
Excelente, Quico. Parabéns pelo trabalho e pela partilha 

Fórum dedicado à discussão sobre os Mercados Financeiros - Bolsas de Valores
http://teste.caldeiraodebolsa.jornaldenegocios.pt/
http://teste.caldeiraodebolsa.jornaldenegocios.pt/viewtopic.php?f=3&t=78816
Quico Escreveu:Caro Pickbull:
No segundo gráfico, os pontinhos azuis sinalizam a posição do stop. Por exemplo, esse topo de meados de Outubro não é stop, uma vez que nesse período a posição seria longa; somente aparecem as sucessivas posições de stops em função da posição assumida ser longa ou curta. Quando um stop é atingido, obviamente a posição inverte-se e o stop passa "para o outro lado do canal.
vset Escreveu:Viva Quico,
podes experimentar com barras de 3 dias, penso que o Red tinha simulado assim em vez de semanal+diário.
Abraço.
SpecialX Escreveu:Quico,
Já agora qual seria o ganho numa estratégia de buy and hold no dax para os mesmos 20 anos ?
Ab
if high>high[i] and low>=low[i] then
alto=high
elsif high<=high[i] and low<low[i] then
baixo=low
elsif high>=high[i] and low<=low[i] then
if high[i]>=alto[i] then
alto=high
elsif low[i]<=baixo[i] then
baixo=low
endif
endif
if high<high[i] and low>low[i] then
i=i[1]+1
else
i=1
endif
if alto=alto[i] then
barra=alto
barraalto=alto
elsif baixo=baixo[i] then
barra=baixo
barrabaixo=baixo
endif
if high>barra and barra=alto then
barra=high
barraalto=high
alto=high
elsif low<barra and barra=baixo then
barra=low
barrabaixo=low
baixo=low
endif
return barra,barraalto,barrabaixo
if high>high[i] and low>=low[i] then
alto=high
elsif high<=high[i] and low<low[i] then
baixo=low
elsif high>=high[i] and low<=low[i] then
if high[i]>=alto[i] then
alto=high
elsif low[i]<=baixo[i] then
baixo=low
endif
endif
if high<high[i] and low>low[i] then
i=i[1]+1
else
i=1
endif
if alto=alto[i] then
barra=alto
barraalto=alto
elsif baixo=baixo[i] then
barra=baixo
barrabaixo=baixo
endif
if high>barra and barra=alto then
barra=high
barraalto=high
alto=high
elsif low<barra and barra=baixo then
barra=low
barrabaixo=low
baixo=low
endif
if high>barraalto[1] then
lc=1
elsif low<barrabaixo[1] then
lc=-1
else
lc=lc[1]
endif
if lc=1 then
stopp=barrabaixo
else
stopp=barraalto
endif
return barra,barraalto,barrabaixo,stopp
vset Escreveu:Muito bem Quico.
E consegues testar isso no histórico do DAX?
Abraço.
Supermann Escreveu:Quico, podes elaborar mais o sistema?
Programaste o sistema para PRT ? e alteraste a representação gráfica é isso?
Cem Escreveu: (...)
Para traçar esta linha só temos de observar o movimento do máximo e mínimo da última barra e comparar com a anterior, mais simples que isto não podia ser!
Agora vamos ver com um pouco mais de cuidado quais as regras para saber como se vai marcando e actualizando as linhas de swing. Podemos ter 4 hipóteses possíveis de detecção:
A) Se o máximo for inferior e o mínimo for superior aos correspondentes máximo e mínimo da barra anterior, trata-se de uma barra ou sessão sem significado, é vulgarmente chamada uma barra interior ou “inside bar” e não tem interesse para este sistema de trading. Equivale ao efeito de uma perda de tempo, consolidação ou indecisão do mercado. No caso de suceder este cenário temos de ter em atenção que o comportamento da barra seguinte terá de ser comparado com a barra de referência inicial anterior e nunca com a “inside bar” que para o efeito deve ser sempre “ignorada”, como se não existisse.
B) Se o máximo e mínimo da barra actual forem superiores aos correspondentes da barra anterior, significa que nos encontramos num swing ascendente. Marcamos ou actualizamos a linha de swing de modo a que o seu novo ponto de chegada seja agora coincidente com o máximo da barra presente.
C) Se o máximo e mínimo da última barra forem inferiores aos correspondentes extremos da barra precedente, repito, desde que esta não se trate de uma barra interior, logo tratada como “inexistente”, estaremos num swing descendente. A linha de downswing passa a ter o seu terminal descendente a bater no mínimo da barra presente, “puxando-a” a partir da barra precedente que mantém o mesmo swing.
D) Finalmente, se o máximo for superior e o mínimo for inferior aos da barra anterior, teremos de considerar retroactivamente essa barra anterior como uma “inside bar” a posteriori e verificar para trás onde se encontra a 1ª barra que caia fora dos limites da barra presente. Após esta pesquisa actualizamos a linha de swing de acordo com os casos possíveis referidos em B ou C.
O que podemos então observar ou extrair do traçado da linha de swing? Fácil, uma linha quebrada que é interrompida nos chamados pontos de pivot dos swings, fazendo, nessas quebras de sentido, topos e baixas ( tops e bottoms).
Para verificar que posições devemos tomar basta comparar esses pontos de quebra, assumindo em princípio posições longas ou compradas se tivermos uma linha de swing ascendente superior ao topo anterior e adoptando posições curtas ou short se a linha de swing no sentido descendente ultrapassar a baixa do último swing de referência.
Na prática, para tomar posições, em princípio, comparamos os pontos pivots correspondentes, adoptando-se preços de stops que são colocados nos pontos limites dos topos ou baixas de referência anteriores à distância de pelo menos 1 tick para além do valor de quebra referenciado do ciclo do swing mais recente.
(...)