Faits :
A.
Le 28 février 2017, X._, ressortissante grecque née en 1925, a déposé une plainte pénale contre A._ pour escroquerie et toute autre infraction.
Elle a expliqué qu'elle et sa soeur avaient confié en 1997 la gestion de leur portefeuille, en Suisse, à A._. En 2010, elles avaient signé trois mandats de gestion en faveur de la société C._ SA, dont l'administrateur était B._; A._ continuait à gérer leurs avoirs. Les deux soeurs cherchaient à assurer la conservation de leur patrimoine. En 2015, après le décès de sa soeur, X._ a toutefois appris que la gestion de ses portefeuilles s'était soldée par des résultats catastrophiques. Elle reprochait à A._ d'avoir entrepris la très large majorité des investissements dans le secteur minier au Canada, avec tous les risques que cela impliquait, notamment de change et de très forte volatilité du secteur. En outre, A._ avait investi dans des sociétés dont il était l'administrateur et un actionnaire important.
B.
Par ordonnance du 10 avril 2018, le Ministère public du canton de Genève a ordonné le classement de la procédure contre B._ et A._. Il a expliqué que, entre 1997 et 2014, X._ avait vu son patrimoine augmenter de 220'873 USD, ce qui excluait toute infraction financière.
C.
Par arrêt du 24 octobre 2018, la Chambre pénale de recours de la Cour de justice genevoise a rejeté le recours formé par X._.
D.
Contre ce dernier arrêt, X._ dépose un recours en matière pénale devant le Tribunal fédéral. Elle conclut, principalement, à l'annulation de l'arrêt attaqué et au renvoi de la cause au Ministère public genevois pour qu'il procède à la mise en accusation de B._ et de A._. Subsidiairement, elle demande l'annulation de l'arrêt attaqué et le renvoi de la cause au Ministère public genevois pour qu'il reprenne l'instruction, en particulier qu'il mette en oeuvre une expertise financière sur l'existence et l'étendue du dommage. Plus subsidiairement, elle sollicite l'annulation de l'arrêt attaqué et le renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants.
Invités à se déterminer, le Ministère public genevois, A._ et B._ ont déposé des observations. La recourante a renoncé à répliquer.

