FPI - Fractional Product Inefficiency: The Impeccable Hedge

NeoTicker indicators

Moderator: moderators

User avatar
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male

FPI - Fractional Product Inefficiency: The Impeccable Hedge

Postby michal.kreslik » Thu Oct 12, 2006 12:59 pm

Hello, friends,

in this article I’ll invite you to discover the FPI - Fractional Product Inefficiency concept. I call the trading technique derived from this concept The Impeccable Hedge. In the text below, you will find out what is FPI, how do we calculate it and how do we trade it.

For starters, I’d like to ponder a littlebit about the quotes origin and purpose since that relates closely to the inefficiency of mutual quotes’ products that form the FPI foundation.

General contemplation on quotes origin

From the dawn of civilization, people were exchanging goods and services among themselves to satisfy their needs. The principle of exchange is at the very core of any business. Indeed, we are making exchange-related decisions in our everyday lives.

The introduction of money changed nothing on the ubiquity of this exchange principle, since money is just a medium that facilitates the exchange in a smoother way. As we all know (or do we? :) ), money itself has no value until we assign some value to it externally. In other words, money can only buy you things if your business counterpart believes the money possesses some value. Certainly you wouldn’t expect an unspotted native from the middle of an African forest to trade his 10 pounds of gold for your colored slips of paper (money). First you have to make him believe those slips are of some value (good luck on that quest :) ).

Let’s now abandon the question of money being an intrinsically worthless medium of exchange and let’s focus on a thesis that is closely related to it: that no value is actually expressible without a comparison to some other value. This may not seem obvious, but until you express a value of object A in comparison to at least one other value, the object A’s value is uknown.

We may call this comparison a quote and it’s expressed:
  • either in a form of a product: A = 2 * B
  • or a fraction: B = A / 2
To better understand the mutual relationship between the values, let’s express some commonly used values as value / value fractions:
  • 1 GOOG stock / 1 USD = 420.00
  • 1 BMW 750i / 1 EUR = 87,500.00
  • 1 hour of your work / 1 USD = 100.00
  • 1 EUR / 1 USD = 1.2
  • 1 GOOG stock / 1 hour of your work = 4.2
  • 1 BMW 750i / 1 GOOG stock = 250
Every such fraction/quote defines the mutual relationship between the two values and based on various conditions, this quote changes. The key term here is “mutual relationship”: if the Google stock quoted in USD goes down, it means the ratio of GOOG value to USD value is lower. It says absolutely nothing about the intrinsic value of GOOG or USD in relation to other values (like to the value of one hour of your work or to the value of one BMW 750i). In fact, maybe GOOG actually strenghtened after announcing a new revolutionary web service, but USD did strenghten even more after Bernanke said the Fed was gonna raise the interest rates to 10% the next week.

Unfortunately, there is no “firm” value in the world to which other values (and thus, the quotes to them) could possibly be linked. This value uncertainity makes the world a perfect place for traders though :)

As we know, the Forex quotes are the ratios between the values of the first currency in the Forex symbol (the base or unit currency) and the second currency in the FX symbol (the quote or the price currency). There is no “absolute” value of any of these currencies per se. For instance, the quote
  • EUR/USD = 1.2847
Denotes there’s a ratio of 1.2847 between the value of 1 EUR and the value of 1 USD. But we never can possibly find out what’s the value of “EUR” nor “USD” separately.

FPI – a simple mathematical draft

Let’s make things simpler and let’s picture the Forex quotes as the plain mathematical fractions. Let’s have three Forex symbols, represented by commonplace fractions:
  • a / b = 2.5
  • b / c = 2
  • c / a = 0.2
Are we able to derive the values of a, b and c variables from these three expressions? No way. As stated above, the value can’t be expressed without a comparison to some other value. But we know what is the relation between the values though.

In this example, there are three fractions (FX symbols):
  • a / b
  • b / c
  • c / a
and three separate variables (currencies):
  • a
  • b
  • c
The quotes (the values of these fractions) in this example are not random. Actually, even though we don’t know the values of a, b and c, there is a mutual relationship between the above fractions. We can even derive the third fraction’s value from the first two:
  • a / b = 2.5
  • b / c = 2
  • c / a = ?
  • c / a = 1 / ((a / b) * (b / c))
  • c / a = 1 / (2.5 * 2)
  • c / a = 1 / 5
  • c / a = 0.2
