The 'animation' part is easy as this script shows. But here the 'forward curve' is just a straight line, but you would need to look into how that's actually calculated:
NamesDefaultToHere(1);
// Make some data
dt = NewTable("Data", NewColumn("Value", Numeric, Continuous, Formula(RandomNormal(0,1))));
dt << addRows(10);
// Graph the data (this script was built by JMP, apart from the 'add graphics script' part)
dt << Graph Builder(
Size( 535, 467 ),
Show Control Panel( 0 ),
Variables( X( Transform Column( "Row", Formula( Row() ) ) ), Y( :Value ) ),
Elements( Line( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"Row",
ScaleBox,
{Min( 0 ), Max( 40 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Value",
ScaleBox,
{Min( 3 ), Max( -3 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
2,
Description( "Script" ),
Pen Color( "Red" );
Line Style( "Dotted" );
dt = Data Table( "Data" );
Line( {N Row( dt ), :Value[N Row( dt )]}, {40, 0} );
), Grid Line Order( 1 ), Reference Line Order( 3 )}
)
)
);
// Add some new data
for(p=11, p<=40, p++, Wait(0.1); dt << addRow(1));