Day Trade com Indicadores Próprios!!Muito Bom Dia!!
Pessoal, resolvi gravar este video sobre Day Trade, apesar de não ser adepto, mas mostrando que da pra fazer sim.
A ideia aqui é apresentar aguns dindicadores que criei e a dinâmica de uso deles.
O Pine Script é muito legal e qualquer um com um pouco de estudos pode desenvolver as próprias estratégias para uso de forma muito poderosa.
Fica a dica, estude a linguagem e desenvolva suas estratégias.
Espero que gostem.
Força, fé e fraternidade!
Pinescript
O seu primeiro indicador em PineScript (EMAs)Respeitável trader,
Neste vídeo eu te mostro como criar o seu primeiro indicador em PineScript utilizando o incrível Manual de referência da linguagem PINE aqui mesmo do próprio TradingView.
Neste exemplo, mostrei como adicionar duas Médias Móveis Exponenciais (EMAs) ao seu gráfico ocupando o espaço de somente um indicador.
Navegue pelo Manual de Referência do TradingView e desafie a sua criatividade para colaborar na sua análise gráfica.
Um abraço!
---
Script do indicador EMAS 12/26 | Mw3
Minha live com o @RaphaelCordeiro para o @TradingView
br.tradingview.com
Perfil do Raphael Cordeiro
br.tradingview.com
Introdução PineScript - Áreas de Código e Série de dados.Fala Traders.
Iremos dar continuidade ao nosso estudo Intrudução ao PineScript . Vamos ver hoje sobre como organizar nosso código dividindo-o em áreas específicas para melhor desenvolvimento de estratégias para backtestes. Iremos ver também todo o código do Setup Dave Landry para que vocês possam estudar. Vamos lá?
ÁREAS DE CÓDIGO
Para uma melhor organização e compreensão, é boa prática de quem está escrevendo uma estratégia de execução ou indicador que separe o código e áreas. Na figura abaixo vemos 4 áreas principais:
- Área de Inputs (quando houver);
- Área de declaração de variáveis;
- Área da lógica de execução;
- Área de plotagem de indicadores (quando houver);
Área de inputs
Inputs são valores atribuídos pelo usuário para que o código execute durante todo o código. Inputs significa que houve um valor externo "entrando" no código (input = entrada).
Por exemplo, se você quiser atribuir valores de caixa inicial para sua estratégia para verificar se o capital aumenta ou esgota durante um determinado tempo você irá adicionar o valor deste caixa como sendo um input, pois poderá modificar no futuro apenas o valor inicial sem a necessidade de modificar todo o código.
Para isso, aqui no editor Pine, você precisará adicionar a palavra "Input" antes do nome "caixa inicial" para o editor reconhecer esse valor como sendo um input.
Área de declaração de variáveis
Variáveis são "espaço" em memória do editor para que o mesmo possa usá-lo durante todo o código, para que não haja necessidade de repetição deste valor. É semelhante aos inputs. Porém, para que o editor entenda que uma declaração é tida como variável o usuário terá que adicionar a palavra "var" antes dessa declaração.
No setup do Dave Landry iremos utilizar as variáveis da imagem abaixo.
Vemos na imagem que atribuímos as palavras "candle", "tamanho", "alvo" e "stop" como sendo variáveis de valor 0.
Nas variáveis existem 3 tipos principais que iremos utilizar no desenvolvimento de outros setups. São eles:
- Tipo inteiro;
- Tipo float;
- Tipo booleano;
O tipo inteiro, como o nome já diz, são valores inteiros atribuídos às variáveis. Por exemplo, quero uma média móvel de 20 períodos. O número 20 é um número inteiro, portanto será uma variável do tipo inteiro.
Tipo float ( ou ponto flutuante) são valores fracionários. No nosso exemplo da imagem acima temos o valor "tamanho", "alvo" e "stop" como sendo do tipo float.
Tipo booleano são variáveis que possuem valores lógico como true ou false (verdadeiro ou falso). Tais valores são usado com as terminações IF, THEN e ELSE (são os três principais).
Bom, vimos as principais áreas do código, o que são inputs e variáveis. Agora precisamos saber o que são Série de dados.
SÉRIE DE DADOS
Série de dados nada mais é do que os valores da mínima, máxima, abertura e fechamento de um determinado período, seja ele no período de 1 horas, 30 minutos, diário, entre outros.
Para cada período, utilizamos o valor entre chaves no código pine. Por exemplo, close refere-se ao fechamento da barra anterior. Close , refere-se ao fechamento da barra ante anterior. Assim sucessivamente.
No setup do Dave Landry utilizaremos a função de séries de dados para saber o valor da mínimas e máximas do candle atual, assim como dos dois candles anteriores para fazermos nossa condição de compra e venda.
No código da figura vemos que a condição de compra se dá pela mínima do candle atual sendo menor do que a mínima do candle anterior e menor que a mínima do candle ante anterior e fechamento da barra atual (close) sendo maior do que a média móvel de 20 períodos (low sma(close,20));.
A condição de venda é montada da mesma maneira, porém utilizando a série de dados das máxima dos candles anteriores e fechamento de candle atual menor do que a média móvel de 20 períodos.
Ora meus amigos, isso não é o setup apresentado pelo Dave Landry?
Então, com o conhecimento dada neste estudo e do post anterior, já podemos montar nossa estratégia de execução e testar em vários papeis.
Segue o código completo abaixo:
//@version=4
strategy("DAVE LANDRY - DAY TRADE", overlay = true)
//---------------------------------------------//
// ÁREA DE DECLARAÇÃO DE VARIÁVEIS
//---------------------------------------------//
var candle = 0
var tamanho = 0.00
var alvo = 0.00
var stop = 0.00
// CONDIÇÕES DE COMPRA E VENDA
condicoes_de_compra = (low sma(close,20))
condicoes_de_venda = (high >high ) and (high >high ) and (close0)
candle := candle + 1
tamanho := high - low
alvo := (tamanho * 2) + high // Esse é o seu alvo
stop := abs( (tamanho * 2) - low )// Esse é o seu stop
//Abaixo temos o envio da ordem contendo definição do alvo e stop
strategy.exit("saída_da_compra", "entrada_na_compra", limit = alvo, stop = stop)
//---------------------------------------------//
// LÓGICA DE SAÍDA DAS OPERAÇÕES DE VENDA
//---------------------------------------------//
if (strategy.position_size<0)
candle := candle + 1
tamanho := high - low
alvo := abs( ( tamanho * 2 ) - low ) // Esse é o seu alvo
stop := ( tamanho * 2 ) + high // Esse é o seu stop
//Envio da ordem contendo o alvo e o stop
strategy.exit("saída_da_venda", "entrada_na_venda", limit = alvo, stop = stop)
//----------------------------------------------------------//
// HORÁRIO DE ENCERRAMENTO PARA DAY TRADE
//----------------------------------------------------------//
if (hour>=16)
strategy.close("entrada_na_compra", comment = "fechando posição")
strategy.close("entrada_na_venda", comment = "fechando posição")
//---------------------------------------------//
// ÁREA DE PLOTAGEM
//---------------------------------------------//
plot(sma(close,20))
//----------------------------------------------------------------------------------------
FIM DE CÓDIGO!
Basta copiar e colar o código no seu Editor Pine e estuda-lo e fazer o backtest em vários outros papeis. Lembrando que é um código para DayTrade, por isso há funções de encerramento por horário.
Bons estudos.