A simple test reveals the product of the fractions’ values is 1 and thus the results are ok:
  • (a / b) * (b / c) * (c / a) = 1
  • 2.5 * 2 * 0.2 = 1
We can derive the value of any of the above three fractions if we know the value of the two others. We may generalize that in a set of n fractions where every individual variable is present exactly twice, we only need to know (n – 1) fractions’ values to derive the value of the last, unknown fraction. Obviously, this is true for any n, i.e. for any number of fractions where every individual variable is present exactly twice. We will call the set of fractions that feature the attribute of having every individual variable present exactly twice a ring since it resembles a closed ring of variables:

FX symbols: just fractions

Now this is going to be more interesting. Let’s subtitute the variables and fractions for FX currencies and symbols now:

  • a = EUR
  • b = USD
  • c = CHF
  • a / b = EUR/USD
  • b / c = USD/CHF
  • c / a = CHF/EUR
Now wait! There’s no CHR/EUR symbol, only EUR/CHF! You’re right. We simply do:
  • CHF/EUR = 1 / (EUR/CHF)
I hope that I aroused your curiosity about what is the product of this ring (the three FX symbols’ quotes). Is it 1 as in the example above with fractions?. Let’s see:
  • True prices as of Dec/29/2005, 17:00 EST
  • EUR/USD = 1.1840
  • USD/CHF = 1.3145
  • EUR/CHF = 1.5565
The product of the ring:
  • 1.1840 (EUR/USD) * 1.3145 (USD/CHF) * (1 / 1.5565) (1 / (EUR/CHF)) = 0.999915194
Voila! It’s “almost” one. Why it’s not exactly one we’ll soon discuss. But it’s clear the principle is the same as with the fractions above.


For sure, as was the case with the fractions above, we can derive the price of whichever of the quotes in ring if we know the other two:
  • EUR/USD = 1.1840
  • USD/CHF = 1.3145
  • EUR/CHF = ?
  • EUR/CHF = 1 / (1 / (EUR/USD) / (USD/CHF))
  • or better
  • EUR/CHF = 1.1840 * 1.3145
  • EUR/CHF = 1.5564
Bingo! We’ve just “recreated” a price for EUR/CHF from the other two quotes. Again, our “reverse engineering” came up with the price 1.5564 instead of 1.5565 and we’ll cover that later.

For a recap, the first ‘1’ in the equation
  • EUR/CHF = 1 / (1 / (EUR/USD) / (USD/CHF))
is there because there’s no CHF/EUR ( c/a ) quote on the market, only EUR/CHF, so we need to invert it this way. The second “1” in the equation is there because the overall product of all the fractions (Forex quotes) equals 1. So we are simply dividing consecutively this overall product (1) by the rest of the fractions in ring to come up with the last “missing” fraction (quote).

Remember, this rule applies to any number of fractions (quotes). If we had a set of 20 Forex quotes and every individual currency would be present exactly twice in that set (thus, they would form a ring), we would be able to devise the value of whichever of these 20 quotes based on the values of the rest of the quotes.

The fractional product almost never equals 1

Now you are probably asking what is so amazing about being able to tell the overall product of the Forex quotes (fractions) in ring is one?

Frankly, the amazing thing about this is that:
  • the product almost never is exactly 1.
Have a look at the product of the close prices on the following 15 min chart:

As you can see, the product oscillates around the ideal value of 1, but it rarely equals 1 sharp. This fact alone disproves the Efficient Market Hypothesis which maintains that the market prices are efficient and it's not possible to take advantage of market inefficiency on a regular basis.

Certainly, one of the factors contributing to the fact that the product is not exactly 1 constantly is that we are not using a mean value between Bid and Ask, but instead only a Bid price here. But that would account only for an absolute shift from the ideally effective product of 1, not for the wild oscillation we can see on the screenshot.

Now whatever is the reason for the value of the product to not being the “correct” value of 1, this obvious inefficiency can be capitalized on. The value of the product oscillates moderately during the quiet market times, but the amplitude widens considerably during the times when the market is fast-moving:

