Você está na página 1de 16

// Robô Trader //

// Keltner //

// by CLUBE DO ROBÔ TRADER //

// www.youtube.com/@clubedorobo //

// www.instagram.com/danilo.profit //

// CONNECT: https://rebrand.ly/cdr_connect //

/////////////////////////////////////////////////////////////////////////////

Inicio

Se (IsSold) então

Inicio

Se (Fechamento <= keltnerCh(3.50,35,3)|1|) então

BuyToCoverAtMarket;

Fim

Senão Se (IsBought) então

Inicio

Se (Fechamento >= keltnerCh(3.50,35,3)|0|) então

SellToCoverAtMarket;

Fim

Senão

Inicio

Se (Fechamento <= keltnerCh(3.50,35,3)|1|) então

BuyAtMarket

Senão Se (Fechamento >= keltnerCh(3.50,35,3)|0|) então

SellShortAtMarket;

Fim;

Fim;
/////////////////////////////////////////////////////////////////////////////

// Robô Trader //

// BOTTOM FINDER COM FILTRO //

// by CLUBE DO ROBÔ TRADER //

// www.youtube.com/@clubedorobo //

// www.instagram.com/danilo.profit //

// CONNECT: https://rebrand.ly/cdr_connect //

/////////////////////////////////////////////////////////////////////////////

PARAMETRO

Niveis(10);

PercentAlvo(300);

PercentStop(200);

OffsetEntrada(0);

OffsetSaida(30);

PeridoFiltro(50);

VAR

bF, precoAlvo, precoStop : real; //float

sinalC, sinalV : booleano;

mediaFiltro : real;

INICIO

//RESET DE VALORES

se (not HasPosition) entao

inicio

precoAlvo := 0;

precoStop := 0;

fim;

//CARREGAR O INDICADOR
bF := NelogicaBottomFinder|1|;

mediaFiltro := Media(PeridoFiltro,fechamento);

//SINAIS DE ENTRADA

sinalC := (bF >= Niveis) e (fechamento >= mediaFiltro);

sinalV := (bF <= -Niveis) e (fechamento <= mediaFiltro);

//EXECUÇÃO DA ENTRADA

se (not HasPosition) e (sinalC) entao BuyStop(maxima+MinPriceIncrement,


(maxima+MinPriceIncrement)+(OffsetEntrada*MinPriceIncrement))

senao se (not HasPosition) e (sinalV) entao SellShortStop(minima-MinPriceIncrement,


(minima-MinPriceIncrement)-(OffsetEntrada*MinPriceIncrement));

//================ CRIAR ORDEM OCO ===================

//DEFINIR OS VALORES DE SAÍDA OCO

se (IsBought) e ((precoAlvo = 0) ou (precoStop = 0)) entao

inicio

precoAlvo := BuyPrice + (range*(PercentAlvo/100));

precoStop := BuyPrice - (range*(PercentStop/100));

fim

senao se (IsSold) e ((precoAlvo = 0) ou (precoStop = 0)) entao

inicio

precoAlvo := SellPrice - (range*(PercentAlvo/100));

precoStop := SellPrice + (range*(PercentStop/100));

fim;

//EXECUTAR ORDENS OCO

se IsBought entao

inicio

SellToCoverLimit(precoAlvo);

SellToCoverStop(precoStop,precoStop-(OffsetSaida*MinPriceIncrement));
fim

senao se IsSold entao

inicio

BuyToCoverLimit(precoAlvo);

BuyToCoverStop(precoStop,precoStop+(OffsetSaida*MinPriceIncrement));

fim;

//ZERAGEM (GAP)

se IsBought e ((fechamento < precoStop) ou (fechamento > precoAlvo)) e (volume > 0) entao
ClosePosition

senao se IsSold e ((fechamento > precoStop) ou (fechamento < precoAlvo)) e (volume > 0)
entao ClosePosition;

//====================================================================

//COLORAÇÃO

se sinalC entao PaintBar(clLime)

senao se sinalV entao PaintBar(clVermelho);

//PLOTAGEM

plot(bF);

SetPlotType(1,1);

plot2(Niveis);

plot3(-Niveis);

FIM;

/////////////////////////////////////////////////////////////////////////////

// *ROBÔ TRADER* //

// LARRY WILLIAMS 9.1 | COM RELAÇÃO RISCO x RETORNO //

