Ir para o conteúdo

Método Chartshot

Este guia do utilizador explica como usar o método TakeChartshot() ao criar algoritmos cTrader. Se está ansioso para começar, basta ler o nosso resumo de um minuto abaixo.

Métodos Chartshot em um minuto!

  • O método TakeChartshot() permite que os algoritmos cTrader tirem Chartshots dos gráficos nos quais estão a ser executados, mas apenas se este gráfico estiver visível.
  • Os Chartshots são uma ótima ferramenta para comunicar com outros traders e partilhar análises técnicas. Com o método TakeChartshot(), este processo torna-se muito mais fácil.
  • O método TakeChartshot() retorna uma matriz de bytes, o que significa que pode facilmente partilhar Chartshots como ficheiros .PNG. Também pode partilhar o Chartshot na Internet usando o recurso de acesso à rede.
  • O método TakeChartshot() é essencial se quiser fazer Chartshots sempre que os seus algoritmos fizerem algo (como quando um cBot coloca uma ordem). Este recurso fornece uma excelente ajuda visual para qualquer pessoa que queira avaliar como as suas soluções funcionam sem ter de ficar de olho no gráfico 24/7.

Usando o método TakeChartshot()

Os Chartshots oferecem uma forma rápida de criar capturas de ecrã de gráficos de negociação. Se criar um Chartshot manualmente através da barra de ferramentas do cTrader, a captura de ecrã é guardada na sua máquina local, além de ser automaticamente carregada para um portal especial que oferece várias formas de partilhá-la (por exemplo, através de código HTML incorporável).

Por sua vez, a nossa API permite fazer Chartshots automaticamente. Em contraste com os Chartshots regulares, os Chartshots feitos por algoritmos cTrader não são guardados em nenhum lugar por predefinição. Em vez disso, esses Chartshots são retornados como matrizes de bytes que você pode guardar onde quiser, especificando uma ação adicional no código.

O método byte[] TakeChartshot() funciona da seguinte forma:

  • byte[] TakeChartshot(). Tira um Chartshot do gráfico no qual o algoritmo está a ser executado e retorna-o como uma matriz de bytes.

Note que o método só funciona se um gráfico estiver visível. Para permitir verificar facilmente a visibilidade do gráfico, a interface Chart inclui a propriedade IsVisible. É igual a true para um gráfico visível e false para um invisível.

Chartshots em testes de verificação e otimização

  • Na otimização e nos testes de verificação não visuais, o método TakeChartshot() sempre retorna null e invoca o manipulador OnException() se você o tiver especificado.
  • Nos testes de verificação em modo visual, o método funciona conforme pretendido.

Criar um cBot de exemplo

Para demonstrar como funciona a captura de Chartshots, criaremos um cBot simples que fará um chartshot do gráfico atual e o guardará no sistema de ficheiros da sua máquina local.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Robots
{
    [Robot(AccessRights = AccessRights.FullAccess)]
    public class ChartshotTest : Robot
    {
        protected override void OnStart()
        {
            if (Chart.IsActive)
            {
                var chartshot = Chart.TakeChartshot();

                File.WriteAllBytes(@"D://examplePath/chartshot.png", chartshot);

            }
        }
    }
}

No início, o ficheiro .PNG contendo o chartshot do gráfico ao qual anexámos a instância do cBot será adicionado a D://examplePath/.

Resumo

O método TakeChartshot() permite que os algoritmos cTrader façam Chartshots facilmente partilháveis, tornando-o essencial para qualquer pessoa que queira partilhar informações com outros traders ou acompanhar como as suas soluções automatizadas funcionam em resposta a certas condições. Este método também é utilizável em testes de verificação visuais, permitindo-lhe facilmente combinar as ações dos seus cBots com eventos que ocorrem nos gráficos.