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;
  > > >
  > >
  >



  

Reply via email to