コンテンツにスキップ

チャートショットメソッド

このユーザーガイドでは、cTrader アルゴを作成する際に TakeChartshot() メソッドを使用する方法を説明します。 すぐに始めたい場合は、以下の1分間の概要をお読みください。

1分でわかるチャートショットメソッド!

  • TakeChartshot() メソッドにより、cTrader アルゴは実行中のチャートのチャートショットを撮影できますが、チャートが表示されている場合のみです。
  • チャートショットは他のトレーダーとコミュニケーションを取り、テクニカル分析を共有するための優れたツールです。 TakeChartshot() メソッドを使用すると、このプロセスが大幅に簡単になります。
  • TakeChartshot() メソッドはバイト配列を返すため、チャートショットを .PNG ファイルとして簡単に共有できます。 また、ネットワークアクセス機能を使用してインターネット上でチャートショットを共有することもできます。
  • TakeChartshot() メソッドは、アルゴが何かを行うたびに(例えば cBot が注文を出すときなど)チャートショットを作成したい場合に不可欠です。 この機能は、24時間チャートを監視することなく、自分のソリューションがどのように機能しているかを評価したい人にとって優れた視覚的補助を提供します。

TakeChartshot() メソッドの使用

チャートショットは、取引チャートのスクリーンショットを素早く作成する方法を提供します。 cTrader ツールバーを介して手動でチャートショットを作成すると、スクリーンショットはローカルマシンに保存され、自動的に特別なポータルにアップロードされ、いくつかの方法で共有できます(例えば、埋め込み可能な HTML コードを介して)。

一方、API を使用すると、チャートショットを自動的に作成できます。 通常のチャートショットとは異なり、cTrader アルゴによって作成されたチャートショットはデフォルトではどこにも保存されません。 代わりに、そのようなチャートショットはバイト配列として返され、コード内で追加のアクションを指定することで自由に保存できます。

byte[] TakeChartshot() メソッドは次のように動作します:

  • byte[] TakeChartshot(). アルゴリズムが実行されているチャートのチャートショットを撮影し、バイト配列として返します。

このメソッドは、チャートが表示されている場合にのみ機能することに注意してください。 チャートの可視性を簡単にチェックできるようにするために、Chart インターフェースには IsVisible プロパティが含まれています。 これは、表示されているチャートの場合は true、非表示のチャートの場合は false です。

バックテストと最適化におけるチャートショット

  • 最適化および非視覚的バックテストでは、TakeChartshot() メソッドは常に null を返し、指定した場合には OnException() ハンドラーを呼び出します。
  • 視覚モードのバックテストでは、メソッドは意図した通りに動作します。

例の cBot を作成する

チャートショットの撮影がどのように機能するかを示すために、現在のチャートのチャートショットを作成し、ローカルマシンのファイルシステムに保存する簡単な 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 インスタンスをアタッチしたチャートのチャートショットを含む .PNG ファイルが D://examplePath/ に追加されます。

概要

TakeChartshot() メソッドにより、cTrader アルゴは簡単に共有可能なチャートショットを作成できるため、他のトレーダーと情報を共有したり、特定の条件に対する自動化ソリューションのパフォーマンスを追跡したりする人にとって不可欠です。 このメソッドは視覚的バックテストでも使用可能で、cBot のアクションをチャート上で発生するイベントと簡単に一致させることができます。