// by CLUBE DO ROBÔ TRADER //

// www.youtube.com/@clubedorobo //
// www.instagram.com/danilo.profit //

// CONNECT: https://rebrand.ly/cdr_connect //

/////////////////////////////////////////////////////////////////////////////

//PARÂMETRO

PARAMETRO

DistEntradaTicks(1);

DistStopTicks(1);

RelacaoXpor1(1.0);

//VARIÁVEIS

VAR

mm,mmFiltro : real; //float

precoAlvo : real;

precoStop : real;

sinalC : booleano;

sinalV : booleano;

INICIO

//RESET DE VALORES

se (not HasPosition) entao

inicio

precoAlvo := 0;

precoStop := 0;

fim;

//CARREGAR O INDICADOR

mm := MediaExp(9,fechamento);

mmFiltro := Media(200,fechamento);
//SINAIS DE ENTRADA

sinalC := (mm[2] > mm[1]) e (mm[1] < mm[0]) e (fechamento > mmFiltro);

sinalV := (mm[2] < mm[1]) e (mm[1] > mm[0]) e (fechamento < mmFiltro);

//EXECUÇÃO DA ENTRADA

se (not HasPosition) e sinalC entao BuyStop((maxima[0]+


(DistEntradaTicks*MinPriceIncrement)),(maxima[0]+(DistEntradaTicks*MinPriceIncrement))
+(30*MinPriceIncrement))

senao se (not HasPosition) e sinalV entao SellShortStop((minima[0]-


(DistEntradaTicks*MinPriceIncrement)),(minima[0]-(DistEntradaTicks*MinPriceIncrement))-
(30*MinPriceIncrement));

//================= CRIAÇÃO DA ORDEM OCO =================\\

//DEFINIÇÃO DOS VALORES DE SAÍDA

se (IsBought) e ((precoAlvo = 0) ou (precoStop = 0)) entao

inicio

precoStop := minima - (DistStopTicks*MinPriceIncrement);

precoAlvo := BuyPrice + ((BuyPrice-precoStop)*RelacaoXpor1);

fim

senao se (IsSold) e ((precoAlvo = 0) ou (precoStop = 0)) entao

inicio

precoStop := maxima + (DistStopTicks*MinPriceIncrement);

precoAlvo := SellPrice - ((precoStop-SellPrice)*RelacaoXpor1);

fim;

//EXECUÇÃO DAS ORDENS OCO

se IsBought entao

inicio

SellToCoverLimit(precoAlvo);

SellToCoverStop(precoStop,precoStop-(30*MinPriceIncrement));
fim

senao se IsSold entao

inicio

BuyToCoverLimit(precoAlvo);

BuyToCoverStop(precoStop,precoStop+(30*MinPriceIncrement));

fim;

//ZERAGEM (GAP)

se (IsBought) e ((fechamento < precoStop) ou (fechamento > precoAlvo)) e (volume > 0) entao
ClosePosition

senao se (IsSold) e ((fechamento > precoStop) ou (fechamento < precoAlvo)) e (volume > 0)
entao ClosePosition;

//COLORAÇÃO

se sinalC entao PaintBar(clLime)

senao se sinalV entao PaintBar(clVermelho);

//PLOTAGEM

plot(mm);

SetPlotColor(1,clVerdeLimao);

plot2(mmFiltro);

SetPlotColor(2,clAmarelo);

SetPlotWidth(2,3);

FIM;

/////////////////////////////////////////////////////////

Hilo - operações na virada


INPUT

Periodo(30);
inicio

inicio

//COMPRA

Se (fechamento > HiloActivator(periodo)) e (buyposition = 0)

and (time > 0858) and (time < 1700)entao

inicio

Se(IsSold = true) entao

Closeposition;

BuyatMarket;

paintbar (clgreen);

Fim;

//VENDA

inicio

Se (fechamento < HiloActivator(periodo)) e (sellposition = 0)

and (time > 0858) and (time < 1700) então

inicio

Se(IsBought = true) entao

Closeposition;

SellShortAtMarket;

paintbar (clred);

Fim;

//SAIDAS

inicio

Se (BuyPosition=1) então

Se ((fechamento < HiloActivator(periodo))) or (time > 1700) então

SellToCoverAtMarket;

Fim;

//SAIDAS

inicio

