Bulli Castelo - Aulas Swing Trading System

47
Swing Trading System Como montar um sistema Expert Advisor No Metastock BY Bulli [email protected]

Transcript of Bulli Castelo - Aulas Swing Trading System

Page 1: Bulli Castelo - Aulas Swing Trading System

Swing Trading System

Como montar um sistema Expert Advisor No

Metastock

BY

Bulli

[email protected]

Page 2: Bulli Castelo - Aulas Swing Trading System

2

Aula 1 Swing Trading System

Como montar um Expert Advisor no Metastock

Precisamos definir as regaras de compra e venda:

Comprar: Cross((Mov((RSI(12)-LLV(RSI(12),12)) / (HHV(RSI(12),12)- (LLV(RSI(12),12))),3,E)*100),8)

Vender: Cross(20,(Mov((RSI(14) -LLV(RSI(14),14)) / (HHV(RSI(14),14) - (LLV(RSI(14),14))),3,E)*100))

Onde vai essas fórm ulas?

Passo 1:

Criar um novo Expert Advisor com um click no ícone no foto.

Passo 2:

Usar um nome para o Expert Advisor, usa o nome que você quer: aqui nos chamamos ele "New Bulli Swing Aulas"

Page 3: Bulli Castelo - Aulas Swing Trading System

3

Passo 3:

Acrescentar um symbol para indicar compras: Buy

colocar a fórmula

Cross((Mov((RSI(12)-LLV(RSI(12),12)) / (HHV(RSI(12),12)- (LLV(RSI(12),12))),3,E)*100),8)

em Condition depois mudar o Grafic como no foto.

Page 4: Bulli Castelo - Aulas Swing Trading System

4

Passo 4:

Acrescentar um symbol para indicar vendas: Sell

colocar a fórmula

Cross(20,(Mov((RSI(14) -LLV(RSI(14),14)) / (HHV(RSI(14),14) - (LLV(RSI(14),14))),3,E)*100))

em Condition depois mudar o Grafic como no foto.

Page 5: Bulli Castelo - Aulas Swing Trading System

5

Passo 5:

Abrir um gráfico e “Attach” o novo Expert Advisor!

Agora aqui está o resultado final!

Page 6: Bulli Castelo - Aulas Swing Trading System

6

Aula 2 Swing Trading System

Vamos dar uma olhada no gráfico PETR4:

Compras seguidas sem vendas! Vendas sem compras! Como podemos resolver isso? Nos vamos usar uma função chamada Latch. Pode ser encontrada no External DLL, foi desenvolvido no fórum do Equis. O arquivo é livremente distribuído. (grátis)

(se precisar uma cópia manda um e-mail para [email protected] ou contato no fórum no final do arquivo)

O arquivo Forumdll.dll deve ser colocado no seguinte folder:

C:\Program Files\Equis\MetaStock\External Function DLLs (For Windows in English) Ou C:\Arquivos de Programas\Equis\MetaStock\External Function DLLs (Para Windows em Português) tem que fazer isso com Metastock fechado, se não, apenas vai tem que re-iniciar Metastock.

Page 7: Bulli Castelo - Aulas Swing Trading System

7

