indicator-catalog

Indicator catalog development

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "indicator-catalog" with this command: npx skills add daveskender/stock.indicators/daveskender-stock-indicators-indicator-catalog

Indicator catalog development

File

src/{category}/{Indicator}/{Indicator}.Catalog.cs

Builder pattern

public static partial class Ema { /// <summary> /// EMA Common Base Listing /// </summary> internal static readonly IndicatorListing CommonListing = new CatalogListingBuilder() .WithName("Exponential Moving Average") .WithId("EMA") .WithCategory(Category.MovingAverage) .AddParameter<int>("lookbackPeriods", "Lookback Period", description: "Number of periods for the EMA calculation", isRequired: true, defaultValue: 20, minimum: 2, maximum: 250) .AddResult("Ema", "EMA", ResultType.Default, isReusable: true) .Build();

/// &#x3C;summary>
/// EMA Series Listing
/// &#x3C;/summary>
internal static readonly IndicatorListing SeriesListing =
    new CatalogListingBuilder(CommonListing)
        .WithStyle(Style.Series)
        .WithMethodName("ToEma")
        .Build();

/// &#x3C;summary>
/// EMA Stream Listing
/// &#x3C;/summary>
internal static readonly IndicatorListing StreamListing =
    new CatalogListingBuilder(CommonListing)
        .WithStyle(Style.Stream)
        .WithMethodName("ToEmaHub")
        .Build();

/// &#x3C;summary>
/// EMA Buffer Listing
/// &#x3C;/summary>
internal static readonly IndicatorListing BufferListing =
    new CatalogListingBuilder(CommonListing)
        .WithStyle(Style.Buffer)
        .WithMethodName("ToEmaList")
        .Build();

}

Method naming

Style Pattern Example

Series To{Name}

ToEma

Stream To{Name}Hub

ToEmaHub

Buffer To{Name}List

ToEmaList

.WithMethodName() must be in style-specific listings, NOT in CommonListing .

Parameter patterns

  • AddParameter<T>() — int, double, bool

  • AddEnumParameter<T>() — enum types

  • AddDateParameter() — DateTime

  • AddSeriesParameter() — IReadOnlyList<T> where T : IReusable

  • minimum and maximum required for all numeric parameters

Result patterns

  • dataName must match property name in Models file exactly

  • isReusable: true only for the property mapping to IReusable.Value

  • ISeries models: all results must have isReusable: false

  • Exactly one isReusable: true per IReusable indicator

Categories

Category Examples

CandlestickPattern

Doji, Marubozu

MovingAverage

EMA, SMA, HMA, TEMA, WMA, DEMA

Oscillator

RSI, Stochastic, MACD, CCI, BOP, CMO, Chop, DPO

PriceChannel

Bollinger Bands, Keltner, Donchian, VWAP

PriceCharacteristic

ATR, Beta, Standard Deviation, True Range

PricePattern

Fractal, Pivot Points

PriceTransform

Quote Part, ZigZag

PriceTrend

ADX, Aroon, Alligator, AtrStop, SuperTrend, Vortex

StopAndReverse

Chandelier, Parabolic SAR, Volatility Stop

VolumeBased

OBV, Chaikin Money Flow, Chaikin Oscillator

Registration

src/_common/Catalog/Catalog.Listings.cs , PopulateCatalog() — alphabetical order:

_catalog.Add(Ema.SeriesListing); _catalog.Add(Ema.StreamListing); _catalog.Add(Ema.BufferListing);

Prohibited

  • .WithMethodName() in CommonListing

  • Wrong indicator method name

  • isReusable: true for ISeries models

  • Multiple isReusable: true results per indicator

Testing

tests/indicators/{folder}/{Indicator}/{Indicator}.Catalog.Tests.cs :

[TestClass] public class EmaCatalogTests : TestBase { [TestMethod] public void EmaSeriesListing() { var listing = Ema.SeriesListing; listing.Name.Should().Be("Exponential Moving Average"); listing.Style.Should().Be(Style.Series); listing.MethodName.Should().Be("ToEma"); } }

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

code-completion

No summary provided by upstream source.

Repository SourceNeeds Review
General

indicator-buffer

No summary provided by upstream source.

Repository SourceNeeds Review
General

testing-standards

No summary provided by upstream source.

Repository SourceNeeds Review
General

performance-testing

No summary provided by upstream source.

Repository SourceNeeds Review