[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] TradeIt



PureBytes Links

Trading Reference Links




You 
need to understand (try some experimentation with the buy/sell...etc columns for 
the signals) what's happening with the signals and their timing in the explorer 
vs the backtester.  From what I've been able to observe the equity "stuff" 
is accurate in that they appear to be calc'd on the actual trade dates and not 
on the "signal dates".
<FONT face=Arial color=#0000ff 
size=2> 
<FONT face=Arial color=#0000ff 
size=2>d

  
  <FONT 
  face=Tahoma size=2>-----Original Message-----From: Sidney Kaiser 
  [mailto:s9kaiser@xxxxxxxxxxx] Sent: Tuesday, April 22, 2003 1:39 
  PMTo: amibroker@xxxxxxxxxxxxxxxSubject: RE: [amibroker] 
  TradeItdingo, thanks for the code.  As for the idea 
  about using exploration results instead of backtest results.....damn, you mean 
  I have to do the work all over again in hopes that this other approach will 
  work.....  :)  Good thing it is a rainy day and I can't go bicycling 
  this afternoon.  I'll need the extra time for more coding.  Oh happy 
  days...notCheersSidAt 01:23 PM 04/22/2003 -0400, you 
  wrote:
  <FONT face=arial color=#0000ff 
    size=2>Actually, you can sorta do most of what you're 
    after: Rather than 
    do a backtest do an exploration. You'll need to experiment with it some so 
    you can see when you get the signals. For example if you have your settings 
    at delay = 1 Open and you run an exploration then you get all 
    buy/sell/short/cover signals on the day they occur (as if delay = 0). This 
    can be "fixed" by manipulating in code the  trade delay and the prices 
    to be used to mimic the backtester. <FONT face=arial 
    color=#0000ff size=2>Once you do that then the door is open as to what you 
    can include in the output: <FONT face=arial 
    color=#0000ff size=2>I've been experimenting with some of Fred's 
    code:<FONT face="Courier New, Courier" 
    size=1>Filter=1; <FONT face="Courier New, Courier" 
    size=1>/*=== This section uses Tonetti's Equity Calc To generate Stats  
    ===*/ <FONT face="Courier New, Courier" 
    size=1>BIR      = IIf(Status("BarInRange") > 0, 
    1, 0); <FONT face="Courier New, Courier" 
    size=1>BarEq    = Equity(1);CurEq    = 
    Equity();MaxEq    = 
    Highest(CurEq);LogEq    = 
    log10(CurEq); <FONT face="Courier New, Courier" 
    size=1>dBuy     = Ref(  
    Buy,-1);dSell    = Ref( Sell,-1);dShort   = 
    Ref(Short,-1);dCover   = Ref(Cover,-1);LongProfit = 
    IIf(dSell,E - ValueWhen(dBuy,E),0);ShortProfit = 
    IIf(dCover,E-ValueWhen(dShort,E),0);TotTrdes = Cum(dSell OR 
    dCover);WinningTrades = Cum((LongProfit > 0) OR (ShortProfit 
    >0));PctWinners = WinningTrades / TotTrdes; <FONT 
    face="Courier New, Courier" size=1>CurDD    = IIf(BIR, 100 * 
    (MaxEq - CurEq) / MaxEq, 0);MaxDD    = 
    Highest(CurDD);CumDD    = 
    Cum(CurDD); <FONT face="Courier New, Courier" 
    size=1>FirstBar = ValueWhen(ExRem(Buy OR Short, 0), 
    Cum(1));LastBar  = LastValue(ValueWhen(Status("LastBarInRange") 
    > 0, Cum(1)));TotBars  = 
    LastValue(Cum(1));BarNo    = ValueWhen(BIR > 0, Cum(1) 
    - FirstBar + 1);NoBars   = 
    LastValue(BarNo); <FONT face="Courier New, Courier" 
    size=1>Dates    = DateNum();Days     
    = ValueWhen(BIR > 0, IIf(Dates != Ref(Dates,-1), 1, 0));TotDays  
    = Cum(Days);BPD      = BarNo / 
    TotDays; <FONT face="Courier New, Courier" 
    size=1>CAR      = ValueWhen(BIR > 0, 100 * 
    ((CurEq / Ref(CurEq, -(BarNo - 1))) ^ (1 / (BarNo / BPD / 252)) 
    -1));Ann      = ValueWhen(BIR > 0, 100 * 
    ((CurEq / Ref(CurEq, -(252 * BPD)) - 
    1)));MAR      = ValueWhen(BIR > 0, CAR / 
    MaxDD);UI       = ValueWhen(BIR > 0, 
    sqrt(CumDD / BarNo));UPI      = (CAR - 5.4) / 
    UI;TPI      = UPI / 
    MaxDD; <FONT face="Courier New, Courier" 
    size=1>mm       = 
    LastValue(LinRegSlope(Ref(LogEq, -(TotBars - LastBar)), 
    NoBars)); <FONT face="Courier New, Courier" 
    size=1>BarsCum  = ValueWhen(BIR > 0, 
    Cum(BarNo));AvgBar   = LastValue(BarsCum) / 
    NoBars;SRDevSQ  = ValueWhen(BIR > 0, sqrt(Cum((BarNo - AvgBar) ^ 
    2)));ErrEq    = LastValue(StdErr(Ref(logEq, -(TotBars - 
    LastBar)), NoBars));KRatio   = ValueWhen(BIR > 0, mm * 
    SRDevSQ / ErrEq / sqrt(NoBars)); <FONT 
    face="Courier New, Courier" size=1>TradeEq  = IIf(Sell, (BarEq - 
    ValueWhen(Buy, BarEq)) / ValueWhen(Buy, BarEq), 0) + IIf(Cover, (BarEq - 
    ValueWhen(Short, BarEq)) / ValueWhen (Short, BarEq), 
    0);PosEq    = Cum(IIf(TradeEq > 0, TradeEq, 
    0));NegEq    = Cum(IIf(TradeEq < 0, TradeEq, 
    0));PosTrade = Cum(TradeEq > 0);NegTrade = Cum(TradeEq < 
    0);AvgPos   = PosEq / PosTrade;AvgNeg   = NegEq 
    / NegTrade;PosPct   = PosTrade / (PosTrade + 
    NegTrade);Expect   = (1 + AvgPos / abs(AvgNeg)) * PosPct - 
    1; <FONT face="Courier New, Courier" 
    size=1>PF       = 
    CurEq/NoBars/MA(C,63); <FONT face="Courier New, Courier" 
    size=1>/*=== This section adds columns to the Exploration === 
    */ <FONT face="Courier New, Courier" 
    size=1>AddColumn(Buy,"Buy",1.0);AddColumn(Sell,"Sell",1.0);AddColumn(Short,"Short",1.0);AddColumn(Cover,"Cover",1.0);AddColumn(O, 
    "Open",1.2);AddColumn(L, "Low",1.2);AddColumn(H, 
    "High",1.2);AddColumn(C, "Close",1.2); <FONT 
    face="Courier New, Courier" 
    size=1>AddColumn(CurEq,"Equity",1.2);AddColumn(Car, 
    "Car",1.2);AddColumn(Ann, 
    "Ann%",1.2);AddColumn(-CurDD,"CDD%",1.2);AddColumn(-MaxDD,"MDD%",1.2);AddColumn(MAR,"MAR",1.2);AddColumn(UI, 
    "UI",1.2);AddColumn(UPI, "UPI",1.2);AddColumn(TPI, 
    "TPI",1.2);AddColumn(Expect, "Expect",1.2);AddColumn(KRatio, 
    "KRatio",1.2);AddColumn(100*PctWinners,"%Accur",1.2);AddColumn(TotTrdes,"# 
    Trdes",1.0);AddColumn(PF,"PF",1.4); <FONT 
    face="Courier New, Courier" size=1>/* 
    ===================================   the columns below are 
    reserved for    Optimized signal levels. There   
    are a total of 10 allowed. The    ones not used should have 
    the   word "Rsvd" as the col 
    heading=================================== 
    */AddColumn(SLevel,"SLevel",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);AddColumn(0,"Rsvd",1.0);
    
      -----Original Message-----
      From: Sidney Kaiser [<A href="" 
      eudora="autourl">mailto:s9kaiser@xxxxxxxxxxx] 
      Sent: Tuesday, April 22, 2003 11:51 AM
      To: amibroker@xxxxxxxxxxxxxxx
      Cc: tj@xxxxxxxxx; com@xxxxxxx
      Subject: Re: [amibroker] TradeIt
      At 08:26 AM 04/19/2003 -0700, you wrote:
      >While we wait for TJ to design and code some portfolio testing 
      capability
      >for AB, has anyone tried some of the alternatives such as 
      TradeIt?
      >
      >Chris Kryza wrote TradeIt as a post processor for AIQ trades two 
      or three
      >years ago and I used it a few times back then.  It accepts 
      trade data in
      >CSV form so the thought occurred to me that it might be possible 
      to export
      >AB backtest data and run TradeIt on that data.
      >
      >Before I spend a bunch of time trying to get it to work I would 
      like to
      >know if someone has already looked at using TradeIt with AB trade 
      
      >data.  If so:
      >
      >1. did it work
      >
      >2. how difficult was it to adapt it
      >
      >3. were the results worth the effort involved
      TradeIT  is not the worlds greatest portfolio trader, just an 
      available 
      example that had possibilities for adaptation to AA output.
      I dug into the adaptation issue some this weekend.  The output 
      from AA 
      backtest can be rearranged to fit the input fields of TradeIT with 
      some 
      help from an intermediate modification in Excel.  Unfortunately 
      there is 
      one problem I have not been able to overcome.  There is no 
      information 
      available from AA about price or equity movement between trades.  
      This 
      information is essential to creating a comprehensive report from 
      TradeIT.  (see TradeIT sample file for data input fields)
      I believe Fred Tonetti also mentioned this as serious deficiency in 
      one of 
      his previous posts about the limitations of what he can calculate in 
      his 
      expanded equity indicator.  You can't get there from here with 
      the present 
      information coming out of AA.
      As a side issue, I am reminded once again that I want to be able to 
      specify 
      additional calculated columns in AA backtest display.  For 
      example, I might 
      want to include MAR = CAR/MDD as a column or ( more complicated ) 
      include 
      data on max or min excursions of various data columns as part of my AA 
      
      results. It would also be helpful to be able to specify which data 
      columns 
      are displayed and specify their display order.  Finally, being 
      able to 
      optimize based on something like UPI or MAR would save me time and 
      improve 
      optimization results by offering alternatives to only optimizing on 
      max profit.
      Comments?
      Sid
      At this point I guess the best we can hope for is to get TJ to read 
      the 
      TradeIT documentation for ideas on features to incorporate in his 
      proposed 
      portfolio tester. 
      Send BUG REPORTS to bugs@xxxxxxxxxxxxx
      Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
      -----------------------------------------
      Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
      (Web page: <A 
      href="">http://groups.yahoo.com/group/amiquote/messages/)
      --------------------------------------------
      Check group FAQ at: <A 
      href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
      
      Your use of Yahoo! Groups is subject to the <A 
      href="">Yahoo! Terms of Service. 
      Yahoo! Groups 
    Sponsor <A 
    href=""><IMG 
    height=250 alt=ac6e9ca.jpg src="jpg00113.jpg" 
    width=300> <IMG height=1 alt=ac6ea6a.jpg 
    src="jpg00114.jpg" width=1>Send BUG REPORTS to 
    bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
    ---Incoming mail is certified Virus Free.Checked by AVG 
    anti-virus system (<A href="" 
    eudora="autourl">http://www.grisoft.com).Version: 6.0.471 / Virus 
    Database: 269 - Release Date: 04/10/2003






Yahoo! Groups Sponsor












Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

Attachment: Description: ""

Attachment: Description: ""