As novas fórmulas de compra e venda agora ficam assim: Comprar: ----------------8<----------------------- LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B>0 AND Ref(B,-1)<=0 ----------------8<----------------------- Vender: ----------------8<----------------------- LE:= Cros s((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B=0 AND Ref(B,-1)>0 ----------------8<-----------------------

Page 8: Bulli Castelo - Aulas Swing Trading System

8

Mas onde vai essas fórmulas? Passo 1: Click no ícone no foto para abrir Expert Advisor.

Passo 2: Selecionar "New Bulli Swing Aulas" Clicar no "Edit"

Passo 3:

Selecionar "Buy" depois clicar "Edit" Colocar a nova fórmula: ----------------8<-----------------------

LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B>0 AND Ref(B,-1)<=0

----------------8<-----------------------

em Condition!

Page 9: Bulli Castelo - Aulas Swing Trading System

9

Page 10: Bulli Castelo - Aulas Swing Trading System

10

Passo 4:

Selecionar "Sell" depois clicar "Edit"

Colocar a nova fórmula:

----------------8<-----------------------

LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B=0 AND Ref(B,-1)>0

----------------8<-----------------------

em Condition!

Page 11: Bulli Castelo - Aulas Swing Trading System

11

Agora aqui está o resultado final!

Uma venda para cada compra! Apenas uma compra até o papel seja vendido!

Page 12: Bulli Castelo - Aulas Swing Trading System

12

Aula 3 Swing Trading System

Vamos acrescentar alguns indicadores simples que vão servir como filtros para o chart do Swing:

MA 4 9(Azul) MA 9 (Vermelho) MA 25 shifted 5 (Verde)

Acrescentar o Moving Average to a chart (Três vezes)

Page 13: Bulli Castelo - Aulas Swing Trading System

13

Acrescentar Moving Average MA 4 9(Azul)

Page 14: Bulli Castelo - Aulas Swing Trading System

14

Acrescentar o Moving Average MA 9 (Vermelho)

Page 15: Bulli Castelo - Aulas Swing Trading System

15

Acrescentar Moving Average MA 25 shifted 5 (Verde)

Para que serve um filtro como isso? Para não entramos no Swing contra a tendência evitando Wipsaws, ou Wiplashes.

Um filtro assim sempre funciona? Não, como qualquer sistema, não existe 100%, por causa disso temos STOPS, money management, filtro do filtro, etc.

Page 16: Bulli Castelo - Aulas Swing Trading System

16

Agora o gráfico tem que ficar assim:

Vejam no gráfico como o sistema está perdendo quando a tendência está de baixa! (entre março e maio)!

Para isso serve o filtro, na próxima aula mostramos como evitar isso!

Page 17: Bulli Castelo - Aulas Swing Trading System

17

Aula 4 Swing Trading System

O Uso de Filtro: Como evitar que o sistema perde quando a tendência está de baixa?

Reparam que quase todas as sinais de compra abaixo da linha verde (pode também ser chamada de linha de tendência automática) acabou em prejuízo! Então porque a gente não usa essa linha como filtro? Vamos acrescentar o filtro dentro das formulas de compra e venda.

Comprar era assim :

----------------8<-----------------------

LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B>0 AND Ref(B,-1)<=0

----------------8<-----------------------

Page 18: Bulli Castelo - Aulas Swing Trading System

18

Agora vai ser assim: Comprar:

----------------8<-----------------------

LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25) And C>(ref(mov(C,25,S), -5)); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B>0 AND Ref(B,-1)<=0

----------------8<-----------------------

Vender era assim:

----------------8<-----------------------

LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B=0 AND Ref(B,-1)>0

----------------8<-----------------------

Agora vai ser assim: Vender:

----------------8<-----------------------

LE:= Cross((Mov((RSI(12)-LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25)

And C>(ref(mov(C,25,S), -5)); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B=0 AND Ref(B,-1)>0

----------------8<-----------------------

Mas onde vai essas fórmulas? Siga os mesmos passos na Aula 2

Page 19: Bulli Castelo - Aulas Swing Trading System

19

Agora como fica o gráfico:

Então com o uso de filtros podemos melhorar e muito o resultado final de qualquer sistema. Sempre tem que usar esse filtro? Não, o que estamos mostrando aqui apenas um exemplo do que um filtro pode fazer. Os filtros podem variar de uma simples linha de tendência até fórmulas muito complexas, mas o uso é igual. o objetivo é igual!

Page 20: Bulli Castelo - Aulas Swing Trading System

20

Aula 5 Swing Trading System

Hoje nós vamos acrescentar "Trend detector" no nosso sistema: (Precisamos de "Metastock PowerPivot Plug-in" instalado com Metastock)

Onde posso achar o PowerPivots? Vai para o site www.ask.com" procurar por "PowerPivots Plugin" Todos os links que voce precisa vai aparecer

As fórmulas de "Trend detector" são:

Bullish ExtFml("PowerPivots.TrendDirection",1,1)=1

Bearish ExtFml("PowerPivots.TrendDirection",1,1)=-1

Mas onde vai essas fórmulas?

Passo 1:

Clica no ícone no foto para abrir Expert Advisor.

Passo 2:

Selecionar "New Bulli Swing Aulas" Clicar no "Edit" Clicar no "Trends" Copiar as fórmulas acima e colocar no Bullish e Bearish como está no foto!

Page 21: Bulli Castelo - Aulas Swing Trading System

21

Agora como fica o gráfico:

Page 22: Bulli Castelo - Aulas Swing Trading System

22

Para visualizar melhor os Trends vamos mudar o "Ribbon"!

Passo 1:

Clica no ícone no foto para abrir Expert Advisor.

Passo 2:

Selecionar "New Bulli Swing Aulas" Clicar no "Edit" Clicar no "Ribbon" Mudar os parâmetros como n o foto!

Page 23: Bulli Castelo - Aulas Swing Trading System

23

Agora como fica o gráfico:

Podemos ver que visualizar a mudança de tendência ficou bem melhor!

Não esquecem que Trading é uma combinação de ciência e arte!

Page 24: Bulli Castelo - Aulas Swing Trading System

24

Aula 6 Swing Trading System

Precisamos acrescentar o seguinte indicador: "pp+ :: Nth Pivot Price"

Precisamos acrescentar ele duas vezes para o gráfico: Veja no foto os Settings das duas vezes. Para Pivot de Baixa

Page 25: Bulli Castelo - Aulas Swing Trading System

25

A segunda vez:

Para o Pivot de Alta

Page 26: Bulli Castelo - Aulas Swing Trading System

26

Agora vejam como fica o gráfico final até agora.

Para que serve esse indicador? Para identificar o Pivot de alta e de baixa no curto prazo. Experimente outros settings para saber os outros tipos de Pivots!

Page 27: Bulli Castelo - Aulas Swing Trading System

27

Aula 7 Swing Trading System

Precisamos acrescentar o seguinte indicador: "pp+:: Fibonacci Ladder"

Veja no foto os Settings:

Page 28: Bulli Castelo - Aulas Swing Trading System

28

Como fica o gráfico até agora:

Agora Double Click na linha numero 7 do Ladder e mudar o cor como no foto:

Page 29: Bulli Castelo - Aulas Swing Trading System

29

Como fica o gráfico final até agora:

A linha vermelha representa o ponto de equilibro entre os comprados e vendidos!

O preço atual é alto ou baixo para o Swing? Usando o Fibonacci Ladder podemos saber isso.

Mas para que mais serve? Três coisas: 1- Pontos de suporte e resistência automáticos 2- Para escolha entre duas ações ou mais, para saber qual o melhor candidato para nós entramos nele. 3- Responder: qual é o maior espaço; para subir ou para cair, ao mesmo tempo qual é o ponto de equilibro entre os comprados e vendidos. Espero que foi claro.

Page 30: Bulli Castelo - Aulas Swing Trading System

30

Aula 8 Swing Trading System

Agora vamos acrescentar "Highlights" para nosso sistema:

Passo 1:

Clica no ícone no foto para abrir Expert Advisor.

Passo 2:

Selecionar "New Bulli Swing Aulas" Clicar no "Edit" Clicar no "Highlights" Clicar no "New"

Mudar os settings como no foto, depois colocar a formula seguinte no "Condition" também como no foto:

Bullish

----------------8<-----------------------

TSC:=(If(C>=Ref(C,-11),1,-1)+ If(C>=Ref(C,-12),1,-1)+ If(C>=Ref(C,-13),1,-1)+ If(C>=Ref(C,-14),1,-1)+ If(C>=Ref(C,-15),1,-1)+ If(C>=Ref(C,-16),1,-1)+ If(C>=Ref(C,-17),1,-1)+ If(C>=Ref(C,-18),1,-1)+ If(C>=Ref(C,-19),1,-1)+ If(C>=Ref(C,-20),1,-1)+10)/20; TSP:=(If(P>=Ref(P,-11),1,-1)+ If(P>=Ref(P,-12),1,-1)+ If(P>=Ref(P,-13),1,-1)+ If(P>=Ref(P,-14),1,-1)+ If(P>=Ref(P,-15),1,-1)+ If(P>=Ref(P,-16),1,-1)+ If(P>=Ref(P,-17),1,-1)+ If(P>=Ref(P,-18),1,-1)+ If(P>=Ref(P,-19),1,-1)+ If(P>=Ref(P,-20),1,-1)+10)/20; TSCP:=(If(C/P >=Ref(C/P,-11),1,-1)+ If(C/P >=Ref(C/P,-12),1,-1)+ If(C/P >=Ref(C/P,-13),1,-1)+ If(C/P >=Ref(C/P,-14),1,-1)+ If(C/P >=Ref(C/P,-15),1,-1)+ If(C/P >=Ref(C/P,-16),1,-1)+ If(C/P >=Ref(C/P,-17),1,-1)+ If(C/P >=Ref(C/P,-18),1,-1)+ If(C/P >=Ref(C/P,-19),1,-1)+ If(C/P >=Ref(C/P,-20),1,-1)+ If(ROC(C/P,5,%)>ROC(Ref(C/P,-5),5,%),1,-1)+ If(V>3*Mov(V,21,S) AND C>Ref(C,-1),1,0)+ If(V>3*Mov(V,21,S) AND C<Ref(C,-1),-1,0)+12)/24;

Page 31: Bulli Castelo - Aulas Swing Trading System

31

TSSystemx:=Round(100*((0.9 - TSP/2)* TSC+ (0.1+ TSP/2)* TSCP)); TSSystems:=If(TSSystemx>=0 AND TSSystemx <=100,TSSystemx,If(TSSystemx >100,100,0)); Buy:=Cross(TSSystems,50); Sell:=Cross(50,TSSystems); D:=If(BarsSince(Buy)<BarsSince(Sell),-1, If(BarsSince(Buy)>BarsSince(Sell),1,0)); D=-1

----------------8<-----------------------

Page 32: Bulli Castelo - Aulas Swing Trading System

32

Passo 3:

Clicar no "New"

Mudar os settings como no foto, depois colocar a formula seguinte no "Condition" também como no foto:

Bearish:

----------------8<-----------------------

TSC:=(If(C>=Ref(C,-11),1,-1)+ If(C>=Ref(C,-12),1,-1)+ If(C>=Ref(C,-13),1,-1)+ If(C>=Ref(C,-14),1,-1)+ If(C>=Ref(C,-15),1,-1)+ If(C>=Ref(C,-16),1,-1)+ If(C>=Ref(C,-17),1,-1)+ If(C>=Ref(C,-18),1,-1)+ If(C>=Ref(C,-19),1,-1)+ If(C>=Ref(C,-20),1,-1)+10)/20 ; TSP:=(If(P>=Ref(P,-11),1,-1)+ If(P>=Ref(P,-12),1,-1)+ If(P>=Ref(P,-13),1,-1)+ If(P>=Ref(P,-14),1,-1)+ If(P>=Ref(P,-15),1,-1)+ If(P>=Ref(P,-16),1,-1)+ If(P>=Ref(P,-17),1,-1)+ If(P>=Ref(P,-18),1,-1)+ If(P>=Ref(P,-19),1,-1)+ If(P>=Ref(P,-20),1,-1)+10)/20; TSCP:=(If(C/P >=Ref(C/P,-11),1,-1)+ If(C/P >=Ref(C/P,-12),1,-1)+ If(C/P >=Ref(C/P,-13),1,-1)+ If(C/P >=Ref(C/P,-14),1,-1)+ If(C/P >=Ref(C/P,-15),1,-1)+ If(C/P >=Ref(C/P,-16),1,-1)+ If(C/P >=Ref(C/P,-17),1,-1)+ If(C/P >=Ref(C/P,-18),1,-1)+ If(C/P >=Ref(C/P,-19),1,-1)+ If(C/P >=Ref(C/P,-20),1,-1)+ If(ROC(C/P,5,%)>ROC(Ref(C/P,-5),5,%),1,-1)+ If(V>3*Mov(V,21,S) AND C>Ref(C,-1),1,0)+ If(V>3*Mov(V,21,S) AND C<Ref(C,-1),-1,0)+12)/24; TSSystemx:=Round(100*((0.9 - TSP/2)* TSC+ (0.1+ TSP/2)* TSCP)); TSSystems:=If(TSSystemx>=0 AND TSSystemx <=100,TSSystemx,If(TSSystemx >100,100,0)); Buy:=Cross(TSSystems,50); Sell:=Cross(50,TSSystems); D:=If(BarsSince(Buy)<BarsSince(Sell),-1, If(BarsSince(Buy)>BarsSince(Sell),1,0)); D=1

----------------8<-----------------------

Page 33: Bulli Castelo - Aulas Swing Trading System

33

Vejam como isso pode ajudar em saber a tendência e ao mesmo tempo pode servir como pontos de compra e venda!

Page 34: Bulli Castelo - Aulas Swing Trading System

34

Agora assim fica o gráfico final até agora:

Page 35: Bulli Castelo - Aulas Swing Trading System

35

Aula 9 Swing Trading System

Vamos agora acrescentar um indicador para o sistema: Para criar um novo indicador precisamos fazer o seguinte:

Passo 1:

* Clicar no ícone como no foto. * Clicar no "New". * Colocar o nome para o indicador * Colocar o seguinte fórmula no Formula como no foto:

----------------8<-----------------------

(Mov((Mov(C-O,5,E)),26,E)/Mov((Mov(H-L,5,E)),26,E))*100

----------------8<-----------------------

Acrescentar o novo indicador para o gráfico.

Page 36: Bulli Castelo - Aulas Swing Trading System

36

O gráfico deve ficar assim:

Agora "double click" no novo indicador e mudar os "settings" como no foto:

Page 37: Bulli Castelo - Aulas Swing Trading System

37

Agora o resultado final fica assim:

Mas para que serve "Ergodic Candlestick Oscillator"?

Serve como outro tipo de filtro pode ser usado para confirmação de pontos de entrada ou saída. por exemplo, veja no gráfico de PETR4 os pontos de venda e compra marcados podem ser ignorados pois o indicador não cruzou a linha de ZERO. assim podemos ficar mais tempo com o trade aumentado nosso lucro mas com risco maior claro pois o indicador pode cair mais!

Page 38: Bulli Castelo - Aulas Swing Trading System

38

Tem que usar ele sempre ? Não, ele é apenas um exemplo de outro tipo de filtro que pode ser usado para melhora o sistema ainda mais, você pode usar qualquer filtro desde que ele apresenta melhoria no resultado obtido! O poder de análise técnica não é o uso individual de um indicador, mas a combinação de um conjunto eles que completa um a outro! Como podemos ver que os indicadores diferentes podem trabalhar juntos para dar resultados melhores!

Page 39: Bulli Castelo - Aulas Swing Trading System

39

Aula 10 Swing Trading System

Vamos acrescentar comentário no Expert Advisor:

----------------8<-----------------------

<Expert> <date>

<name> , <symbol>

Resistence 2: writeval(((Typical()-((2*typical())+H -L))*-1),0.2) Resistence 1: writeval(((2*typical())-L),0.2) Pivot Point: writeval(Typical(),0.2) Support 1: writeval(((2*typical())-H),0.2) Support 2: writeval(((Typical()-((2*typical())-H+L))*-1),0.2) {Relative Strength Index (RSI)} WriteIf(RSI(14) > 70, "RSI This is where it usually tops.")WriteIf(RSI(14) < 30, "RSI This is where it usually bottoms.")\ WriteIf(cross(70,RSI(14)), "RSI just crossed below 70 from a topping formation. This is a Bearish sign.")WriteIf(cross(RSI(14),30), "RSI just crossed above 30 from a bottoming formation. This is a Bullish sign.")\ WriteIf( RSI(14) >= hhv(RSI(14),14),"The RSI has just reached its highest value in the last 14 period(s). This is Bullish.")\ WriteIf( RSI(14) <= llv(RSI(14),14),"The RSI has just reached its lowest value in the last 14 period(s). This is Bearish.")WriteIf( RSI(14) < hhv(RSI(14),14) AND RSI(14) > llv(RSI(14),14), "")\ WriteIf(close >= hhv(close,14) and RSI(14) < hhv(RSI(14),14), "The security price has set a new 14-period high while the RSI has not. This is a Bearish divergence.")WriteIf(RSI(14) >= hhv(RSI(14),14) and close < hhv(close,14), "The RSI has set a new 14-period high while the security price has not. This is a Bullish divergence.")WriteIf(close <= llv(close,14) and RSI(14) > llv(RSI(14),14), "The security price has set a new 14-period low while the RSI has not. This is a bullish divergence.")WriteIf(RSI(14) <= llv(RSI(14),14) and close > llv(close,14), "The RSI has set a new 14-period low while the security price has not. This is a Bearish divergence.")WriteIf(RSI(14) < hhv(RSI(14),14) and close < hhv(close,14) and RSI(14) > llv(RSI(14),14) and close > llv(close,14),"")

Trendline Analysis (shorter) writeif( lastvalue(fml("trndline up (shorter term) <auto>")>0) and lastvalue(fml("trndline dn (shorter term) <auto>")>0) and lastvalue(c>=fml("trndline up (shorter term) <auto>")) and lastvalue(c<=fml("trndline dn (shorter term) <auto>")) ,"<Name> appears to be locked in a triangle formation bounded by a down trendline and an up trendline. ")\ \ writeif(lastvalue(fml("trndline dn (shorter term) <auto>")>0) and lastvalue(c>fml("trndline dn (shorter term) <auto>")) ,"writeif(lastvalue(barssince(cross(c,fml("trndline dn (shorter term) <auto>")))>0),"<Name> broke above the down trendline at writeval(lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),c)),0.2), writeval(lastvalue(barssince(cross(c,fml("trndline dn (shorter term) <auto>")))),0.0) <periodicity:s>(s) ago","<Name> broke above the down trendline at writeval(lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),c)),0.2) today"). This is a bullish sign. This down trendline, currently with an ending point at writeval(fml("trndline dn (shorter term) <auto>"),0.2), may now provide downside support. ")\ \

