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[1] refere-se ao fechamento da barra anterior. Close[2], 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[0]<low[1] and (low[0]<low[2]) and (close>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.
//----------------------------------------------------------// // HORÁRIO DE ENCERRAMENTO PARA DAY TRADE //----------------------------------------------------------//
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.
Thông tin và ấn phẩm không có nghĩa là và không cấu thành, tài chính, đầu tư, kinh doanh, hoặc các loại lời khuyên hoặc khuyến nghị khác được cung cấp hoặc xác nhận bởi TradingView. Đọc thêm trong Điều khoản sử dụng.