Przejdź do treści

Metoda Chartshot

Ten przewodnik wyjaśnia, jak używać metody TakeChartshot() podczas tworzenia algorytmów cTrader. Jeśli chcesz szybko zacząć, po prostu przeczytaj nasze jednominutowe podsumowanie poniżej.

Metody Chartshot w jedną minutę!

  • Metoda TakeChartshot() pozwala algorytmom cTrader wykonywać Chartshoty wykresów, na których działają, ale tylko wtedy, gdy ten wykres jest widoczny.
  • Chartshoty to świetne narzędzie do komunikacji z innymi traderami i dzielenia się analizą techniczną. Dzięki metodzie TakeChartshot() proces ten staje się znacznie łatwiejszy.
  • Metoda TakeChartshot() zwraca tablicę bajtów, co oznacza, że możesz łatwo udostępniać Chartshoty jako pliki .PNG. Możesz również udostępnić Chartshot w Internecie, korzystając z funkcji dostępu do sieci.
  • Metoda TakeChartshot() jest niezbędna, jeśli chcesz tworzyć Chartshoty za każdym razem, gdy twoje algorytmy coś robią (na przykład gdy cBot składa zlecenie). Ta funkcja zapewnia świetną pomoc wizualną dla każdego, kto chce ocenić, jak działają jego rozwiązania, bez konieczności obserwowania wykresu 24/7.

Używanie metody TakeChartshot()

Chartshoty oferują sposób na szybkie tworzenie zrzutów ekranu wykresów handlowych. Jeśli tworzysz Chartshot ręcznie za pomocą paska narzędzi cTrader, zrzut ekranu jest zapisywany na twoim komputerze lokalnym, a dodatkowo jest automatycznie przesyłany do specjalnego portalu, który oferuje kilka sposobów jego udostępniania (na przykład za pomocą kodu HTML do osadzania).

Z kolei nasze API pozwala na automatyczne tworzenie Chartshotów. W przeciwieństwie do zwykłych Chartshotów, Chartshoty tworzone przez algorytmy cTrader nie są domyślnie nigdzie zapisywane. Zamiast tego takie Chartshoty są zwracane jako tablice bajtów, które możesz swobodnie zapisać w dowolnym miejscu, określając dodatkową akcję w kodzie.

Metoda byte[] TakeChartshot() działa w następujący sposób:

  • byte[] TakeChartshot(). Wykonuje Chartshot wykresu, na którym działa algorytm i zwraca go jako tablicę bajtów.

Należy pamiętać, że metoda działa tylko wtedy, gdy wykres jest widoczny. Aby umożliwić łatwe sprawdzanie widoczności wykresu, interfejs Chart zawiera właściwość IsVisible. Jest ona równa true dla widocznego wykresu i false dla niewidocznego.

Chartshoty w backtestingu i optymalizacji

  • W optymalizacji i backtestingu niewizualnym metoda TakeChartshot() zawsze zwraca null i wywołuje procedurę obsługi OnException(), jeśli ją określiłeś.
  • W backtestingu w trybie wizualnym metoda działa zgodnie z przeznaczeniem.

Utwórz przykładowego cBota

Aby zademonstrować, jak działa wykonywanie Chartshotów, utworzymy prostego cBota, który wykona chartshot bieżącego wykresu i zapisze go w systemie plików twojego komputera lokalnego.

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

            }
        }
    }
}

Po uruchomieniu plik .PNG zawierający chartshot wykresu, do którego dołączyliśmy instancję cBota, zostanie dodany do D://examplePath/.

Podsumowanie

Metoda TakeChartshot() pozwala algorytmom cTrader tworzyć łatwe do udostępnienia Chartshoty, co czyni ją niezbędną dla każdego, kto chce dzielić się informacjami z innymi traderami lub śledzić, jak ich zautomatyzowane rozwiązania działają w odpowiedzi na określone warunki. Ta metoda jest również użyteczna w wizualnym backtestingu, pozwalając łatwo dopasować działania twoich cBotów do zdarzeń występujących na wykresach.