Page 40: Bulli Castelo - Aulas Swing Trading System

40

writeif(lastvalue(fml("trndline dn (shorter term) <auto>")>0) and lastvalue(c>fml("trndline dn (shorter term) <auto>")) and lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),volume))>=1.33*lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term ) <auto>")) ,mov(v,90,s))),"Volume on the <periodicity:s> of the breakout was quite heavy--writeval(((lastvalue((valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),volume)))-lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),mov(v,90,s))))/lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")) ,mov(v,90,s))))*100,0.0)% above average. This makes the breakout even more significant. If you decide to trade <name>, you may want to place a stop loss just below the down trendline, in case the breakout is premature.")\ \ writeif(lastvalue(fml("trndline dn (shorter term) <auto>")>0) and lastvalue(c>fml("trndline dn (shorter term) <auto>")) and lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),volume))<=0.66*lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),mov(v,90,s))),"Volume on the <periodicity:s> of the breakout was quite light--writeval(((lastvalue((valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),volume)))-lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),mov(v,90,s))))/lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),mov(v,90,s))))*100,0.0)% below average. The most reliable breakouts are accompanied with increased volume. \ writeif(abs(1 -(lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),close)))/close)<(LastValue(Mov(((HHV(C,80)-LLV(C,80))/LLV(C,80)),25,E)/5)),"And with prices having only risen writeval(abs(1-(lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),close)))/close)*100,0.2)% since the breakout, the validity of the breakout is questionable. ","However, prices have risen some distance since breaking out--writeval(abs(1-(lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),close)))/close)*100,0.2)%, thereby adding more validity to the breakout.")")\ \ writeif(lastvalue(fml("trndline dn (shorter term) <auto>")>0) and lastvalue(c>fml("trndline dn (shorter term) <auto>")) and lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),volume))>0.66*lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),mov(v,90,s))) and lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),volume))<1.33*lastvalue(valuewhen(1,cross(c,fml("trndline dn (shorter term) <auto>")),mov(v,90,s))),"Volume on the <periodicity:s> of the breakout was neither extremely heavy nor extremely light--providing no convincing evidence either way as to the validity of the breakout. ")\ \ writeif(lastvalue(fml("trndline up (shorter term) <auto>")>0) and lastvalue(c<fml("trndline up (shorter term) <auto>")) ,"writeif(lastvalue(barssince(cross(fml("trndline up (shorter term) <auto>"),c))>0),"<Name> broke below the up trendline at writeval(valuew hen(1,cross(fml("trndline up (shorter term) <auto>"),c),c),0.2), writeval(lastvalue(barssince(cross(fml("trndline up (shorter term) <auto>"),c))),0.0) <periodicity:s>(s) ago","<Name> broke below the up trendline at writeval(valuewhen(1,cross(fml("trndline up (shorter term) <auto>") ,c),c),0.2) today"). This is a bearish sign. This up trendline, currently with an ending point at writeval(fml("trndline up (shorter term) <auto>"),0.2), may now provide upside resistance. ")\ \ writeif(lastvalue(fml("trndline up (shorter term) <auto>")>0) and lastvalue(c<fml("trndline up (shorter term) <auto>")) and lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),volume))>=1.33*lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))),"Volume on the <periodicity:s> of the breakout was quite heavy--writeval((((lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),volume)))-lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))))/lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))))*100,0.0)% above average. This makes the breakout even more significant. If you decide to trade <name>, you may want to place a stop loss just above the up trendline, in case the breakout is premature.")\ \ writeif(lastvalue(fml("trndline up (shorter term) <auto>")>0) and lastvalue(c<fml("trndline up (shorter term) <auto>")) and lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),volume))<= 0.66*lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))),"Volume on the <periodicity:s> of the breakout was quite light--writeval((((lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),volume)))-lastvalue(valuewhen( 1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))))/lastvalue(valuewhen(1,cross(fml("trndline up (shorter term)