It seems the market is not able to react fast enough on the changes in all FX symbols’ quotes at once so that a minor inefficiencies like this occur. We may picture this concept simply as if EUR/USD quote was updated fast at one brokerage and slowly at some other brokerage. Evidently, when there are two different quotes for the same value / value ratio (EUR/USD), perfect arbitrage opportunities arise. That's exactly what's happening here: the ratios are simply not updated fast enough, so the trader can take advantage of this inefficiency.

And what’s astonishing, with FPI this inefficiency is present permanently! It means that at almost any time (except at the time when the product is exactly 1, which is a rare case), the market is inefficient in terms of mutual quotes between the FX symbols in ring! It seems like nobody had noticed this almost constant inefficiency yet, or at least I was not able to find any traces about any such idea on the internet.

The Impeccable Hedge

I guess you have already figured out that if we open a position in the direction of the ring, i.e.:
  • Buy EUR/USD
  • Buy USD/CHF
  • SellShort EUR/CHF
we are actually opening a hedge position since we neither gain nor lose anything. This is the Impeccable Hedge position – the symbols make a perfect, closed “hedge ring”. It’s similar to opening a standard, “futile hedge” position:
  • Buy EUR/USD
  • SellShort EUR/USD
but we are including more than two FX symbols in the hedge en bloc.

Some brokers even allow for opening the same symbol positions in the opposite directions on the same account. The trouble is, there’s no difference between EUR/USD quote and EUR/USD quote on the same account (not surprisingly, eh? :) ), so you gain nothing by opening the opposite direction positions with the same symbol (well, if you are arbitraging between two different brokers, the quote may be different). Actually, you lose the spread twice during such “futile hedge” operation.

On the other hand, if you open the Impeccable Hedge position, you are getting the best of both worlds:
  1. your overall market position is flat as with the “futile hedge”. So you can turn off your computer, go on a vacation and sleep well.
  2. as with the futile hedge, there are no stops nor profit targets, so your Impeccable Hedge position remains open until you close it and this fact does not have any impact on your account margin
  3. you make money if you open the Impeccable Hedge position when the product is at one, say the lower extreme ( < 1 ) and close it when the product is at the opposite extreme ( > 1 ):

In fact, only the absolute difference between the opening FPI level and the closing FPI level matters. Open/close levels don't have to be below/above 1. The amount of profit made by opening and closing the Impeccable Hedge position is very small. Yet – it is sure :) ). Virtually, you can’t lose money by trading the Impeccable Hedge if you follow the above rules.

FPI relies on your broker not being a bandit

As we said above, the fractional product inefficiency is rather microscopic , so the success of using FPI in a real trading environment is much dependent on a fast and literally razor-sharp execution and low spread, because the FPI operates with market orders “at the moment” – we need to catch the inefficiency precisely when it happens. If your broker often plays games with your market orders, forget about FPI.

From the technical point of view, the Impeccable Hedge position opening and closing would be much easier if the broker supported a “composite hedge order”: for instance, the FPI trading system would post the order to open three positions at once (buy EUR/USD, buy USD/CHF, sellShort EUR/CHF), but the positions would not be buffered into the market one after another – instead the whole Impeccable Hedge ring (all the three positions) would either be placed or no position would be placed at all.

As of the time of this writing, I don’t know of any FX broker who would support this type of orders (please feel free to suggest such a broker). But anyway, if you are dealing thru a good broker (not that there are more than a few), you shouldn’t experience any troubles regarding market order execution.

FPI Control Panel for NeoTicker in C#.NET

I’ve written an application in C#.NET that hooks up to the NeoTicker trading platform chart and controls the FPI indicator externally. The FPI Control Panel application/indicator takes the symbols on the chart as the input, sifts them thru to get only valid FX symbols and sifts these symbols once more to get a list of unique FX symbols on chart. It means you can have EUR/USD, EUR/USD and MSFT on the chart and the FPI Control Panel will know there’s only one valid unique FX symbol (EUR/USD).

The FPI Control Panel uses my NeoEventsClass object class that generates events for the rest of the application. Event-driven programming is a modern and resources-efficient way of coding. NeoTicker doesn’t provide events in its NTIndicatorObjects library yet, so I decided to write my own events library based on NeoTicker objects and will use it until the events architecture will be available in Neo.

