interessante la cosa.
dunque:
1)Creare un insieme di titoli che abbiano ognuno il suo valore per azione.
1a) Credo che qui non ci sia nessun problema (tabella DB e vai...)
2)Gli utenti possono acquistare azioni avendo a disposizione tot crediti.
2a)Al momento dell'acquisto fai una verifica sul CAPITALE a disposizione dell'utente, in caso disponga di capitale(tutto va a buon fine)in caso contrario(ovviamente no)
3)Ogni mattina, tramite un comando manuale, assegno in modo casuale una percentuale di guadagno (es. + 1,6% per il mibtel) positiva o negativa a tutti i titoli.
3a)Gestire le percentuali non mi sembra difficile:
$prezzo = 150;
$azione_ribasso = 30; // in percentuale naturalmente ma ci serve solo il numero.
$calcolo_ribasso= (($prezzo /100) * $azione_ribasso));
$valore_attuale = $prezzo - $rialzo;
print $valore_attuale;
// stessa cosa per il rialzo.
4)Tutte le azioni degli utenti devono aumentare o diminuire di valore(sempre in percentuale) in base a com'è andato il titolo in quella giornata; e quindi es. nel caso in cui un utente ha delle azioni che sono andate bene stamattina, se lui decide di rivednere le azioni cambiandole in crediti i suoi crediti saranno aumentati.
4a) Qui ci vedrei piu soluzioni, comunque dai la possibilità all'utente di venderle e sommi i suoi crediti a quello che ha guadagnato con la vendita delle azioni.

Ci potresti fare anche un bel grafico.!!!
Naturalmente devi "lavorare" con le date.

Spero di essere stato d'aiuto.

Ciao!