Page 41: Bulli Castelo - Aulas Swing Trading System

41

<auto>"),c),mov(v,90,s))))*100,0.0)% below average. The most reliable breakouts are accompanied with increased volume. \ writeif(1-(lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),close)))/close<(LastValue(Mov(((HHV(C,80) -LLV(C,80))/LLV(C,80)),25,E)/5)),"And with prices having only declined writeval(abs(1-(lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),close)))/close)*100,0.2)% since the breakout, the validity of the breakout is questionable. ","However, prices have fallen a ways since breaking out--writeval(abs(1-(lastvalue(valuewhen(1,cross(c,fml("trndline up (shorter term) <auto>")),close)))/close)*100,0.2)%, thereby adding more validity to the breakout")")\ \ writeif(lastvalue(fml("trndline up (shorter term) <auto>")>0) and lastvalue(c<fml("trndline up (shorter term) <auto>")) and lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),volume))>0.66*lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))) and lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),volume))<1.33*lastvalue(valuewhen(1,cross(fml("trndline up (shorter term) <auto>"),c),mov(v,90,s))),"Volume on the <periodicity:s> of the breakout was neither extremely heavy nor extremely light--providing no convincing evidence either way as to the validity of the breakout. ")\ \ writeif(lastvalue(fml("trndline dn (shorter term) <auto>") >0) and lastvalue(c<=fml("trndline dn (shorter term) <auto>")) {and lastvalue(c>fml("trndline up (shorter term) <auto>"))} ,"The most recently confirmed down trendline for <Name> has an ending point currently at writeval(fml("trndline dn (shorter term) <auto>"),0.2). Expect prices to have some difficulty rising above this trendline. A break above this trendline (particularly on heavy volume) would be a bullish sign. ")\ \ writeif(lastvalue(fml("trndline up (shorter term) <auto>")>0) and lastvalue(c>=fml("trndline up (shorter term) <auto>")) {and lastvalue(c<fml("trndline dn (shorter term) <auto>"))} ,"The most recently confirmed up trendline for <Name> has an ending point currently at writeval(fml("trndline up (shorter term) <auto>"),0.2). Expect prices to have some difficulty falling below this trendline. A break below this trendline (particularly on heavy volume) would be a bearish sign. ")\ \ {No Trendlines Section}\ writeif(lastvalue(fml("trndline up (shorter term) <auto>") >0) or lastvalue( fml("trndline dn (shorter term) <auto>")>0),"","No trendlines were detected for <name>.") Performance One Week: writeif(roc(Close,7,%)>0,"writeval(roc(Close,7,%),7.2)% ","writeval(roc(Close,7,%),7.2)%") 1 Month: writeif(roc(Close,21,%)>0,"writeval(roc(Close,21,%),7.2)%","writeval(roc(Close,21,%),7.2)%") 3 Months: writeif(roc(Close,63,%)>0,"writeval(roc(Close,63,%),7.2)%","writeval(roc(Close,63,%),7.2)%") 6 Months: writeif(roc(Close,126,%)>0,"writeval(roc(Close,126,%),7.2)%","writeval(roc(Close,126,%),7.2)% ") 12 Months: writeif((((Close/valuewhen(1,year()<>ref(year(),-1),Close)) -1)*100)>0,"writeval(((Close/valuewhen(1,year()<>ref(year(),-1),Close))-1)*100,7.2)%","writeval(((Close/valuewhen(1,year()<>ref(year(),-1),Close))-1)*100,7.2)%")

