콘텐츠로 이동

Chartshot 방법

이 사용자 가이드는 cTrader 알고를 생성할 때 TakeChartshot() 메서드를 사용하는 방법을 설명합니다. 시작하기를 원한다면 아래의 1분 요약을 읽어보세요.

1분 안에 Chartshot 메서드!

  • TakeChartshot() 메서드는 cTrader 알고가 실행 중인 차트의 Chartshot을 찍을 수 있게 해주지만, 해당 차트가 보이는 경우에만 가능합니다.
  • Chartshot은 다른 트레이더와 소통하고 기술적 분석을 공유하는 데 유용한 도구입니다. TakeChartshot() 메서드를 사용하면 이 과정이 훨씬 쉬워집니다.
  • TakeChartshot() 메서드는 바이트 배열을 반환하므로, Chartshot을 .PNG 파일로 쉽게 공유할 수 있습니다. 네트워크 액세스 기능을 사용하여 인터넷에 Chartshot을 공유할 수도 있습니다.
  • TakeChartshot() 메서드는 알고가 무언가를 할 때마다 (예: cBot이 주문을 할 때) Chartshot을 만들고자 하는 경우 필수적입니다. 이 기능은 24/7 차트를 주시하지 않고도 자신의 솔루션 성과를 평가하고자 하는 사람들에게 훌륭한 시각적 도움을 제공합니다.

TakeChartshot() 메서드 사용

Chartshot은 트레이딩 차트의 스크린샷을 빠르게 생성하는 방법을 제공합니다. cTrader 툴바를 통해 수동으로 Chartshot을 생성하면 스크린샷이 로컬 머신에 저장되고 자동으로 특별 포털에 업로드되어 여러 가지 방법으로 공유할 수 있습니다 (예: embeddable HTML 코드).

반면, 우리의 API는 Chartshot을 자동으로 생성할 수 있게 해줍니다. 일반 Chartshot과 달리, cTrader 알고가 만든 Chartshot은 기본적으로 어디에도 저장되지 않습니다. 대신, 이러한 Chartshot은 바이트 배열로 반환되며, 코드에 추가 작업을 지정하여 원하는 곳에 저장할 수 있습니다.

byte[] TakeChartshot() 메서드는 다음과 같이 작동합니다:

  • byte[] TakeChartshot(). 알고리즘이 실행 중인 차트의 Chartshot을 찍고 이를 바이트 배열로 반환합니다.

이 메서드는 차트가 보이는 경우에만 작동합니다. 차트 가시성을 쉽게 확인할 수 있도록 Chart 인터페이스에는 IsVisible 속성이 포함되어 있습니다. 이 속성은 보이는 차트의 경우 true, 보이지 않는 차트의 경우 false입니다.

백테스트 및 최적화에서의 Chartshots

  • 최적화 및 비시각적 백테스트에서 TakeChartshot() 메서드는 항상 null을 반환하며, 지정한 경우 OnException() 핸들러를 호출합니다.
  • 시각적 모드 백테스트에서는 이 메서드가 의도한 대로 작동합니다.

예제 cBot 생성

Chartshot을 찍는 방법을 보여주기 위해, 현재 차트의 Chartshot을 찍고 이를 로컬 머신의 파일 시스템에 저장하는 간단한 cBot을 생성하겠습니다.

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

            }
        }
    }
}

시작 시, cBot 인스턴스를 연결한 차트의 Chartshot을 포함한 .PNG 파일이 D://examplePath/에 추가됩니다.

요약

TakeChartshot() 메서드는 cTrader 알고리즘이 쉽게 공유할 수 있는 Chartshot을 만들 수 있게 해주며, 다른 트레이더와 정보를 공유하거나 특정 조건에 대한 자동화된 솔루션의 성능을 추적하려는 모든 사람에게 필수적입니다. 이 메서드는 시각적 백테스트에서도 사용할 수 있어, 차트에서 발생하는 이벤트에 맞춰 cBot의 동작을 쉽게 일치시킬 수 있습니다.