My entire code for FPI and all the supporting DLL libraries (including NeoEventsClass) is available for free here, so you are encouraged to use it and build upon it. You can download the projects source files at the bottom of this article. The FPI_source.zip archive also contains a set of precompiled DLLs and an indicator IDL file ready to be copied into the NeoTicker/indicator folder and run.

I have implemented only several NeoTicker events for the FPI Control Panel, but based on my events library, you can easily add literally hundreds of other useful events. If you do, please tell me and I’ll include them together with your name in the NeoEventsClass so that this effort will be sort of centralized.

The FPI Control Panel connected to the NeoTicker chart looks like this:

It displays:
  • the list of all symbols on the chart
  • the list of unique FX symbols on the chart
  • the detailed information about every unique currency on the chart (the FXCurrencies object that provides the information about all valid FX currencies in the world, their names (Canadian Dollar), alphanumeric codes (CAD) and ISO codes (124) is a part of my FX libraries available for free download below)
  • the list of FPI Rings available for this set of unique FX symbols. The list is calculated automatically upon clicking the “Calculate FPI Rings” button:

    Then if you click on one of the FPI Rings displayed in the listbox, the FPI value of that particular FPI Ring is displayed on the chart in NeoTicker as the FPI indicator (see above)
If you pick another FPI ring in the FPI Control Panel, the FPI indicator on the NeoTicker chart gets automatically recomputed. If the FX symbol is reversed in the ring, it’s displayed in parentheses:
  • not reversed: EUR/USD, we multiply by EUR/USD value
  • reversed: (EUR/USD), we multiply by 1 / (EUR/USD) value

Currency pairs matrix

I devised a simple and fast algorithm for calculating all the possible combinations of FPI rings given the particular set of unique FX symbols on chart. It uses a matrix of unique currencies on the chart. To better understand how this combinatorial matrix works, let’s show that on an example.

Let’s have 23 unique FX symbols on chart:
As you can see on the screenshot, there are only 12 unique currencies present in those 23 pairs:

The key to the matrix calculations is to – well, work with the currencies in a matrix :) The matrix abstraction is all done by the PairsMatrixClass within the C# FPI code, so you can assess by yourself how it works under the hood since I make that code available in its entirety below.

