Перейти к содержанию

Метод Chartshot

Это руководство объясняет, как использовать метод TakeChartshot() при создании алгоритмов cTrader. Если вы хотите быстро начать, просто прочитайте наше краткое изложение ниже.

Методы Chartshot за одну минуту!

  • Метод TakeChartshot() позволяет алгоритмам cTrader делать Чартшоты графиков, на которых они работают, но только если этот график видим.
  • Чартшоты — отличный инструмент для общения с другими трейдерами и обмена техническим анализом. С методом TakeChartshot() этот процесс становится намного проще.
  • Метод TakeChartshot() возвращает массив байтов, что означает, что вы можете легко делиться Чартшотами в виде файлов .PNG. Вы также можете поделиться Чартшотом в Интернете, используя функцию сетевого доступа.
  • Метод TakeChartshot() необходим, если вы хотите делать Чартшоты всякий раз, когда ваши алгоритмы что-то делают (например, когда сиБот размещает ордер). Эта функция обеспечивает отличную визуальную помощь для всех, кто хочет оценить, как работают их решения, не следя за графиком 24/7.

Использование метода TakeChartshot()

Чартшоты предлагают способ быстрого создания скриншотов торговых графиков. Если вы создаете Чартшот вручную через панель инструментов cTrader, скриншот сохраняется на вашем локальном компьютере, а также автоматически загружается на специальный портал, который предлагает несколько способов поделиться им (например, через встраиваемый HTML-код).

В свою очередь, наш API позволяет делать Чартшоты автоматически. В отличие от обычных Чартшотов, Чартшоты, сделанные алгоритмами cTrader, по умолчанию нигде не сохраняются. Вместо этого такие Чартшоты возвращаются в виде массивов байтов, которые вы можете сохранить где угодно, указав дополнительное действие в коде.

Метод byte[] TakeChartshot() работает следующим образом:

  • byte[] TakeChartshot(). Делает Чартшот графика, на котором работает алгоритм, и возвращает его в виде массива байтов.

Обратите внимание, что метод работает только в том случае, если график видим. Для удобной проверки видимости графика интерфейс Chart включает свойство IsVisible. Оно равно true для видимого графика и false для невидимого.

Чартшоты в бэктестинге и оптимизации

  • При оптимизации и невизуальном бэктестинге метод TakeChartshot() всегда возвращает null и вызывает обработчик OnException(), если вы его указали.
  • В визуальном режиме бэктестинга метод работает как задумано.

Создайте пример сиБота

Чтобы продемонстрировать, как работает создание Чартшотов, мы создадим простого сиБота, который сделает чартшот текущего графика и сохранит его в файловой системе вашего локального компьютера.

 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);

            }
        }
    }
}

При запуске файл .PNG, содержащий чартшот графика, к которому мы прикрепили экземпляр сиБота, будет добавлен в D://examplePath/.

Обзор

Метод TakeChartshot() позволяет алгоритмам cTrader делать легко распространяемые Чартшоты, что делает его незаменимым для всех, кто хочет делиться информацией с другими трейдерами или отслеживать, как их автоматизированные решения работают в ответ на определенные условия. Этот метод также можно использовать в визуальном бэктестинге, что позволяет легко сопоставлять действия ваших сиБотов с событиями, происходящими на графиках.