Makosgu, thanks for your feedback on my comments about entry/exit point and slippage.
Agreed predicting subsequent FPI movements is almost impossible, except that what goes up must come down. Eventually.
However the FPI Moving Average I believe is helpful.
Consider the FPI moving up and down continously  hundreds of time over a few hours  remember we can hold or delay a entry/exit as long as we wish.
Why not then compute the average deviation from 0, or any other arbitary deviation to determine our entry/exit points. Why enter/exit 'immdiately' when the FPI swings above/below 1?
We surely want the maximum possible (or perhaps more appropriately practical) deviation between the FPI_Open and FPI_Close to maximise profit.
By setting some conditions  based on a Moving Average (Average FPI<1 and FPI>1 position over x periods etc.) style indicator overlayed on the FPI  we can determine when the best times are to enter/exit. As I outlined previously  where FPI_Min% = 0%, FPI_Normal%=50% and FPI_Max%=100%, we might want to experiment with triggers at different %ages ... eg, FPI_Open when FPI_Open=20% and FPI_Close=80% in a Buy, Buy, Sell ring.
As I think it was Michal that said the differential is important.
FPI  Fractional Product Inefficiency: The Impeccable Hedge
Moderator: moderators
Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.
Thank you for your support.

 rank: <50 posts
 Posts: 20
 Joined: Thu Oct 26, 2006 3:27 pm
 Reputation: 0
 Location: Europe, Czech Republic... sometimes
 Gender:
I rater stick with easy stuff. So here is the "ring generator" in Python. It can be easilly changed to do whatever output you want.
It is generating all rings just once  invert will generate the other half.
I quickly checked with Michal's output and it seems the same.
On my laptop 1.8GH 2^24 combinations; Michal's input pairs took around 45 minutes.
Enjoy!
Edit: I have to add  Michal thanks for alogorithm and C# source code.
It is generating all rings just once  invert will generate the other half.
I quickly checked with Michal's output and it seems the same.
On my laptop 1.8GH 2^24 combinations; Michal's input pairs took around 45 minutes.
Enjoy!
Edit: I have to add  Michal thanks for alogorithm and C# source code.
 Attachments

 fpiRings3.zip
 (1.59 KiB) Downloaded 276 times