Considérant en droit :
1.
Le Tribunal fédéral examine d'office et librement la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 1 p. 358).
Selon l'art. 81 al. 1 let. a et b ch. 5 LTF, la partie plaignante qui a participé à la procédure de dernière instance cantonale est habilitée à recourir au Tribunal fédéral, si la décision attaquée peut avoir des effets sur le jugement de ses prétentions civiles. Constituent des prétentions civiles celles qui sont fondées sur le droit civil et doivent en conséquence être déduites ordinairement devant les tribunaux civils. Il s'agit principalement des prétentions en réparation du dommage et du tort moral au sens des <ref-law>.
Selon l'<ref-law>, il incombe au recourant d'alléguer les faits qu'il considère comme propres à fonder sa qualité pour recourir. Lorsque le recours est dirigé contre une décision de non-entrée en matière ou de classement de l'action pénale, la partie plaignante n'a pas nécessairement déjà pris des conclusions civiles. Quand bien même la partie plaignante aurait déjà déclaré des conclusions civiles (cf. <ref-law>), il n'en reste pas moins que le procureur qui refuse d'entrer en matière ou prononce un classement n'a pas à statuer sur l'aspect civil (cf. <ref-law>). Dans tous les cas, il incombe par conséquent à la partie plaignante d'expliquer dans son mémoire au Tribunal fédéral quelles prétentions civiles elle entend faire valoir contre l'intimé. Comme il n'appartient pas à la partie plaignante de se substituer au ministère public ou d'assouvir une soif de vengeance, la jurisprudence entend se montrer restrictive et stricte, de sorte que le Tribunal fédéral n'entre en matière que s'il ressort de façon suffisamment précise de la motivation du recours que les conditions précitées sont réalisées, à moins que l'on puisse le déduire directement et sans ambiguïté compte tenu notamment de la nature de l'infraction alléguée (<ref-ruling> consid. 1.1 p. 4 s).
En l'espèce, la recourante demande, à titre de prétention civile, l'indemnisation du dommage subi du fait de la gestion déloyale, en particulier des opérations de placement effectuées en violation des devoirs de gestion. Elle fait valoir que son patrimoine aurait subi une diminution de l'actif entre 1997 et 2014 de l'ordre de 1'362'578 USD (mémoire de recours n° 45). Les conditions posées par l'<ref-law> sont dès lors réalisées, de sorte que la recourante revêt la qualité pour recourir.
2.
Dénonçant la violation de son droit d'être entendue et se plaignant d'un déni de justice formel, la recourante fait valoir que la cour cantonale n'a pas traité un grief qu'elle a soulevé dans son recours cantonal à l'encontre de l'ordonnance de classement.
2.1. Commet un déni de justice formel et viole par conséquent l'art. 29 al. 1 Cst. l'autorité qui ne statue pas ou n'entre pas en matière sur un recours ou un grief qui lui est soumis dans les formes et délais légaux, alors qu'elle était compétente pour le faire (arrêt 6B_118/2009 du 20 décembre 2011 consid. 3.2 non publié in <ref-ruling>; <ref-ruling> consid. 2.1 p. 9; <ref-ruling> consid. 2.3 p. 232).
2.2. Dans son recours cantonal, la recourante reprochait au ministère public d'avoir procédé à une constatation incomplète ou erronée des faits en retenant que l'entrée de 449'750 titres D._ pour une valeur de 1'604'266 USD le 9 juillet 2008 résultait du retour d'un ancien placement effectué au Canada sous la forme d'un transfert d'argent (recours cantonal p. 11 ss). Pour la recourante, ce transfert de 30'009.99 CAD était un apport supplémentaire de fonds sous gestion dont il fallait tenir compte dans l'établissement du dommage. La recourante expliquait que, pour le ministère public, le patrimoine de la recourante n'avait en conséquence subi aucune diminution de l'actif, mais une augmentation de l'ordre de 220'873 USD, alors que, si l'on suivait sa conception, son patrimoine avait subi une diminution de l'actif entre 1997 et 2014 de l'ordre de 1'362'578 USD. Le grief soulevé par la recourante était suffisamment motivé. Il était en outre déterminant pour l'issue du litige, dès lors que le ministère public fondait son ordonnance de classement sur l'absence de dommage subi par la recourante.
2.3. Dans la partie " En droit " de son arrêt, la cour cantonale a examiné le grief de violation du droit d'être entendu (arrêt attaqué, consid. 2 p. 12), le grief de violation de l'<ref-law> (arrêt attaqué, consid. 3 p. 13) et brièvement le grief de violation du principe in dubio pro duriore (arrêt attaqué, consid. 3 p. 13).
En revanche, elle n'a rien dit sur le grief de constatation incomplète ou erronée des faits. Elle s'est bornée à rappeler dans la partie " En fait " la position adoptée par le ministère public (arrêt attaqué consid. D.b p. 11), ainsi que la position défendue par la recourante (arrêt attaqué consid. D.a p. 10 s.). Elle n'a en revanche pas indiqué la position qu'elle a considéré comme établie au vu des auditions des parties et des témoins, ainsi que des pièces versées à la procédure. Au considérant 3 de la partie " En droit ", elle s'est contentée d'exposer, sans autres explications, que " le patrimoine de la recourante (et de sa soeur) confié à la gestion des mis en cause en 1997 ne s'était pas appauvri au 31 décembre 2014" et que " en tenant compte des prélèvements effectués, il avait même augmenté " (arrêt attaqué p. 15).
Selon les intimés, la cour cantonale aurait traité du grief de constatation incomplète ou erronée des faits dans la partie " En fait " de son arrêt au considérant l. A ce considérant, elle a exposé que " le Procureur a requis de la banque E._ la documentation relative à l'entrée de titres, en USD 1'781'718, le 9 juillet 2008, sur l'un des comptes de X._. Selon les documents fournis, il s'était agi de la contrevaleur de titres de D._ Corp. " (arrêt attaqué p. 10). Par ce passage, qui figure dans la partie " En fait " de l'arrêt, la cour cantonale n'a pas apprécié les moyens de preuve relatifs à cette entrée de titres, mais s'est bornée à reprendre la position du ministère public.
2.4. En définitive, il faut admettre que la cour cantonale n'a pas traité du grief de constatation incomplète ou erronée des faits relatif au calcul du dommage global, bien que celui-ci ait été déterminant pour l'issue du litige. La cour cantonale a donc commis un déni de justice formel. Le recours doit dès lors être admis, l'arrêt attaqué annulé et la cause renvoyée à la cour cantonale pour qu'elle se prononce sur ce grief. Vu l'issue du recours, il n'y a pas lieu de traiter les autres griefs, notamment ceux tirés de l'arbitraire dans l'établissement des faits (relatif à l'établissement du dommage) et de la violation de l'<ref-law> (fausse conception du dommage).
3.
La recourante, qui obtient gain de cause, ne supportera pas de frais judiciaires (<ref-law>). Elle peut prétendre à une indemnité de dépens, à la charge, d'une part, du canton de Genève et, d'autre part, des intimés, solidairement entre eux (art. 68 al. 1 et 2 LTF). Les intimés, qui succombent, supporteront solidairement une partie des frais judiciaires, le canton de Genève n'ayant pas à en supporter (art. 66 al. 1 et 4 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt attaqué est annulé et la cause renvoyée à la cour cantonale pour nouvelle décision.
2.
Une partie des frais judiciaires, arrêtée à 1500 fr., est mise à la charge des intimés A._ et B._, solidairement entre eux.
3.
Une indemnité de 3'000 fr., à verser à la recourante à titre de dépens, est mise pour moitié à la charge du canton de Genève et pour moitié à la charge des intimés A._ et B._, solidairement entre eux.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 12 juin 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Kistler Vianin