Ciao a tutti,
i dati che descrivono i movimenti del prezzo delle azioni sono creati dal prezzo di apertura / chiusura e dal prezzo massimo / minimo. Esiste un modo per creare un box plot (grafico a candele) in JMP con un corpo reale dal prezzo di apertura e di chiusura e un'ombra superiore e inferiore con valori rispettivamente nei prezzi massimo (alto) e minimo (basso), come nell'immagine allegata o è lì modo migliore per farlo? Il tradizionale Box Plot l'elemento, tuttavia, mostra box plot dei valori anomali o quantili e fornisce una vista compatta di una distribuzione di valori. Ho allegato una tabella dati di esempio in cui sono forniti diversi timestamp e valori di prezzo (minimo, aperto, chiuso e alto). Apprezzerei suggerimenti e suggerimenti.

(fonte: Wikipedia)
I migliori saluti
Penso che questo sia il meglio che JMP può fare senza lo scripting

Ma con un po 'di sforzo, si potrebbe facilmente scrivere un po' di JSL che creerebbe le trame di Candlestick.
Sì, come sottolinea Jim, Graph Builder può farlo facilmente. Man mano che si ottengono più dati, tuttavia, si potrebbe prendere in considerazione l'IR (grafici a intervallo mobile individuale) in quanto forniscono informazioni sulla coerenza / stabilità delle metriche nel tempo.
Ho avuto un po 'più di tempo per esaminare questo aspetto e penso che la soluzione semplice di seguito potrebbe essere una soluzione praticabile per te.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Stock Prices.jmp" );
dt:open << label;
dt:close << label;
gb = dt << Graph Builder(
Size( 1289, 456 ),
Show Control Panel( 0 ),
Variables( X( :Date ), Y( :High ), Y( :Low, Position( 1 ) ) ),
Elements( Bar( X, Y( 1 ), Y( 2 ), Legend( 10 ), Bar Style( "Interval" ) ) ),
SendToReport(
Dispatch(
{},
"Date",
ScaleBox,
{ Interval( "Day" ), Inc( 1 ),
Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
10,
Properties( 0, {Line Width( 2 )}, Item ID( "High..Low", 1 ) )
)}
)
)
);
// Add the boxes to the chart
Report( gb )[framebox( 1 )] << add graphics script(
halfDayincr = In Days( 1 ) / 2 * .8;
days = (Col Max( :Date ) - Col Min( :Date )) / In Days( 1 );
Pen Color( black );
Pen Size( 2 );
For( i = 1, i <= N Rows( dt ), i++,
If( :Open[i] <= :close[i],
Fill Color( light green );
,
Fill Color( light red );
);
Rect( :date[i] - halfDayincr, Max( :open[i], :close[i] ), :date[i] + halfDayincr, Min( :open[i], :close[i] ), 1 );
Rect( :date[i] - halfDayincr, Max( :open[i], :close[i] ), :date[i] + halfDayincr, Min( :open[i], :close[i] ), 0 );
);
);