カスタムインジケーター

作成したカスタムインジケーターをローカルリファレンスライブラリに追加することができ、これにより他のカスタムインジケーターで再利用することができます。

カスタムインジケーターを参照するには、以下の手順に従ってください。

  • コードエディタウィンドウの上部にある ‘リファレンスの管理‘ ボタンをクリックします。

画像タイトル

  • リファレンス管理者‘ ウィンドウの ‘インジケーター‘ セクションで、必要なインジケーターを選択し、’適用‘ をクリックします。検索バーを使って必要なインジケーターを見つけることができます。

画像タイトル

参照されたカスタムインジケーターは、Initialize() メソッド内でネストされたインジケーターと同様に定義されますが、構文は若干異なります。

具体的には、カスタムインジケーターの名前は GetIndicator() ディレクティブの後に角括弧で囲む必要があります。ネストされたインジケーターと同様に、参照されたインジケーターのパラメータは以下のスニペットのように括弧内に記述します。

1
sma = Indicators.GetIndicator(Source, SmaPeriod);

GetIndicator() ディレクティブは、以下のようにインジケーター内で統合できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC)]
    public class SampleReferenceSMA : Indicator
    {
        [Parameter("Source")]
        public DataSeries Source { get; set; }

        [Parameter(DefaultValue = 14)]
        public int SmaPeriod { get; set; }

        [Output("Referenced SMA Output")]
        public IndicatorDataSeries refSMA { get; set; }

        private SampleSMA sma;

        protected override void Initialize()
        {
            sma = Indicators.GetIndicator(Source, SmaPeriod);
        }

        public override void Calculate(int index)
        {
            refSMA[index] = sma.Result[index];
        }
    }

代わりに、cTraderインジケーター/cBotプロジェクトファイルからインジケータープロジェクトファイルを参照することもできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="cTrader.Automate" Version="1.*" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\..\Indicators\Another Indicator\Another Indicator\Another Indicator.csproj" />
  </ItemGroup>
</Project>

ただし、推奨される方法は ‘リファレンス管理者‘ ウィンドウを使用することです。

目次

このページについて