Last edited by androfx on Wed Nov 01, 2006 7:51 pm, edited 1 time in total.
@ryan
A couple of comments. I could not find your attachment in the download section so I cannot verify your analysis and how you can take advantage of the information you have identified...
As for slippage, it is merely a component of how long any particular FPI value is present. For clarity, let's look at the details for FPI. So we now understand what it is to go LONG or SHORT on the FPI for any given scenario (ie. 3 pairs, 4 pairs,..., N pairs). However, we have to be clear on which FPI value we are calculating. In other words, the tradeable FPI value toggles between LONG and SHORT. In other words, when FPI is greater than one, we are really looking at the SHORT FPI value which from our previous example was BSS, thus the FPI BID price is equal to (1/[GBPJPY ASK])*([GBPUSD BID])*([USDJPY BID]). The tradeable LONG FPI value is calculated from our previous example as SBB, thus the tradeable FPI ASK price is equal to (1/[GBPJPY BID])*([GBPUSD ASK])*([USDJPY ASK]). Currently, our Gaussian distribution assumption does not account for this REAL LIFE, REAL MONEY discrepency that does affect results. Since we are buying from this FPI ASK, and selling at the FPI BID. It is explicitly the fluctuations of the constituents that gives rise to volatility and thus slippage in execution, but more so the volatility. Slippage is different than for other trading instruments since executions are guaranteed to be executed at a given price for forex. For other trading instruments, slippage is a function of how much size is available, and how many market orders are in front of you.
So we agree that the purpose of optimizing is to maximize profits. Forex avoids slippage since you simply get the price that is quoted at the time you execute. In other words, either the position was accepted at the FPI bid or ask or not. Like any instrument, the FPI BID & ASK fluctuate continually and fortunately, explicitly since they are directly a function of the component instruments. As a result, if this net FPI is cycling hundreds of times per hour, maximizing profits would be taking action at every opportunity irrespective of the magnitude of the payoff assuming you could compound (there is a limit to the extent that you could compound). The issue is that when you delay your entry/exit by waiting for the next exit/entry, you have actually missed two transactions... How???
Let's look at a simple example. So FPI BID reads 1.01. You hit the FPI BID and go SHORT. Several minutes later FPI ASK reads .99. You decide to wait to close out your trade because you think FPI ASK will go lower to .98. You can actually explicitly calculate the probability that it will go to .98 using the fact you know that the distribution is normally distributed but that's another post. So you wait but instead the FPI BID trickles back up to 1.01. As far as your concerned, this is OK because their is nothing lost which is ABSOLUTELY TRUE! Moments later, the FPI ASK then cycles back down to .98 and you close your position for a nice profit. Given this period, were profits maximized? Depends on what could have been done... When we look at the period, we find that there were actually 1.5 cycles of FPI (ie. 1.01 to .99 to 1.01 to .98 ). Each cycle has 2 legs, 1 SHORT LEG, and 1 LONG LEG. 1.5 cycles thus has 3 LEGS in which each leg will yield a profit. In the above time span, we cancelled two of these legs by opting not to transact. The point here is that we want to take advantage of every opportunity as it comes. Nonetheless, a profitable transaction is a profitable transaction. Michal's point is that any transaction will be a profitable transaction once you align yourself with how the equillibrium is dictated and thus how transactions are to be executed (ie. BSS vs SBB). Honestly, I can double the length of this thread with stats, analytics, Dr. Seuss like illustration to hit the point home with folks. Just to put this in perspective, I have a friend who does this in a much more complicated fashion for credit derivatives (ie. structured finance/credit). He guns for 1 to 5 bps on every trade (ie. .01% to .05%). He regularly realizes $1M a week for the company he does this for. The concept is the same in many different markets. The markets he trades is accessible only to institutional banks since a single transaction is $1B which he uses leverage to obtain. The point is that he could wait to capture .1% instead of .01%. The issue though is at what cost? Generating $1M weekly for him is good enough. As individual traders, we need to answer this question for themself. In a nutshell, it is a matter of preference. My own is to maximize profits which for me is a function of time, compounding, and capital distribution.
A couple of comments. I could not find your attachment in the download section so I cannot verify your analysis and how you can take advantage of the information you have identified...
As for slippage, it is merely a component of how long any particular FPI value is present. For clarity, let's look at the details for FPI. So we now understand what it is to go LONG or SHORT on the FPI for any given scenario (ie. 3 pairs, 4 pairs,..., N pairs). However, we have to be clear on which FPI value we are calculating. In other words, the tradeable FPI value toggles between LONG and SHORT. In other words, when FPI is greater than one, we are really looking at the SHORT FPI value which from our previous example was BSS, thus the FPI BID price is equal to (1/[GBPJPY ASK])*([GBPUSD BID])*([USDJPY BID]). The tradeable LONG FPI value is calculated from our previous example as SBB, thus the tradeable FPI ASK price is equal to (1/[GBPJPY BID])*([GBPUSD ASK])*([USDJPY ASK]). Currently, our Gaussian distribution assumption does not account for this REAL LIFE, REAL MONEY discrepency that does affect results. Since we are buying from this FPI ASK, and selling at the FPI BID. It is explicitly the fluctuations of the constituents that gives rise to volatility and thus slippage in execution, but more so the volatility. Slippage is different than for other trading instruments since executions are guaranteed to be executed at a given price for forex. For other trading instruments, slippage is a function of how much size is available, and how many market orders are in front of you.
So we agree that the purpose of optimizing is to maximize profits. Forex avoids slippage since you simply get the price that is quoted at the time you execute. In other words, either the position was accepted at the FPI bid or ask or not. Like any instrument, the FPI BID & ASK fluctuate continually and fortunately, explicitly since they are directly a function of the component instruments. As a result, if this net FPI is cycling hundreds of times per hour, maximizing profits would be taking action at every opportunity irrespective of the magnitude of the payoff assuming you could compound (there is a limit to the extent that you could compound). The issue is that when you delay your entry/exit by waiting for the next exit/entry, you have actually missed two transactions... How???
Let's look at a simple example. So FPI BID reads 1.01. You hit the FPI BID and go SHORT. Several minutes later FPI ASK reads .99. You decide to wait to close out your trade because you think FPI ASK will go lower to .98. You can actually explicitly calculate the probability that it will go to .98 using the fact you know that the distribution is normally distributed but that's another post. So you wait but instead the FPI BID trickles back up to 1.01. As far as your concerned, this is OK because their is nothing lost which is ABSOLUTELY TRUE! Moments later, the FPI ASK then cycles back down to .98 and you close your position for a nice profit. Given this period, were profits maximized? Depends on what could have been done... When we look at the period, we find that there were actually 1.5 cycles of FPI (ie. 1.01 to .99 to 1.01 to .98 ). Each cycle has 2 legs, 1 SHORT LEG, and 1 LONG LEG. 1.5 cycles thus has 3 LEGS in which each leg will yield a profit. In the above time span, we cancelled two of these legs by opting not to transact. The point here is that we want to take advantage of every opportunity as it comes. Nonetheless, a profitable transaction is a profitable transaction. Michal's point is that any transaction will be a profitable transaction once you align yourself with how the equillibrium is dictated and thus how transactions are to be executed (ie. BSS vs SBB). Honestly, I can double the length of this thread with stats, analytics, Dr. Seuss like illustration to hit the point home with folks. Just to put this in perspective, I have a friend who does this in a much more complicated fashion for credit derivatives (ie. structured finance/credit). He guns for 1 to 5 bps on every trade (ie. .01% to .05%). He regularly realizes $1M a week for the company he does this for. The concept is the same in many different markets. The markets he trades is accessible only to institutional banks since a single transaction is $1B which he uses leverage to obtain. The point is that he could wait to capture .1% instead of .01%. The issue though is at what cost? Generating $1M weekly for him is good enough. As individual traders, we need to answer this question for themself. In a nutshell, it is a matter of preference. My own is to maximize profits which for me is a function of time, compounding, and capital distribution.
Makusgu, great post. Yes, so we are agreed on the methodology, it's just a case of determining whether there is value in holding any trade, or simply instantly trading when the FPI_Open/Close conditions are met on the agreed principal that when these conditions are met, regardless, the trade will be profitable, and hence your thesis is that you will be losing opportunities by holding the trade rather than continually entering/exiting.
Fair call. I cannot say I disagree.
Do you have a view on any other applications for the FPI?
Fair call. I cannot say I disagree.
Do you have a view on any other applications for the FPI?
Live Test FPI
Hi All:
i made some test FPI on live data from CMSFX. On data sample in xls sheet are calculated four trades at FPI extrems. For better understoodnig you read formula in rows and columns.
DavidF
i made some test FPI on live data from CMSFX. On data sample in xls sheet are calculated four trades at FPI extrems. For better understoodnig you read formula in rows and columns.
DavidF
 Attachments

 forexarbitraz.zip
 (95.69 KiB) Downloaded 345 times
Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.
Thank you for your support.
I'm new here...I'll try to behave myself.
Ok, so I've read through the whole thread...now I just want to ask a VERY SIMPLE question. Let us say that the FPI is <1 so we go short EUR/CHF and then we go long EUR/USD and long USD/CHF. One of these latter pairs will need to be traded at other than a "round lot" size. How do I determine the proper lot size for my synthetic position? I think I know the answer, but I want to be sure.
I don't want any other information than that, as I understand what is going on. I've done much research into this kind of thing in other markets, so the concept is not the problem (it's also a type of spread trade, a pair trade, or a conversion trade depending on the market and how you think of it)...just this one thing please!!! I would really appreciate a reply from makosgu or michal with just a SIMPLE calculation.
Ok, so I've read through the whole thread...now I just want to ask a VERY SIMPLE question. Let us say that the FPI is <1 so we go short EUR/CHF and then we go long EUR/USD and long USD/CHF. One of these latter pairs will need to be traded at other than a "round lot" size. How do I determine the proper lot size for my synthetic position? I think I know the answer, but I want to be sure.
I don't want any other information than that, as I understand what is going on. I've done much research into this kind of thing in other markets, so the concept is not the problem (it's also a type of spread trade, a pair trade, or a conversion trade depending on the market and how you think of it)...just this one thing please!!! I would really appreciate a reply from makosgu or michal with just a SIMPLE calculation.
 michal.kreslik
 rank: 1000+ posts
 Posts: 1034
 Joined: Sat May 13, 2006 2:40 am
 Reputation: 3
 Location: Monte Carlo, Monaco
 Real name: Michal Kreslik
 Gender:
 Contact:
bwilhite wrote:One of these latter pairs will need to be traded at other than a "round lot" size. How do I determine the proper lot size for my synthetic position? I think I know the answer, but I want to be sure.
I don't want any other information than that
Hello, bwilhit,
the answer is here:
http://kreslik.com/forums/viewtopic.php?p=2354#2354
Michal
@Ryan
For me, an FPI moving average does not add value to my trading decision simply because any moving average longer than 1 period will lag. Since a 1 period moving average is simply the current FPI value, the indicator would be redundant for me.
What I do agree about is the optimization of profits. I also agree that the FPI data is normally distributed about 1 as opposed to zero. Knowing the distribution gives us a number of statistical analytics. For example, you can identifiy several standard deviations from the mean, which for our case is 1. The standard deviations tells us the probability that FPI will be within a certain range from the mean/equillibrium (ie. 1 in our case). From this you can you can then estimate the amount of time that FPI will be outside of these upper and lower range boundaries... For example, if 95% of the time, the FPI is ranging between .99 and 1.01, this means that 5% of the time, FPI is either greater than 1.01 or less than .99. If your distribution is constructed from a 5 day sample (ie. 120 hours), then you would expect to see a total of 6 hours of a trigger zone where FPI was greater than 1.01 or less than .99. Of course, this is also assuming that you are constructing your distribution from every FPI change in value (ie. tick) as opposed to each minute bar's open or close. You can tell the error in using the open and close by noticing the change in value of the FPI between the two points. In real time, the difference between the close of one bar and the open of the next bar is a single moment. In other words, sequential bars will show how much of an error there is if there is a significant difference in the FPI value between the close of a bar and the open of the next bar...
As for the differential, we all agree that the differential is important and furthurmore, I agree on maximizing the opportunity. However, we differ is in the magnitude of the deviation. For me, it is not necessary for the deviation to be 3 std devs from 1. 1.5 std devs is good enough given the stats of how the FPI value fluctuates (ie. normally). These are better odds then you will find at any Vegas game.
As a result, the only things that are of importance to me is maximizing profits which again is done be taking some measurable barrier on the distribution, identifying the probability, FPI value in REAL DOLLARS, and then creating the actual profit loss distribution. Solving this distribution in terms of deviations from the mean then shows you an explicit PNL distribution from which you can solve the EXACT threshold barrier to use. Admittedly, this math is overkill but some are satisfied with good enough while others are detailed oriented about all aspects...
REgards...
For me, an FPI moving average does not add value to my trading decision simply because any moving average longer than 1 period will lag. Since a 1 period moving average is simply the current FPI value, the indicator would be redundant for me.
What I do agree about is the optimization of profits. I also agree that the FPI data is normally distributed about 1 as opposed to zero. Knowing the distribution gives us a number of statistical analytics. For example, you can identifiy several standard deviations from the mean, which for our case is 1. The standard deviations tells us the probability that FPI will be within a certain range from the mean/equillibrium (ie. 1 in our case). From this you can you can then estimate the amount of time that FPI will be outside of these upper and lower range boundaries... For example, if 95% of the time, the FPI is ranging between .99 and 1.01, this means that 5% of the time, FPI is either greater than 1.01 or less than .99. If your distribution is constructed from a 5 day sample (ie. 120 hours), then you would expect to see a total of 6 hours of a trigger zone where FPI was greater than 1.01 or less than .99. Of course, this is also assuming that you are constructing your distribution from every FPI change in value (ie. tick) as opposed to each minute bar's open or close. You can tell the error in using the open and close by noticing the change in value of the FPI between the two points. In real time, the difference between the close of one bar and the open of the next bar is a single moment. In other words, sequential bars will show how much of an error there is if there is a significant difference in the FPI value between the close of a bar and the open of the next bar...
As for the differential, we all agree that the differential is important and furthurmore, I agree on maximizing the opportunity. However, we differ is in the magnitude of the deviation. For me, it is not necessary for the deviation to be 3 std devs from 1. 1.5 std devs is good enough given the stats of how the FPI value fluctuates (ie. normally). These are better odds then you will find at any Vegas game.
As a result, the only things that are of importance to me is maximizing profits which again is done be taking some measurable barrier on the distribution, identifying the probability, FPI value in REAL DOLLARS, and then creating the actual profit loss distribution. Solving this distribution in terms of deviations from the mean then shows you an explicit PNL distribution from which you can solve the EXACT threshold barrier to use. Admittedly, this math is overkill but some are satisfied with good enough while others are detailed oriented about all aspects...
REgards...
Oanda test data
Hello,
Here is a test that I did on some Oanda data last night.
EURUSD (buy), USDCHF (buy), EURCHF (sell)
EURUSD (buy), USDJPY (buy), EURJPY (sell)
GBPUSD (buy), USDJPY (buy), GBPJPY (sell)
It seems that Oanda's price data is very efficient. I don't think we will
have many opportunities to use this strategy with Oanda.
I will run the same test with MB Trading and see what happens.
Coder
Here is a test that I did on some Oanda data last night.
EURUSD (buy), USDCHF (buy), EURCHF (sell)
EURUSD (buy), USDJPY (buy), EURJPY (sell)
GBPUSD (buy), USDJPY (buy), GBPJPY (sell)
It seems that Oanda's price data is very efficient. I don't think we will
have many opportunities to use this strategy with Oanda.
I will run the same test with MB Trading and see what happens.
Coder
 Attachments

 Oanda Test Pairs.zip
 (26.22 KiB) Downloaded 316 times
Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.
Thank you for your support.