building a workflow that sends out notifications when the stock price breaks its support/resistance level

Hi, I am new to Foundry and AIP, and am trying to build a workflow that sends out notifications to me whenever the price of a stock rises/drops beyond its resistance/support level.

The data to be used in the pipeline builder includes the following:

  1. current price of the stock
  2. 8-day exponential moving average (EMA) of the stock (used as the resistance or support level)
  3. 21-day EMA of the stock (used as the resistance or support level)
  4. 55-day EMA of the stock (used as the resistance or support level)

The workflow would need to be able to:

  1. identify all the resistance and/or support levels based on the 8-day/21-day/55-day EMA data
  2. send out notifications to me whenever the current price of the stock goes above/below the nearest resistance/support level.

Would someone from the community be able to give me some guidance?

1 Like

A typical example of what you want here, is an alerting workflow.
You want to ingest data, perform some processing on it, which generate a set of alerts (e.g. resistances breaks, but it could be more complex/custom) and then generate notification for it.

You can look on your own foundry enrollement, in the “Build with AIP Examples” application, and install the “end to end alerting workflow” as a starting point.
https://build.palantir.com/platform/3a23e26c-65a5-40aa-8c10-a6ceb009df21

(you have to navigate to it on your own foundry so that you can install it, the link above is just the public website link so that you can get a look as I can’t know which URL you are using).

Of course, once you have “alerts” object, you can create an application in Foundry to display information about the alert, act on it, etc.

One choice to make here is the speed at which you want this to operate.
Usually, you would start with a batch pipeline, that will then process data every N minutes (e.g. every 10m or every hour, depends your choice when you schedule it). But it will be O(minutes).
If you want this to be live like O(seconds), you would want to use streaming ingest, and processing. You would use the same tools (Pipeline Builder, etc.).
Of course, you need to pull your data from a source that is providing a stream of data (e.g. updates every few seconds) otherwise you would have no upside.

The rest works the same (Objects, automate, notifications, apps, …). You can even swap for a stream later once you already did a first iteration with a batch pipeline ! :slight_smile:

1 Like