Login Page - Create Account

Support Board


Date/Time: Fri, 27 Feb 2026 23:10:11 +0000



Footprint alert example 30x600

View Count: 169

[2026-01-11 17:15:00]
rebeccaemme - Posts: 38
Hello,
I would like to know what is the simplest way to create an alert when, on a 1-minute or 5 minute chart, the Bid volume does not exceed 30 while the Ask volume exceeds 600 (for example 30 x 600).

Is it possible to do this without using ACSIL, or a built-in study (because I don’t know how to do it)
Thank you in advance for your support.

I altready use Large Volume Trade, but to get an alert of less then 30 and more then 600 on ask I have to be more specific.
Thank you very much for help
[2026-01-12 16:18:37]
John - SC Support - Posts: 44849
Refer to the last two examples for alerts at the following link:
Study/Chart Alerts And Scanning: Alert Formula Examples

But to do this and check an entire bar creates a very long alert condition, and you may not be able to cover the entire bar (there is a limit to the number of characters that can be used in an alert condition - although we can not remember the value off hand).

In the end, it is easiest to do this using a Custom Study. Refer to the following:
ACSIL Programming Concepts: Accessing Volume at Price Data Per Bar

https://www.sierrachart.com/index.php?page=doc/SierraChartStudyAndSystemProgrammers.php
For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2026-01-13 10:06:04]
rebeccaemme - Posts: 38
Is a full day that I try to setup it and is not working. I would like to receive the allert and the bar color when bid is actually 750 and ask is 0 but is not working.


#include "sierrachart.h"

SCDLLName("VolumeAtPriceAnalysis")

SCSFExport scsf_BidAskVolumeAlert(SCStudyInterfaceRef sc)
{
// Sezione 1: Configurazione dei parametri e impostazioni predefinite
if (sc.SetDefaults)
{
sc.GraphName = "Bid-Ask Specific Volume Alert";
sc.AutoLoop = 1;
sc.GraphRegion = 0;

// Obbligatorio per accedere ai dati Volume at Price
sc.MaintainAdditionalChartData = 1;

sc.Input[0].Name = "Minimum Bid Volume";
sc.Input[0].SetInt(750);

sc.Input[1].Name = "Maximum Ask Volume";
sc.Input[1].SetInt(0);

sc.Input[2].Name = "Alert Number (1-64)";
sc.Input[2].SetInt(1);

return;
}

// Sezione 2: Elaborazione dati per la barra corrente
const int BarIndex = sc.Index;

// Accesso al numero di livelli di prezzo (ticks) nella barra
int NumLevels = sc.VolumeAtPriceForBars->GetSizeAtBarIndex(BarIndex);
if (NumLevels == 0) return;

bool ConditionMet = false;

// Iterazione attraverso tutti i livelli di prezzo della barra
for (int i = 0; i < NumLevels; i++)
{
s_VolumeAtPriceV2* p_VAP = NULL;

// Recupero dei dati Volume at Price per il livello i
if (!sc.VolumeAtPriceForBars->GetVAPElementAtIndex(BarIndex, i, &p_VAP))
continue;

// Logica di confronto bid/ask
if (p_VAP->BidVolume >= (unsigned int)sc.Input[0].GetInt() &&
p_VAP->AskVolume <= (unsigned int)sc.Input[1].GetInt())
{
ConditionMet = true;
break; // Esci dal ciclo se la condizione è soddisfatta in almeno un livello
}
}

// Sezione 3: Esecuzione Alert ed Evidenziazione
if (ConditionMet)
{
// Colora la barra sul grafico (Giallo)
sc.ColorBar[BarIndex] = RGB(255, 255, 0);

// Attivazione dell'alert configurato
s_UseControlBarAlert AlertSettings;
AlertSettings.AlertNumber = sc.Input[2].GetInt();
AlertSettings.SetInThisFunction = true;
sc.SetAlert(AlertSettings, "Soglia Bid/Ask Rilevata");
}
}
[2026-01-13 10:46:32]
rebeccaemme - Posts: 38
I have semplified with this formula
AND(BVAP(L, 0) > 750, AVAP(L, 0) = 0)
And seems that work! Thank you!

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account