Problem writing a file New comment karp wak 2021.09.15 21:19 I want to save the deals of my optimizations in different files. To do this I wrote the following code. This works perfectly in test mode. But it doesn't work during optimization. Does anyone know how to do it correctly? Thank you very much !! #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> #include <Trade\PositionInfo.mqh> #include <Trade\DealInfo.mqh> //+------------------------------------------------------------------+ CTrade cTrade; CSymbolInfo cSymbol; CPositionInfo cPositionInfo; CDealInfo deal; int magicNumber = 1; int handler; //+------------------------------------------------------------------+ int passes = 0; double EP=0; //+------------------------------------------------------------------+ input double TP = 1000; input double SL = 1000; //+------------------------------------------------------------------+ void OnInit() { cTrade.SetExpertMagicNumber(magicNumber); } //+------------------------------------------------------------------+ void OnTick() { bool isTrading = cPositionInfo.SelectByMagic(Symbol(), magicNumber); if(!isTrading) { if(cTrade.Buy(0.01,Symbol(), cSymbol.Ask(), cSymbol.Ask()-SL*cSymbol.Point(), cSymbol.Ask()+TP*cSymbol.Point())) printf("Position open"); else printf("Position open FAILL: %i", cTrade.ResultRetcode()); } if(isTrading) { if(cTrade.PositionClose(cPositionInfo.Ticket()) && cTrade.ResultRetcode()==TRADE_RETCODE_DONE) printf("Position close"); else printf("Position close FAILL: %i", cTrade.ResultRetcode()); } } //+------------------------------------------------------------------+ void SaveDeals() { datetime end=TimeCurrent(); datetime start=0; HistorySelect(start,end); int dealsTotal = HistoryDealsTotal(); handler = FileOpen("./" + (string)passes + ".csv", FILE_CSV|FILE_READ|FILE_WRITE|FILE_ANSI|FILE_COMMON,'\t',CP_UTF8); for(int i=0; i<dealsTotal; i++) { deal.SelectByIndex(i); FileWrite ( handler,";", deal.Symbol(),";", deal.Magic(),";", deal.Time(),";", deal.Type(),";", deal.Volume(),";", deal.Commission(),";", deal.Swap(),";", deal.Profit() ); } FileClose(handler); } //+------------------------------------------------------------------+ double OnTester() { EP = TesterStatistics(STAT_EXPECTED_PAYOFF); if(EP>1) SaveDeals(); passes++; return EP; } //+------------------------------------------------------------------+ Files: WriteFileTest.mq5 6 kb EA M series, for EURJPY, based on OZfx [WARNING CLOSED!] Any newbie question, so as not to clutter up the forum. Professionals, don't go by. Can't go anywhere without you. optimization and writing of the input values file New comment
I want to save the deals of my optimizations in different files.
To do this I wrote the following code.
This works perfectly in test mode. But it doesn't work during optimization.
Does anyone know how to do it correctly?
Thank you very much !!