Anda di halaman 1dari 47

Swing Trading System

Como montar um sistema Expert Advisor


No Metastock
BY

Bulli
bullicastelo@yahoo.com.br

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 frm 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"

Passo 3: Acrescentar um symbol para indicar compras: Buy colocar a frmula 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.

Passo 4: Acrescentar um symbol para indicar vendas: Sell colocar a frmula 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.

Passo 5: Abrir um grfico e Attach o novo Expert Advisor!

Agora aqui est o resultado final!

Aula 2 Swing Trading System


Vamos dar uma olhada no grfico PETR4:

Compras seguidas sem vendas! Vendas sem compras! Como podemos resolver isso? Nos vamos usar uma funo chamada Latch. Pode ser encontrada no External DLL, foi desenvolvido no frum do Equis. O arquivo livremente distribudo. (grtis)
(se precisar uma cpia manda um e-mail para bullicastelo@yahoo.com.br ou contato no frum 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 Portugus) tem que fazer isso com Metastock fechado, se no, apenas vai tem que re-iniciar Metastock.

As novas frmulas 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<-----------------------

Mas onde vai essas frmulas?


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 frmula: ----------------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!

Passo 4: Selecionar "Sell" depois clicar "Edit" Colocar a nova frmula: ----------------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!

10

Agora aqui est o resultado final!

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

11

Aula 3 Swing Trading System


Vamos acrescentar alguns indicadores simples que vo 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 (Trs vezes)

12

Acrescentar Moving Average MA 4 9(Azul)

13

Acrescentar o Moving Average MA 9 (Vermelho)

14

Acrescentar Moving Average MA 25 shifted 5 (Verde)

Para que serve um filtro como isso? Para no entramos no Swing contra a tendncia evitando Wipsaws, ou Wiplashes. Um filtro assim sempre funciona? No, como qualquer sistema, no existe 100%, por causa disso temos STOPS, money management, filtro do filtro, etc.

15

Agora o grfico tem que ficar assim:

Vejam no grfico como o sistema est perdendo quando a tendncia est de baixa! (entre maro e maio)!

Para isso serve o filtro, na prxima aula mostramos como evitar isso!

16

Aula 4 Swing Trading System


O Uso de Filtro: Como evitar que o sistema perde quando a tendncia est de baixa?

Reparam que quase todas as sinais de compra abaixo da linha verde (pode tambm ser chamada de linha de tendncia automtica) acabou em prejuzo! Ento porque a gente no 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<-----------------------

17

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 frmulas? Siga os mesmos passos na Aula 2

18

Agora como fica o grfico:

Ento com o uso de filtros podemos melhorar e muito o resultado final de qualquer sistema. Sempre tem que usar esse filtro ? No, o que estamos mostrando aqui apenas um exemplo do que um filtro pode fazer. Os filtros podem variar de uma simples linha de tendncia at frmulas muito complexas, mas o uso igual. o objetivo igual!

19

Aula 5 Swing Trading System


Hoje ns 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 frmulas de "Trend detector" so:


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

Mas onde vai essas frmulas?

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 frmulas acima e colocar no Bullish e Bearish como est no foto!

20

Agora como fica o grfico:

21

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 parmetros como n o foto!

22

Agora como fica o grfico:

Podemos ver que visualizar a mudana de tendncia ficou bem melhor! No esquecem que Trading uma combinao de cincia e arte!

23

Aula 6 Swing Trading System


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

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

24

A segunda vez: Para o Pivot de Alta

25

Agora vejam como fica o grfico 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!

26

Aula 7 Swing Trading System


Preci amos acrescentar o seguinte indicador: s "pp+:: Fibonacci Ladder"

Veja no foto os Settings:

27

Como fica o grfico at agora:

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

28

Como fica o grfico final at agora:

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

O preo atual alto ou baixo para o Swing?


Usando o Fibonacci Ladder podemos saber isso. Mas para que mais serve? Trs coisas: 1- Pontos de suporte e resistncia automticos 2- Para escolha entre duas aes ou mais, para saber qual o melhor candidato para ns entramos nele. 3- Responder: qual o maior espao; para subir ou para cair, ao mesmo tempo qual o ponto de equilibro entre os comprados e vendidos. Espero que foi claro.

29

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" tambm 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;

30

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<-----------------------

31

Passo 3: Clicar no "New" Mudar os settings como no foto, depois colocar a formula seguinte no "Condition" tambm 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 <-----------------------

32

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

33

Agora assim fica o grfico final at agora:

34

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 frmula 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 grfico.

35

O grfico deve ficar assim:

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

36

Agora o resultado final fica assim:

Mas para que serve "Ergodic Candlestick Oscillator"? Serve como outro tipo de filtro pode ser usado para confirmao de pontos de entrada ou sada. por exemplo, veja no grfico de PETR4 os pontos de venda e compra marcados podem ser ignorados pois o indicador no 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!

37

Tem que usar ele sempre ?


No, 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 anlise tcnica no o uso individual de um indicador, mas a combinao de um conjunto eles que completa um a outro! Como podemos ver que os indicadores diferentes podem trabalhar juntos para dar resultados melhores!

38

Aula 10 Swing Trading System


Vamos acrescentar comentrio 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. ")\ \

39

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)

40

<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 frmulas? 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 frmulas acima no "Commentary"

41

Agora como fica o grfico depois o comentrio:

42

Aula 11 Swing Trading System Signal delay e Money Management:


Precisamos de GV.dll para podemos prosseguir.
(se precisar uma cpia manda um e-mail para bullicastelo@yahoo.com.br ou contato no frum 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 varia ble "LEntry" sem aparecer sinal no grfico 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 preo de fechamento todos os dias para podemos entrar mais tarde quando o preo 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 nmeros 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)-LL V(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<----------

43

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 no sabe onde vai essas frmulas volta par Aula 2! Esses nmeros do signal delay e money management tem que ser exatamente esses? No, estamos aqui apenas mostrando como deve ser feito um sistema completo no Metastock. Todos os nmeros apresentados podem ser alterados para a gente chega resultados melhores.

44

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 reincio da nova fase de alta!

45

Exemplo de Alta:

CMET4

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

46

As prximas perguntas tem que ser respondida por vocs: Quais so os pontos fracos do sistema? Quais so os pontos fortes do sistema? Quando podemos usar esse sistema? O que podemos fazer para melhorar ele? Qualquer pergunta, comentrio, critica construtiva, ficam a vontade! Contato por e-mail: Contato no Frum do BRSM: bullicastelo@yahoo.com.br http://www.realtrader.com.br/forum/

Contato no Frum do Grafista : http://grafistabsb.com/forum/

Bovespa - Stock Market - Mercado de Aes Investimento de alto risco Avalie voc mesmo suas decises Voc pode perder seu dinheiro!
Credito para frmulas que eu mais uso nos meus sistemas: Henery 1224 Jose da Silva Patrik Roy Wabbit

E para os amigos virtuais!


Obrigado para: Frum do BRSM http://www.realtrader.com.br/forum/ E para os amigos do frum do BRSM Frum do Grafista http://grafistabsb.com/forum/ E para os amigos do frum do Grafista

Grande Abrao , Bulli


bullicastelo@yahoo.com.br

Esse arquivo pode ser distribudo gratuitamente apenas pelo: Frum do BRSM & Frum do Grafista Para quem intersar alem deles manda um e-mail para mim para vocs sejam includos tambm!

47