----------------8<-----------------------

Mas onde vai essas fórmulas?

Passo 1:

Click no ícone no foto para abrir Expert Advisor.

Passo 2:

Selecionar "New Bulli Swing Aulas" Clicar no "Edit" Copiar e colar as fórmulas acima no "Commentary"

Page 42: Bulli Castelo - Aulas Swing Trading System

42

Agora como fica o gráfico depois o comentário:

Page 43: Bulli Castelo - Aulas Swing Trading System

43

Aula 11 Swing Trading System

Signal delay e Money Management:

Precisamos de GV.dll para podemos prosseguir. (se precisar uma cópia manda um e-mail para [email protected] ou contato no fórum no final do arquivo)

Usando Global Variable GV.Dll para podemos fazer "Signal Delay" Quando o sistema dar sinal de compra a gente armazeno ele no variable "LEntry" sem aparecer sinal no gráfico ainda. ExtFml( "GV.SetVar","LEntry" , ValueWhen( 1, (Cross((Mov((RSI(12)-LLV(RSI(12),12)) / (HHV(RSI(12),12)- (LLV(RSI(12),12))),3,E)*100),25)), C) ) Depois usamos esse variable para ser comparado com o preço de fechamento todos os dias para podemos entrar mais tarde quando o preço e superado por 2% por exemplo! C> (ExtFml( "GV.GetVar","LEntry" )* 1.02) Ao memso tempo usamos ele para Money Management, que a sinal de venda dada se perdemos 3% por exemplo! C<( ExtFml( "GV.GetVar","LEntry" )*.97) Todos esses números podem ser outros, e isso vai ser nosso trabalho depois na fase 2.

