Norgate data vs B&H backtest, was: Buy and Hold does not match XJOA Index

Hi,

Apologies if this is a stupid question.

I am using Amibroker with Norgate. I am comparing the data for "Buy & Hold" of the symbol "XJOA" in my back-test report. The time period is 01 Jan 2001 to 31 Dec 2015.

In my back-test report, it says, if I was to "Buy and Hold", I should have 25,199.45. However, if I go to Norgate Data, it says, I should have 32,677.72 (483,46.39 - 15,668.67 = 32,677.72).

My questions are

  1. Is the difference in Dividend Reinvestment?
    1A. If yes, how do I turn this on in Amibroker "Buy and Hold" so that I can get the same result
  2. Is there any other setting that I need to do in Amibroker to ensure that I return same or similar result between Amibroker and Norgate Data?

Attached are 2 screen prints

  1. Data Comparison - Norgate Data vs Amibroker "Buy and Hold"
  2. Amibroker settings

Many thanks in advance,
Meatpie

XJOA - Comparison
XJOA - Settings

What Norgate displays is NOT backtest result. You are comparing apples to oranges.

You need to understand that B&H backtest is result of investing INITIAL EQUITY amount of cash into B&H security, so dollar gains DEPEND ON INVESTED CAPITAL. If you invested $1K you would get 10x less profit as compared to when you invested $10K.

Your simple subtraction of closing prices does not take into account invested capital.

Also you are not reading the report correctly. End capital figure, as its name says, is end capital amount, not the difference between end capital and start capital (profit). That difference (profit) is listed in Net profit line.

You need to read the manual: System test report window

Also, B&H backtest shows performance based on price movement only. It does not care about/account for dividends that given security pays.

Hi Tomasz,

Thanks for your prompt response. I have read through what you said.

Maybe I am not asking the question correctly.

I am looking at another person's report, using Amibroker and Norgate Data.
For the exact same period, on the code $XJOA - which is the Accumuldated Index of $XJO, his Buy & Hold Benchmark went from $10,000 to $31,385.00 (see screen print).

  1. I want to know how come my Buy & Hold End Capital is different to his? I expected my answer to be closer to 32k given that's what Norgate is also showing (For 15 years from 2001 to 2015).
  2. What do I have to do to ensure my Buy and Hold is the same as the example?
    2A. Or is my B&H data correct and the example I have is wrong? what can cause this difference?
  3. How do I add this Benchmark into the Amibroker chart? (like the screen print)?

XJOA - Compare

Kind Regards,
Meatpie

Perhaps you have your base currency set incorrectly?

See:
https://norgatedata.com/amibroker-faq.php#basecurrency

Cheers,
Richard.

For point 3 see: Add benchmark equity curve to the strategy equity curve - #4 by Heisenberg

Your post is bit misleading.
You make it look like Heisenberg's assumption "does not exist" (and Excel needed) would be true.
(Also considering today's people's short attention span and readers' inability/laziness to read further).

So it is rather #5

I don't know from where you got that chart (it is definitely NOT default equity chart), but chances are that this chart is simply incorrect and/or multiple currencies are involved and you are looking at backtest report in US dollars, while chart is in Australian dollars. People create various formulas and post various charts over the Internet but some of those charts may be simply incorrect. For example formulas using Equity() old-backtester function that does not handle multiple currencies (i.e. is single currency only).
If your B&H is in Australian dollars, you can change your base currency in the Tools->Preferences to Australian dollars so all your results will be in AUD (without currency conversion)

Thanks Tomasz, Richard (Norgate Data) and everyone else.

It is interesting to note that by changing the Portfolio currency, it changes the B&H result.

I am now going to go back to the source of the graph above and verify the data. The person is a big supporter of both Amibroker and Norgate (I had never heard of either product until this point!)

Once I have a response, I will report back for further clarification.

Cheers,
Meatpie

Whilst it's true the indices in themselves do not actually have a currency, they are typically based on trading in the constituents in a given currency, so the index itself is given a currency.

You should always backtest in the base currency for the market you are trading, otherwise you're just introducing another variable: currency fluctuations.

It does not change B&H result per se. It changes the entire trade that you are really making. It changes in what CURRENCY the B&H result is reported and you are actually trading TWO instruments at the same time (your selected security AND the forex - exchange rate between base currency and traded currency). Obviously the SAME VALUE expressed in different currencies will have different numeric representation. Like ounce of gold costs differently in USD and AUD. If your base currency is different than symbol currency, the conversion from base to traded currency occurs at the START of the trade and reverse conversion (from traded currency to base currency) occurs at the END of the trade (you can imagine that you are "long" in B&H position and at the same time you are "short" in base currency or "long" in traded currency).

If you live in Australia, you should set up your base currency to AUD. This way you will avoid currency conversions when backtesting Australian exchange.

Hi,
I understand what you guys are trying to say. Perhaps you may want to put the base currency into the column header to avoid confusion. This is only a suggestion.

I only purchased Norgate AUD data and therefore I didn't expect to see any data in USD.

As you can see, it is near impossible to tell that the "Base Currency" setting is different by looking at the Profit number. Both The Price and Ex Price are in original currency, yet their profit are very different. (see screen print attached).

Top 2 = Year 2000 to 2015 - AUD and USD
Bottom 2 = Year 1992 to 2021 - AUD and USD

Anyway, my issue is now resolved. So thank you everybody. Hope you all have a good week.

Kind Regards,
Meatpie

BHP - Buy and Hold

For what it is worth: IF currencies are set properly for all symbols then all results are in base currency. And base currency is set to the default "USD" (unless you change it).

Problematic part is that not every data vendor does (actually only few do) set the currency for symbols in databases. In majority of cases people have databases that leave Currency field empty in the symbol information window. In that case no currency conversion is done, then base currency is irrelevant and results are in whatever currency symbols under test are quoted in (but you don't know which because currency field is empty in symbol's information)

Now I could add to the report the statement that "results are in USD" but this may or may not be the case depending on whenever the user has his database set for multi currencies or not. If for example a person in Poland uses database without currency set for Warsaw stocks even though those stocks are quoted in PLN and he left the default base currency in the preferences (USD) then report would say that "results are in USD" even though this would not be true. The results would be in PLN because no currency conversion is done if database does not have currency set for the symbols under test.

So it is much more complex than you might think and not just a matter of displaying what base currency is set in the preferences, considering the fact that majority of people do not use well maintained databases.
Probably a note that user runs backtest with symbols that have currency set to something else than base currency would be more accurate and encourage to check not only final result but other important stuff (such as FX rate settings AND FX quotes)

Norgate chose to fill currency field because they supply data for both Australia and US markets. I would say that majority of users trade securities traded in one country only and for them it would probably be easier just to keep currency field empty (no conversion).
But for those who trade different markets this would be bad. As old saying goes - you can't please everyone.

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.