In a nutshell, we can picture this matrix by putting a “1” (or “true” in the actual C# code) in every row/column intersection for every valid FX symbol. As we said at the beginning of this article, the quotes are always two-way, so for the EUR/USD pair we put a “1” at the intersection of EUR and USD as well as at the intersection of USD and EUR in the matrix:

By the same token, we fill up the rest of the valid FX symbols intersections for all above 23 FX symbols that feature 12 above unique currencies:

Notice the matrix is symmetric. It represents the currency intersections of all available FX symbols.

FPI Rings combinations

Now how do we come up with a set of valid rings with the help of the matrix?

I’m using a brute-force testing algorithm that goes thru all possible combinations of FX symbols. The total number of possible combinations we are testing is:
  • 2 ^ n
where n is the number of total unique FX symbols that are available for testing. So, for instance, for 23 FX symbols, there are 2 ^ 23 possible combinations = 8 388 608 combinations total. By the matter of fact, converted to binary (see the C# code), the first combination will feature one FX symbol and the last combination will feature all FX symbols.

Now how do we assess the currently tested combination of FX symbols is a valid FPI ring? That’s simple. First of all, let’s recap what we’ve learned earlier in this article:
  • A ring of fractions is formed if we’ve got a set of fractions where every individual variable is present exactly twice.
In this definition, a variable is the FX currency and the fraction is the FX symbol. So this time, we will mark the corresponding intersections in the matrix as used in the tested ring. Let’s create a matrix for EUR/USD, USD/CHF and EUR/CHF ring:

Now we will check whether our chosen combination of FX symbols complies with the above rule. In the currency matrix, we do that simply by checking that in every row the total number of “used in ring” currency pairs (FX symbols) is either 0 or exactly 2. Actually, we can check these sums in columns as well. That doesn’t really matter because – as you remember – the matrix is symmetric.

Zero occurences of the currency in a matrix row means this currency is not present in any FX symbol in the ring we are testing for validity as is the case for JPY, for example:

Two occurences mean the currency is present exactly twice which complies with the ring creation requirements, as is the case for EUR here:

Any other sum (i.e., not zero and not 2) means the whole tested ring is invalid. For example a matrix for EUR/USD, USD/CHF, EUR/CHF, USD/MXN FX symbols features this invalid row for USD:

If any row is found to be invalid during the testing, it’s unnecessary to test the following rows. We may skip this entire combination test and continue on to the next combination test because we know that all rows must be valid.

To declare the currently tested FPI ring as valid:
  1. all rows must comply with the above rule (exactly zero or 2 pairs used in a ring)
  2. the number of pairs used in ring must be higher than zero
  3. the tested combination must not contain more than one valid FPI ring
In the combination testing algorithm, I am skipping all the combinations with less than three FX symbols since it’s obvious the minimum FX symbols count needed to create a valid FPI ring is three.

At the end of each ring combination test that yields a valid FPI ring we also need to determine in which direction the particular set of FX symbols will be used in the ring. Since the matrix is symmetric, it tells us nothing about the direction (buy or sell) of the FX symbols used in the ring. It only provides us with a set of currency pairs used in ring. As stated above, the FX symbols used in the opposite direction are shown in parenthesis in the FPI rings list on the FPI Control Panel:

In this case, GBP/JPY symbol is used in the opposite direction in the ring.

FPI: same time prices only

In the FPI Control Panel, you have to tell the program on which prices to base the FPI calculation. You have two choices:
  • open price
  • close price

Why there’s no high or low price to choose from? Simply because we never know when high or low occurred during the bar. Open and close prices are time-precise – we always can tell that the open or close prices across the various FX symbols on chart did occur at the very same time. This is also the reason why it’s not possible to apply FPI to a tick chart. It’s only possible to calculate the FPI from prices that occurred at the same time.

There’s money waiting to be made with FPI

The FPI might be used:
  • directly for trading the FPI extremes (explained above), or
  • to predict the behavior of one of the FX symbols in ring
Concerning the latter usage, as we have learned above, we can determine the value of the missing fraction (FX symbol) in ring if we know all the rest of the fractions in ring. Let’s imagine we are analysing three FX symbols: EUR/USD, USD/CHF and EUR/CHF. Sure, if we know the prices of the first two, we may determine the price of the third one. But by the same token, if our analysis reveals us the direction of the first two symbols, then we can also tell what is the direction of the third one, too, despite of the fact that there might be no hint on the chart as to what is the direction of the third symbol.


As exaplained, the Impeccable Hedge takes advantage of the mutual inefficiencies of FX quotes. We can use the FPI indicator to display the current state of the mutual inefficiency. The Impeccable Hedge trade makes very small amount of profit, but this profit is sure. The success of this concept depends very much on the quality of your broker’s execution.

Thanks for your interest in FPI. I’m looking forward to your questions and comments!

Have a very nice day all,
Michal Kreslik

note: if you can't see the attached source files archive below this text, please log on
(849.05 KiB) Downloaded 2941 times
Last edited by michal.kreslik on Wed Feb 28, 2007 1:53 am, edited 5 times in total.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

rank: 50+ posts
rank: 50+ posts
Posts: 113
Joined: Tue Jun 13, 2006 3:42 am
Reputation: 0
Location: Atlanta, GA
Gender: None specified

Postby jhtumblin » Thu Oct 12, 2006 1:14 pm

Very interesting idea you have setup here. My only question now is how exactly is one to know what the "extreme" of the FPI is at the time that it occurs? I understand the gains are small with this system, so is there a certain threshold in the FPI that must be broken on either side of 1 before the trade is profitable?

User avatar
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male

Postby michal.kreslik » Thu Oct 12, 2006 1:57 pm

It depends on the set of FX symbols you use in the ring. Obviously, the more FX symbols in a ring, the higher the total spread and the bigger the FPI deviation from 1 must be to cover these costs.

The goal is to find the set of FX symbols that form a ring, do have a small spread in sum and their FPI wiggles a lot.


rank: 50+ posts
rank: 50+ posts
Posts: 65
Joined: Sat Jul 01, 2006 1:46 pm
Reputation: 0
Gender: Male

Postby Luke » Thu Oct 12, 2006 4:33 pm

Excellent article Michal!
I'll bet this is one of the closely guarded secrets of many institutions.

User avatar
Gert Frobe
rank: 150+ posts
rank: 150+ posts
Posts: 177
Joined: Fri Jun 30, 2006 9:51 pm
Reputation: 0
Location: Arlington, Texas
Real name: ben arata
Gender: Male

Postby Gert Frobe » Thu Oct 12, 2006 5:37 pm

Michal, this is very impressive. I believe one of these years well open up Forbes and read about you on there international billionaire list.

Is there a way to set up the ring so you can maximize the interest earned at rollover for the fx pairs in the ring? Your Impeccable Hedge could be the Impeccable interest machine.

Again , this is very impressive and thank you for sharing your work with us.


Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
rank: <50 posts
rank: <50 posts
Posts: 28
Joined: Mon May 22, 2006 6:38 pm
Reputation: 0
Location: Plano, TX
Gender: Male

Postby eagles » Thu Oct 12, 2006 7:43 pm


Can you extract the list of 253, and provide that list in a text file, or some type of delimited file format?

This is an interesting concept & great explanation.

With regard to the effectiveness of this type of trading can it be concluded that the smaller the number of pairs involved (3), the easier to profit because of processing the trades in sequence?

Your charts of FPI appear to be on a 15 minute interval. Have you looked at longer time frames? It seems that the differential would exist on all time frames. The higher number of pairs might be easier to trade on the longer time frames, where order processing time would be less critical.


rank: 50+ posts
rank: 50+ posts
Posts: 57
Joined: Fri May 19, 2006 5:05 am
Reputation: 0
Gender: None specified

Postby aspTrader » Thu Oct 12, 2006 8:03 pm

Hi Michal,

Very interesting analysis. A few thoughts...
  • It seems to me that it would be necessary to exclude periods during which currency pair exchange values were fluctuating wildly. My bet would be that during those periods you would find there to be FPI extremes that could NOT actually be traded and so would need to be excluded as possibilities.
  • It also seems to me that using actual Bid/Ask prices and sizes in the analysis instead of Open/Close values would provide a view of what can actually be obtained in the market. Luckily, you are using a platform (NeoTicker) which provides for storage of and access to "Inside" Bid/Ask prices and sizes.
  • More than that, NeoTicker provides for historical data analysis and replay of the Bid/Ask/Last price stream with sub-minute ("second") level precision so the concept can be tested much more rigorously for actual ability to trade the FPI extremes.
  • Of course, you correctly note that "FPI relies on your broker not being a bandit". Seems to me that this point is not a trivial one and still another argument, if one were needed, to focus on CME Currency Futures rather than Forex per se.
  • Price and Size Depth of Market Quote Reliability and Transparency, Fast Fills, Extremely high positive correlation with InterBankFX, Insured Funds, Historical Data Availability, Increasing Liquidity through greater institutional use... this is what you get when trading CME Currency Futures... I still don't really get how any factor (including the "leverage argument factor") can overcome these benefits.

Having said all this... Again, great analysis! Worth further effort!

User avatar
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male

Postby michal.kreslik » Thu Oct 12, 2006 8:46 pm

Gert Frobe wrote:Is there a way to set up the ring so you can maximize the interest earned at rollover for the fx pairs in the ring? Your Impeccable Hedge could be the Impeccable interest machine.


interest generation is one of the applications FPI is aimed at, too. The FPI Control Panel can be modified so that it takes into account the spread and interest rates. Then it could search for best rings in terms of interest "milking" :)

(Avery will love this term :) )