Se (SellPosition=1) então
Se ((fechamento > HiloActivator(periodo))) or (time > 1700) entao

BuyToCoverAtMarket;

Fim;

Fim;

fim;

fim;

/////////////////////////////////////////////////////////////////////////////

// *ROBÔ TRADER* //

// LARRY WILLIAMS 9.1 | Com filtro para as médias


próximas /////////////////////////////////////////////////////////////////////////////

//PARÂMETRO

PARAMETRO

DistEntradaTicks(1);

DistStopTicks(1);

RelacaoXpor1(1.5);

//VARIÁVEIS

VAR

mm,mmFiltro, vlrStopC, vlrStopV : real; //float

precoAlvo : real;

precoStop : real;

sinalC : booleano;

sinalV : booleano;

INICIO

//RESET DE VALORES

se (not HasPosition) entao


inicio

precoAlvo := 0;

precoStop := 0;

fim;

//CARREGAR O INDICADOR

mm := MediaExp(9,fechamento);

mmFiltro := Media(200,fechamento);

//SINAIS DE ENTRADA

//sinalC := (mm[2] > mm[1]) e (mm[1] < mm[0]) e (fechamento > mmFiltro);

//sinalV := (mm[2] < mm[1]) e (mm[1] > mm[0]) e (fechamento < mmFiltro);

sinalC :=(mm[2] > mm[1]) e (mm[1] < mm[0]) e (fechamento > mmFiltro) e ((mm[0] -
mmfiltro[0]) > 100);

sinalV := (mm[2] < mm[1]) e (mm[1] > mm[0]) e (fechamento < mmFiltro) e ((mmfiltro[0] -
mm[0]) > 100);

//EXECUÇÃO DA ENTRADA

se (not HasPosition) e sinalC entao BuyAtMarket // BuyStop((maxima[0]+


(DistEntradaTicks*MinPriceIncrement)),(maxima[0]+(DistEntradaTicks*MinPriceIncrement))
+(30*MinPriceIncrement))

senao se (not HasPosition) e sinalV entao SellShortAtMarket;// SellShortStop((minima[0]-


(DistEntradaTicks*MinPriceIncrement)),(minima[0]-(DistEntradaTicks*MinPriceIncrement))-
(30*MinPriceIncrement));

//================= CRIAÇÃO DA ORDEM OCO =================\\

//DEFINIÇÃO DOS VALORES DE SAÍDA

se (IsBought) e ((precoAlvo = 0) ou (precoStop = 0)) entao

inicio

precoStop := minima - (DistStopTicks*MinPriceIncrement);

precoAlvo := BuyPrice + ((BuyPrice-precoStop)*RelacaoXpor1);

fim
senao se (IsSold) e ((precoAlvo = 0) ou (precoStop = 0)) entao

inicio

precoStop := maxima + (DistStopTicks*MinPriceIncrement);

precoAlvo := SellPrice - ((precoStop-SellPrice)*RelacaoXpor1);

fim;

//EXECUÇÃO DAS ORDENS OCO

se IsBought entao

inicio

SellToCoverLimit(precoAlvo);

SellToCoverStop(precoStop,precoStop-(30*MinPriceIncrement));

fim

senao se IsSold entao

inicio

BuyToCoverLimit(precoAlvo);

BuyToCoverStop(precoStop,precoStop+(30*MinPriceIncrement));

fim;

// EXECUÇÃO TRINLLING Stop

//vlrStopC := MINIMA[0];

//vlrStopV := MAXIMA[0];

//se IsBought entao SellToCoverStop(vlrStopC,vlrStopC-(30*MinPriceIncrement));

//se IsSold entao BuyToCoverStop(vlrStopV,vlrStopV+(30*MinPriceIncrement));

//ZERAGEM (GAP)

se (IsBought) e ((fechamento < precoStop) ou (fechamento > precoAlvo)) e (volume > 0) entao
ClosePosition

senao se (IsSold) e ((fechamento > precoStop) ou (fechamento < precoAlvo)) e (volume > 0)
entao ClosePosition;

//COLORAÇÃO

se sinalC entao PaintBar(clLime)


senao se sinalV entao PaintBar(clVermelho);

//PLOTAGEM

plot(mm);

SetPlotColor(1,clVerdeLimao);

plot2(mmFiltro);

SetPlotColor(2,clAmarelo);

SetPlotWidth(2,3);

FIM;

