Hello, Trade.EntryDateTime in 5.28.1 reports date in 64 bit format instead of 32 bit expected by DateTimeToStr. Will be fixed in next beta.
Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: ozzyapeman To: [email protected] Sent: Thursday, September 03, 2009 3:26 AM Subject: [amibroker] Re: Help with converting DateTimes in CBT Really weird that it works for you, and not for me. I can't think of any other setting that could possibly affect this. And it's not just dumping to file that does not work. As a test, I can't add a datetime as a custom metric to the backtester report. The string shows up as "Invalid DateTime". If I try to add it as a number, it shows up as "0.0": EntryDate = Trade.EntryDateTime; EntryDateStr = DateTimeToStr(EntryDate); Trade.AddCustomMetric( "EntryDate" ,EntryDateStr ); Of course I know that the entry date column already exists in the backtester report. I'm just doing this as a test, after the dump to file did not work. Is this a possible bug in AB 5.28.1? I don't recall ever having any problems with DateTime conversions in previous versions, and I've done stuff like this before. --- In [email protected], "ozzyapeman" <zoopf...@...> wrote: > > Thanks, Mike. That's interesting. I had changed my PC system time format to be compatible with some VBscript programs I needed to run. That might be the culprit, although DateTime works fine within Amibroker itself. It's only when I try to dump to file that it gets screwed up. > > > > --- In [email protected], "sfclimbers" sfclimbers@ wrote: > > > > Your code works fine, as published, for me. Perhaps inconsistent environment settings between AmiBroker generating the date and whatever you're using to open the generated file (e.g. American form vs. Australian)? > > > > Mike > > > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > > > > > > Hello, > > > > > > During a backtest, I want to dump the EntryDate, ExitDate, and Profit > > > for each trade, to an external file. > > > > > > Everything works except converting the DateTimes to strings. When it is > > > dumped to file, I get "Invalid DateTime" for each of those entries. > > > > > > Can anyone spot what is wrong here? Should be pretty straightforward: > > > > > > > > > FileName = "F:\\Test CBT.csv"; > > > > > > SetCustomBacktestProc( "" ); > > > > > > if ( Status( "action" ) == actionPortfolio ) > > > { > > > bo = GetBacktesterObject(); > > > bo.Backtest( 1 ); > > > > > > for ( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() ) > > > { > > > Profit = Trade.GetProfit; > > > > > > EntryDate = Trade.EntryDateTime; > > > ExitDate = Trade.ExitDateTime; > > > > > > EntryDateStr = DateTimeToStr( EntryDate ); > > > ExitDateStr = DateTimeToStr( ExitDate ); > > > > > > fh = fopen( FileName, "a" ); > > > > > > if ( fh ) > > > { > > > fputs( EntryDateStr + "," + ExitDateStr + "," + StrFormat( > > > "%.2f", Profit ) + "," + "\n", fh ); > > > fclose( fh ); > > > } > > > } > > > > > > bo.ListTrades(); > > > } > > > > > > > > > fast = MA( Close, 5 ); > > > slow = MA( Close, 25 ); > > > Buy = Cross( fast, slow ); > > > Sell = Cross( slow, fast ); > > > Cover = Short = 0; > > > > > >
