This variant with delayed definition seems faster:
With[{n = 20000}, EX = RandomReal[{0, 1}, n];
AX = RandomReal[{0, 1}, n];
BX = RandomReal[{0, 1}, n];
CX = RandomReal[{0, 1}, n];
DX = RandomReal[{0, 1}, n];
FX[f_, g_] := Most@FoldList[#1 + 2 (f/g)*(#2 - #1) &, EX[[1]], EX];
Manipulate[
ListLinePlot[a*(AX - b) + c*BX + d*CX + f*(DX - FX[f, g]),
Frame -> True, PlotRange -> All, ImageSize -> 1000], {{g, 5}, 5,
700, 1}, {{f, 1}, 1, 20, 0.01}, {{a, 0.}, 0, 500, 1}, {{c, 0.}, 0,
5, 0.01}, {{b, 0.}, -0.1, 0.1, 0.001}, {{d, 400.}, 400, 800, 5}]]
Check out my use of Most, which may not be what you mean.