Mudar Buy Symbol para:

-----8<----------

ExtFml( "GV.SetVar","LEntry" , ValueWhen( 1, (Cross((Mov((RSI(12)-LLV(RSI(12),12)) / (HHV(RSI(12),12)- (LLV(RSI(12),12))),3,E)*100),25)), C) ); LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25) AND C>(Ref(Mov(C,25,S),-5)) OR C> (ExtFml( "GV.GetVar","LEntry" )* 1.02); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)) OR C<( ExtFml( "GV.GetVar","LEntry" )*.97); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B>0 AND Ref(B,-1)<=0

-----8<----------

Page 44: Bulli Castelo - Aulas Swing Trading System

44

Mudar Sell Symbol para:

-----8<----------

ExtFml( "GV.SetVar","LEntry" , ValueWhen( 1, (Cross((Mov((RSI(12)-LLV(RSI(12),12)) / (HHV(RSI(12),12)- (LLV(RSI(12),12))),3,E)*100),25)), C) ); LE:= Cross((Mov((RSI(12) -LLV(RSI(12),12)) / (HHV(RSI(12),12) - (LLV(RSI(12),12))),3,E)*100),25) AND C>(Ref(Mov(C,25,S),-5)) OR C> (ExtFml( "GV.GetVar","LEntry" )* 1.02); LX:= Cross(20,(Mov((RSI(14)-LLV(RSI(14),14)) / (HHV(RSI(14),14)- (LLV(RSI(14),14))),3,E)*100)) OR C<( ExtFml( "GV.GetVar","LEntry" )*.97); SE:=0; SX:=0; B:= ExtFml("ForumDll.Latch",LE,LX,SE,SX); B=0 AND Ref(B,-1)>0

