Neo traderBot

Neo traderBot

Você sabia?

A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias

Docy

Snippets para Implementação de estratégias

Leitura estimada: 3 minutos

Esta seção visa apresentar trechos de códigos com funcionalidades relativas à localização temporal da estratégia. Por exemplo, identificar se a atual barra é a primeira barra do dia para verificar gap diário.

Você pode acessar os Snippets diretamente pelo menu lateral direito, ou fazendo CTRL+F (CTRL+L) para localizar algum texto específico na página, uma vez que o conteúdo tende a crescer ao longo do tempo, dificultando a navegação pelo menu.

Caso tenham sugestões de código para acrescentar à lista, gentileza deixar o código nos comentários com o link para seu perfil em rede social (para devido crédito de autoria).

Snippets

Como identificar gap de abertura do dia?

Veja abaixo um exemplo de como estruturar uma lógica para identificar gap de abertura diário pelo EvoCode.

				
					using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using Runtime.Script;
using TradeApi;
using TradeApi.History;
using TradeApi.Indicators;
using TradeApi.Instruments;
using TradeApi.ToolBelt;


namespace Snippets_NeoTraderBot
{
    /// <summary>
    /// Indicator1
    /// 
    /// </summary>
    public class exemploIdentGapAbertura : IndicatorBuilder 
    {
		private BarData dadosCandle;
    	
        public exemploIdentGapAbertura()
            : base()
        {
			#region Initialization
            Credentials.Author = "NeoTraderBot";
            Credentials.Company = "NeoTraderBot";
            Credentials.Copyrights = "";
            Credentials.DateOfCreation = new DateTime(2023, 9, 4);
            Credentials.ExpirationDate = DateTime.MinValue;
            Credentials.Version = "";
            Credentials.Password = "66b4a6416f59370e942d353f08a9ae36";
            Credentials.ProjectName = "exemploIdentGapAbertura";
            #endregion 
            
            Lines.Set("line1");
			Lines["line1"].Color = Color.Blue;

            SeparateWindow = false;
        }
        
        /// <summary>
        /// This function will be called after creating
        /// </summary>
		public override void Init()
		{
			dadosCandle = (HistoryDataSeries as BarData);
		}        
 
        /// <summary>
        /// Entry point. This function is called when new quote comes or new bar created
        /// </summary>
        public override void Update(TickStatus args)
        {
			if (dadosCandle.Count <= 1)
				return;
        	
			if (args != TickStatus.IsQuote)
			{
				if (dadosCandle.GetTimeUtc(0).ToLocalTime().Date != dadosCandle.GetTimeUtc(1).ToLocalTime().Date)
				{
					double gapDoDia = dadosCandle.GetOpen(0) - dadosCandle.GetClose(1);
					Notification.Print(dadosCandle.GetTimeUtc(0).ToLocalTime().ToString() + ": Mercado abriu em gap de " + gapDoDia);
				}
			}
        }
        
        /// <summary>
        /// This function will be called before removing
        /// </summary>
		public override void Complete()
		{
			
		} 
     }
}

				
			

Leave a Comment

CONTENTS