I have some stats to do for Avery yet, so after that I'll look into it. Or, any competent C# programmer here on the forum (like Luke) can make the modification. My code is free.


User avatar
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male

Postby michal.kreslik » Thu Oct 12, 2006 8:59 pm

Also, I wanted to praise the purity of event-driven programming.

Once the NeoEventsClass is in place, everything in this rather complex FPI indicator is done via events generated by this events class.

Let's feast our eyes on the cleanness of the IDL indicator code itself:

That's the "whole" FPI indicator! :)

All the rest is done thru events.


User avatar
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male

Postby michal.kreslik » Thu Oct 12, 2006 10:37 pm

I got a question about how does such an FPI trade look like.

Let's use a commonplace FPI ring:
  • SellShort EUR/JPY
  • Buy EUR/USD
  • Buy USD/JPY
I picked this one because it features low spread. To make the example a real-world one, let's consider the Oanda Bid/Ask spreads. They are fixed to:
  • EUR/JPY: 2 points
  • EUR/USD: 1.5 points
  • USD/JPY: 2 points
Now let's find some FPI extremes for this ring:

The FPI extremes of this magnitude happen every day. There are many times bigger differences sometimes. But let's settle for this "everyday" sample magnitude for now.

Input information for the Impeccable Hedge open (considering Oanda spreads as described above):
  • FPI: 0.9999
  • bar close date/time: 6/29/2006 3:15 PM
  • price: close
  • EUR/JPY: Bid 145.61 / Ask 145.63
  • EUR/USD: Bid 1.2647 / Ask 1.26485
  • USD/JPY: Bid 115.15 / Ask 115.17
