Guide · ATAS

Write an ATAS indicator yourself or hire a developer?

ATAS indicators are C# classes. If you can program, you can write them yourself. Here is what you need, where it gets stuck in practice, and when a developer pays off.

In short

  • Do it yourself if you know C#, have time to experiment and want to implement simple logic on price or volume.
  • Hire a developer for order flow logic, for strategies that place real orders, and when the indicator has to run on other machines with other ATAS versions or time zones.
  • Either way, the work starts with rules written down so precisely that two people understand the same thing, not with code.

What you need to do it yourself

An ATAS indicator is a C# class that inherits from Indicator. Strategies inherit from ChartStrategy. ATAS calls OnCalculate for every candle. There the code reads the candle with GetCandle and writes results into data series that ATAS draws on the chart.

  • A Windows machine with ATAS. ATAS runs on Windows only; on a Mac you need a virtual machine.
  • Visual Studio (the free Community edition is enough) with the matching .NET SDK.
  • References to the ATAS libraries from the program folder, above all ATAS.Indicators.dll.
  • Working knowledge of C# and object-oriented programming.
  • The finished DLL goes into Documents\ATAS\Indicators (strategies into Strategies). If it does not appear, restart ATAS.

ATAS provides developer documentation with examples. For a moving average or a simple signal on closing prices, that is enough with some patience.

Pitfalls from real projects

I have actually run into each of these in client work. None of them is flagged as a warning in the documentation.

The wrong .NET version

ATAS 7 runs on .NET 8, newer ATAS 8 versions on .NET 10. A DLL built for the wrong target framework does not load, often without a clear error: the indicator simply does not show up. On top of that, a DLL built against a newer ATAS version will not load on an older one. That is why I always build against the oldest version the client uses.

Time zones

Since ATAS 8, candles carry the data feed time, not the computer clock. An indicator that should act at 9:30 works on the developer’s machine and stays silent for a client in another time zone. Market Replay hides the bug because it runs through every time of day. The fix: use the computer clock as reference, or offer the time offset as a setting.

Saved settings

ATAS saves all settings of an indicator with the chart. If a new version changes a default, the user keeps seeing the old value and wonders why the change does not work. The fix: rename the setting, or remove the indicator once and add it again.

Crash in the settings window

A shared abstract base class with public settings, or special characters in display names, has crashed ATAS for me as soon as the indicator was merely selected. Since then, every indicator inherits directly from Indicator, shared logic lives in helper classes, and display names avoid special characters.

Unreadable chart label

ATAS appends every setting marked as a parameter to the name at the top left of the chart. With ten settings the line becomes unreadable. A short display name and your own ToString method fix it.

Order flow: the real reason for ATAS

People choose ATAS mostly for the cluster data: volume and delta at each price inside the candle. That makes absorption, imbalances and volume profiles possible. The hard part is rarely the code, it is the definition. What exactly is absorption? How much volume, across how many price levels, in what time? So before I write a line of code, I ask for examples on the chart and write the rules back for confirmation.

Whether ATAS or NinjaTrader suits your strategy better is covered in ATAS vs NinjaTrader.

When a developer is worth it

  • Strategies with real orders: OCO, stop, partial targets, break-even. A bug here costs money, not just time.
  • Order flow logic: cluster data, delta, absorption, volume profiles.
  • Distribution: the indicator has to run for other traders, with other ATAS versions, time zones or a licence lock.
  • Time: when learning it would cost you more evenings than the project is worth to you.

For reference: my ATAS projects so far were fixed prices between $265 and $350 for indicators and strategies, and $150 to $165 for extensions such as a licence lock. The full list is in the guide How much does a trading bot cost?.

How a project runs with me

  1. You describe the rules and show examples on the chart.
  2. I write the rules back and you confirm them.
  3. You get a test version as a DLL.
  4. We compare it in Market Replay and on the live chart.
  5. Delivery including source code.

Notice: I write software to your specification. This is not investment advice and not a signal service. You alone decide on strategy, sizing and risk. Trading futures, CFDs, forex and crypto is risky and can lead to the loss of your entire capital. Backtests and past results say nothing about future results.

FAQ

Frequently asked questions

Which language are ATAS indicators written in?

C# on .NET. Indicators inherit from the Indicator class, strategies from ChartStrategy.

Does ATAS run on a Mac?

No, ATAS runs on Windows only. On a Mac you need a virtual machine.

Why does my indicator not show up in ATAS?

The most common reason is the wrong target framework, or a DLL built against a newer ATAS version than the one installed. ATAS 7 uses .NET 8, newer ATAS 8 versions .NET 10.

Can a TradingView indicator be moved to ATAS?

Yes. The logic is rewritten in C# and then compared candle by candle with the original.

Do I get the source code?

Always in my projects, together with the finished DLL.