跳转至

图表截图方法

本用户指南解释了在创建 cTrader 算法时如何使用 TakeChartshot() 方法。 如果您急于开始,只需阅读下面我们的一分钟摘要即可。

一分钟了解图表截图方法!

  • TakeChartshot() 方法允许 cTrader 算法对其运行的图表进行图表截图,但前提是该图表可见。
  • 图表截图是与其他交易者交流和分享技术分析的绝佳工具。 使用 TakeChartshot() 方法,这个过程变得更加简单。
  • TakeChartshot() 方法返回一个字节数组,这意味着您可以轻松地将图表截图作为 .PNG 文件共享。 您还可以使用网络访问功能在互联网上分享图表截图。
  • 如果您希望在算法执行某些操作时(例如当 cBot 下单时)进行图表截图,TakeChartshot() 方法是必不可少的。 这个功能为那些想评估其解决方案表现而又不想 24/7 盯着图表的人提供了很好的视觉辅助。

使用 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 的操作与图表上发生的事件匹配起来。