Hallo zusammen,
Die Daten, die die Kursbewegungen beschreiben, werden durch den Eröffnungs- / Schlusskurs und den Max / Min-Preis erstellt. Gibt es eine Möglichkeit, in JMP ein Box-Plot (Candlestick-Diagramm) mit einem realen Körper aus dem offenen und geschlossenen Preis und einem oberen und unteren Schatten mit Werten in den Preisen max (hoch) und min (niedrig) zu erstellen, wie im beigefügten Bild oder vorhanden? besserer Weg das zu tun? Das traditionelle Box-Plot Das Element zeigt jedoch Ausreißer- oder Quantil-Box-Diagramme und bietet eine kompakte Ansicht einer Werteverteilung. Ich habe eine Beispieldatentabelle angehängt, in der mehrere Zeitstempel und Preiswerte (min, open, close und high) angegeben sind. Ich würde mich über Hinweise und Vorschläge freuen.

(Quelle: Wikipedia)
Freundliche Grüße
Ich denke, dies ist das Beste, was JMP ohne Skripte tun kann

Aber mit ein wenig Aufwand könnte man leicht eine JSL schreiben, die die Candlestick-Plots erstellen würde.
Ja, wie Jim betont, kann Graph Builder dies problemlos tun. Wenn Sie jedoch mehr Daten erhalten, sollten Sie IR (einzelne Bewegungsbereichsdiagramme) in Betracht ziehen, da diese einen Einblick in die Konsistenz / Stabilität der Metriken im Zeitverlauf bieten.
Ich hatte etwas mehr Zeit, um mich damit zu befassen, und ich denke, die folgende einfache Lösung könnte eine praktikable Lösung für Sie sein.

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 );
);
);