Input information for the Impeccable Hedge close:
  • FPI: 1.0004
  • bar close date/time: 6/30/2006 9:45 AM
  • price: close
  • EUR/JPY: Bid 145.88 / Ask 145.90
  • EUR/USD: Bid 1.2753 / Ask 1.27545
  • USD/JPY: Bid 114.34 / Ask 114.36
Trade analysis:
  • SellShort EUR/JPY
  • open: SellShort 100,000 EUR/JPY @ 145.61; we pay 100,000 EUR, we get 14,561,000 JPY
  • close: BuyToCover 100,000 EUR/JPY @ 145.90; we get 100,000 EUR, we pay 14,590,000 JPY
  • profit/loss = -29,000 JPY
  • Buy EUR/USD
  • open: Buy 100,000 EUR/USD @ 1.26485; we get 100,000 EUR, we pay 126,485 USD
  • close: Sell 100,000 EUR/USD @ 1.2753; we pay 100,000 EUR, we get 127,530 USD
  • profit/loss = +1,045 USD
  • Buy USD/JPY
  • open: Buy 100,000 USD/JPY @ 115.17; we get 100,000 USD, we pay 11,517,000 JPY
  • close: Sell 100,000 USD/JPY @ 114.34; we pay 100,000 USD, we get 11,434,000 JPY
  • profit/loss = -83,000 JPY
  • Overall profit/loss at the time of trade close in USD:
  • EUR/JPY trade: -29,000 JPY / 114.36 (USD/JPY) = -254 USD
  • EUR/USD trade: + 1,045 USD
  • USD/JPY trade: -83,000 JPY / 114.36 (USD/JPY) = -726 USD
  • Sum: 1,045 USD - 254 USD - 726 USD = 65 USD netto
So our Impeccable hedge trade did earn us net 65 USD after spreads. That's 6.5 pips net if you translate it to EUR/USD trade. You may say it's nothing to write home about, but it's sure 6.5 pips in your pocket without risking anything. You see, we were


all the time and still were able to make a profit. A fairy-tale magic :D

You may be curious what happens if you miss the FPI = 1.0004 exit point. Take a deep breath before I tell you!

.... ready?

.... stop cheating, you didn't take a deep breath, man...

.... so

why, absolutely nothing happens :) As I said in the article, your Impeccable Hedge position may be open for as long as you wish without exposing you to any risk. It's like having EUR/USD and EUR/USD "futile hedge" open. You don't gain, you don't lose. You're just flat. So you may sit back, relax and watch the ripples on Miami Beach and wait until FPI is say > 1.0003.

The wonderful thing is FPI always wiggles up and down, so sooner or later, you'll be able to exit with a small profit :D Now isn't life beautiful? :)

To give you an even better idea of how FPI works, let's have a look at this common-or-garden sine wave I created in excel:

You see, the sine has got its extreme points at the crests and then always returns back. It cannot get alarmed and go out of the boundaries. The same is with FPI. It's like a somewhat crippled sine wave. Sooner or later, the crest will appear.


Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

Return to “NeoTicker indicators”