-----8<----------

Se não sabe onde vai essas fórmulas volta par Aula 2!

Esses números do signal delay e money management tem que ser exatamente esses?

Não, estamos aqui apenas mostrando como deve ser feito um sistema completo no Metastock. Todos os números apresentados podem ser alterados para a gente chega resultados melhores.

Page 45: Bulli Castelo - Aulas Swing Trading System

45

Aula 12 Swing Trading System

Aula final da fase 1

Vamos mostrar dois exemplos de uso do sistema:

Exemplo de Baixa:

GRND3

Foi protegido na fase de queda. O sistema permitia a entrada apenas no reinício da nova fase de alta!

Page 46: Bulli Castelo - Aulas Swing Trading System

46

Exemplo de Alta:

CMET4

O sistema quase sempre deixo você dentro do trading o tempo todo! aumentando seu lucro ao Maximo! Também tirando você fora de mercado na fase de queda no Apr May periods!

Page 47: Bulli Castelo - Aulas Swing Trading System

47

As próximas perguntas tem que ser respondida por vocês: Quais são os pontos fracos do sistema? Quais são os pontos fortes do sistema? Quando podemos usar esse sistema? O que podemos fazer para melhorar ele?

Qualquer pergunta, comentário, critica construtiva, ficam a vontade!

Contato por e-mail: [email protected]

Contato no Fórum do BRSM: http://www.realtrader.com.br/forum/

Contato no Fórum do Grafista : http://grafistabsb.com/forum/

Bovespa - Stock Market - Mercado de Ações Investimento de alto risco

Avalie você mesmo suas decisões Você pode perder seu dinheiro!

Credito para fórmulas que eu mais uso nos meus sistemas: Henery 1224 Jose da Silva Patrik Roy Wabbit E para os amigos virtuais! Obrigado para: Fórum do BRSM http://www.realtrader.com.br/forum/ E para os amigos do fórum do BRSM Fórum do Grafista http://grafistabsb.com/forum/ E para os amigos do fórum do Grafista

Grande Abraço, Bulli

[email protected]

Esse arquivo pode ser distribuído gratuitamente apenas pelo: Fórum do BRSM & Fórum do Grafista

Para quem intersar alem deles manda um e-mail para mim para vocês sejam incluídos também!