/////////////////////////////////////////////////////////

PARABOLIC SAR (PÁSSARO MÁGICO)

Obs: A saída é por configuração no profit.

VAR

pSAR : real;

sinalC, sinalV : booleano;

Begin

//carregar os indicadores

pSAR := ParabolicSAR(0.02,0.20);

//sinais de entrada

sinalC := (close[1] < pSAR[1]) e (close[0] > pSAR[0]);

sinalV := (close[1] > pSAR[1]) e (close[0] < pSAR[0]);

// execução de entrada

se (not HasPosition) e sinalC então BuyAtMarket;

se (not hasPosition) e sinalV entao SellShortAtMarket;


// execução de saída

se IsBought e sinalV entao ReversePosition; // SellShortAtMarket ClosePosition

se IsSold e sinalC entao ReversePosition;

//coloração

se (close > pSAR) entao PaintBar(cllime);

se (close < pSAR) entao PaintBar(clred);

//SINALIZAÇÃO DAS ENTRADAS

se sinalC então PlotText("C",cllime,0,10);

se sinalV então PlotText("V",clred,0,10);

Plot(psar);

End;

/////////////////////////////////////////////////////////

// //

// Cruzamento de Médias //

// //

/////////////////////////////////////////////////////////

parâmetro

MediaRapida(9);

MediaLenta(21);

var

sMedRapida : Real;

sMedLenta : Real;

sPrevMedRapida : Real;

sPrevMedLenta : Real;

begin

///////////////////////////////////////////////////////
// Armazena os valores das médias em variáveis de apoio

sMedRapida := Media(MediaRapida, Fechamento);

sMedLenta := Media(MediaLenta, Fechamento);

sPrevMedRapida := sMedRapida[1];

sPrevMedLenta := sMedLenta[1];

///////////////////////////////////////////////////////

// Verifica se as condições de disparos de alarmes

// foram satisfeitas

se (sPrevMedRapida < sPrevMedLenta) e (sMedRapida > sMedLenta) então

inicio

Se(isSold = true) então

BuyToCoverAtMarket;

BuyAtMarket;

fim

senão se (sPrevMedRapida > sPrevMedLenta) e (sMedRapida < sMedLenta) então

inicio

Se(isBought = true) então

SellToCoverAtMarket;

SellShortAtMarket;

fim;

end;

/////////////////////////////////////////////////////////

// //

// TRADENCIABOT - MEDIAS/MACD //

// //

/////////////////////////////////////////////////////////

{Programado por Eduardo Cortes e Leonardo Zambiasi}

{www.tradencia.com.br}
////parametros do indicador: a base da ideia////

parâmetro

MediaRapida(9);

MediaLenta(21);

///variaveis ou referencias para o codigo funcionar///

var

sMedRapida : Real;

sMedLenta : Real;

sPrevMedRapida : Real;

sPrevMedLenta : Real;

mcd, me : Real;

cenario1 : booleano;

cenario2 : booleano;

///Aqui começamos o bloco do código para definirmos a estrategia que queremos///

begin

///Aqui armazenamos os valores das médias/macd em variáveis de apoio///

///Observar que ao trocar o número do parâmetro mudará aqui////

sMedRapida := Media(MediaRapida, fechamento);

sMedLenta := Media(MediaLenta, Fechamento);

sPrevMedRapida := sMedRapida[1];

sPrevMedLenta := sMedLenta[1];

mcd := macd(26,12,9);

me:= mediaexp(9, mcd);


///estabelecemos qual o cenário ou gatilho de entrada na operação: o cérebro do robô///

cenario1 := (sPrevMedRapida < sPrevMedLenta) e (sMedRapida > sMedLenta) e (mcd > me) e
(mcd[1] <= me[1]); ///compra

cenario2 := (sPrevMedRapida > sPrevMedLenta) e (sMedRapida < sMedLenta) e (mcd < me)e
(mcd[1] <= me[1]); ///venda

// Verifica se as condições de disparos foram satisfeitas///

Begin

se cenario1 então

inicio

Se(sellposition > 0) então

paintbar(clgreen);

BuyToCoverAtMarket;

BuyAtMarket;

fim

senão se cenario2 então

inicio

Se(BuyPosition > 0) então

paintbar(clred);

SellToCoverAtMarket;

SellShortAtMarket;

fim;

end;

end;

Você também pode gostar