Bulli Castelo - Aulas Swing Trading System

Preview:

Citation preview

Swing Trading System

Como montar um sistema Expert Advisor No

Metastock

BY

Bulli

bullicastelo@yahoo.com.br

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"

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.

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.

5

Passo 5:

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

Agora aqui está o resultado final!

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 bullicastelo@yahoo.com.br 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.

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

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!

9

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!

11

Agora aqui está o resultado final!

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

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)

13

Acrescentar Moving Average MA 4 9(Azul)

14

Acrescentar o Moving Average MA 9 (Vermelho)

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.

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!

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

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

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!

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!

21

Agora como fica o gráfico:

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!

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!

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

25

A segunda vez:

Para o Pivot de Alta

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!

27

Aula 7 Swing Trading System

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

Veja no foto os Settings:

28

Como fica o gráfico até agora:

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

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.

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;

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

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

33

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

34

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

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.

36

O gráfico deve ficar assim:

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

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!

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!

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

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)

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"

42

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

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 bullicastelo@yahoo.com.br 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<----------

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.

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!

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!

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: bullicastelo@yahoo.com.br

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

bullicastelo@yahoo.com.br

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!