FPI - Fractional Product Inefficiency: The Impeccable Hedge

NeoTicker indicators

Moderator: moderators

gustavodemelo
rank: <50 posts
rank: <50 posts
Posts: 4
Joined: Wed Nov 14, 2007 3:01 am
Reputation: 0
Gender: Male
Contact:

Postby gustavodemelo » Wed Mar 12, 2008 3:40 am

Michal, considering your comments, is more important open rings using lowest spreads then the higest swaps?

Actualy all brokers made adjust in swap table, ordered from banks resolution. Reccalculating the new swaps, we can see the less sum of swaps in many rings pairs.

May this is justified when we are exploring the FPI.

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

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

Postby michal.kreslik » Wed Mar 12, 2008 9:44 am

gustavodemelo wrote:Michal, considering your comments, is more important open rings using lowest spreads then the higest swaps?


There are many factors that affect the creation of an FPI ring. These factors have different weight in the FPI ring selection process at any given time. Compound spread and compound interest are just two of these factors.

Michal

Pipster
rank: <50 posts
rank: <50 posts
Posts: 2
Joined: Tue Mar 11, 2008 8:11 pm
Reputation: 0
Gender: Male

Question.

Postby Pipster » Wed Mar 12, 2008 3:11 pm

michal.kreslik wrote:
gustavodemelo wrote:Michal, considering your comments, is more important open rings using lowest spreads then the higest swaps?


There are many factors that affect the creation of an FPI ring. These factors have different weight in the FPI ring selection process at any given time. Compound spread and compound interest are just two of these factors.

Michal


Hi Michal! I'm new to your forum and really quite new to the idea of your hedging strategy. I haven't download anything of yours just yet. But I thought that buying both G$ & $J and selling the GJ was completing a ring. I have monitored the range over the last couple of days. But this morning I woke up to the range rising to over 90 pips. Would you consider this to be normal and do they really complete a ring? I used 1 lot per trade, demo. Thanks in advance and I like what your doing here on your forum.



Pipster

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

Re: Question.

Postby michal.kreslik » Wed Mar 12, 2008 3:21 pm

Pipster wrote:I used 1 lot per trade, demo.


That's incorrect, this way you are not hedged. You have to match the position sizes for all currencies in the FPI ring.

Read the articles on how to calculate the position sizes for the FPI rings here in the thread.

Michal

Pipster
rank: <50 posts
rank: <50 posts
Posts: 2
Joined: Tue Mar 11, 2008 8:11 pm
Reputation: 0
Gender: Male

Re: Question.

Postby Pipster » Wed Mar 12, 2008 3:32 pm

michal.kreslik wrote:
Pipster wrote:I used 1 lot per trade, demo.


That's incorrect, this way you are not hedged. You have to match the position sizes for all currencies in the FPI ring.

Read the articles on how to calculate the position sizes for the FPI rings here in the thread.

Michal


Ok thank you, I will do that. But even if you have the correct the correct the position sizes. Does the 90 pips difference seem normal? Thanks again.

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

nadobait
rank: <50 posts
rank: <50 posts
Posts: 1
Joined: Sat Dec 22, 2007 12:52 am
Reputation: 0
Gender: None specified

Tick vs. Timed MBT Data

Postby nadobait » Wed Mar 12, 2008 10:53 pm

Hi,

I have been reading this thread with much interest for a while now. I have created an app that collects data and calc's the FPI, as many of us have done. However, in doing so I think I have stumbled on a problem with MBT data. Here is a brief email exchange I had with their SDK support team:

SDK Team
========
Level I (qsfLevelOne) quotes are, and always will be, updated on a very small frequency of somewhere around 20-30 ms, and not with every tick. Otherwise, all other quote levels are, and always will be, updated with every tick.


Me
=======
My question is pretty straight forward.

1) I create an MbtQuotes, MbtComMgr, MbtOrderClient and MbtAccount
object in order to connect and receive price quotes to trade forex
only.

2) I use the IMbtQuotesNotify_OnQuoteData update event in order to do
my per tick calculations and then decide if I want to execute a trade.

3) Your previous post that "Level I (qsfLevelOne) quotes are, and
always will be, updated on a very small frequency of somewhere around
20-30 ms, and not with every tick. Otherwise, all other quote levels
are, and always will be,updated with every tick," is a bit confusing
in this context.

So my questions are:

1) Are the currency pairs that I subscribe to creating OnQuteData
update events whenever they are traded or there is a new bid or ask?
And if so, which event actually triggers the OnQuoteData event?

2) Or, are synthetic OnQuoteData events created for the currency
pairs I am subscribed to every 20-30 ms and sent as if they were tick
events to the onQuoteData update event?


SDK Team
=========
1. Neither.

2. QUOTERECORDs are sent every 20ms, with real-time data.

I'm staying away from agreeing that "Synthetic" and "as if they were..." are appropriate.


Conclusion
========
The MBT data that get's passed on an OnQuoteData event is in reality a timer event that get's passed as tick event. I am not sure that this has a huge impact as they say it is every 20-30 ms, but it is interesting to know and to keep it in mind to see if it impacts anything.

androfx
rank: <50 posts
rank: <50 posts
Posts: 20
Joined: Thu Oct 26, 2006 3:27 pm
Reputation: 0
Location: Europe, Czech Republic... sometimes
Gender: None specified

Postby androfx » Tue Apr 22, 2008 9:33 am

Algorithm in Python I have published in this thread has a logical problem. I do not know if Michal's code contains the same problem but it could as his code was a template for me.

Basically when there are two or more independent rings in matrix only the first one will be found. Effectively duplicated rings will appear on the output. I have added a check for that in code.

And there was a limitation on number of possible pairs to process. If you wanted to process more than 30 pairs the program failed.

All these issues are solved now.

Time to process even this optimized algorithm takes too long time. Combinations of 28 pairs take around 8 hours on Pentium 3.0Ghz and double with every additional pair. IB offers 51 pairs :lol: Not all of them are really active - like USD/PLN so we get down to around 45... just need ~120 years :cry: . Even with the cluster I have access to I get down to 12 years 8)

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

Re: Question.

Postby michal.kreslik » Tue Apr 22, 2008 9:35 am

Pipster wrote:
michal.kreslik wrote:
Pipster wrote:I used 1 lot per trade, demo.


That's incorrect, this way you are not hedged. You have to match the position sizes for all currencies in the FPI ring.

Read the articles on how to calculate the position sizes for the FPI rings here in the thread.

Michal


Ok thank you, I will do that. But even if you have the correct the correct the position sizes. Does the 90 pips difference seem normal? Thanks again.


Pipster,

the question is, what do you exactly mean by the "range"? If you've set up the FPI ring correctly, the individual currency pairs can go anywhere they like (1000 pips away) and still, you're fully hedged.

Michal

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

Re: Tick vs. Timed MBT Data

Postby michal.kreslik » Tue Apr 22, 2008 9:50 am

nadobait wrote:Hi,

I have been reading this thread with much interest for a while now. I have created an app that collects data and calc's the FPI, as many of us have done. However, in doing so I think I have stumbled on a problem with MBT data. Here is a brief email exchange I had with their SDK support team:

SDK Team
========
Level I (qsfLevelOne) quotes are, and always will be, updated on a very small frequency of somewhere around 20-30 ms, and not with every tick. Otherwise, all other quote levels are, and always will be, updated with every tick.


Me
=======
My question is pretty straight forward.

1) I create an MbtQuotes, MbtComMgr, MbtOrderClient and MbtAccount
object in order to connect and receive price quotes to trade forex
only.

2) I use the IMbtQuotesNotify_OnQuoteData update event in order to do
my per tick calculations and then decide if I want to execute a trade.

3) Your previous post that "Level I (qsfLevelOne) quotes are, and
always will be, updated on a very small frequency of somewhere around
20-30 ms, and not with every tick. Otherwise, all other quote levels
are, and always will be,updated with every tick," is a bit confusing
in this context.

So my questions are:

1) Are the currency pairs that I subscribe to creating OnQuteData
update events whenever they are traded or there is a new bid or ask?
And if so, which event actually triggers the OnQuoteData event?

2) Or, are synthetic OnQuoteData events created for the currency
pairs I am subscribed to every 20-30 ms and sent as if they were tick
events to the onQuoteData update event?


SDK Team
=========
1. Neither.

2. QUOTERECORDs are sent every 20ms, with real-time data.

I'm staying away from agreeing that "Synthetic" and "as if they were..." are appropriate.


Conclusion
========
The MBT data that get's passed on an OnQuoteData event is in reality a timer event that get's passed as tick event. I am not sure that this has a huge impact as they say it is every 20-30 ms, but it is interesting to know and to keep it in mind to see if it impacts anything.


I'm not using the MBT SDK directly, so I can't comment on that first hand. Anyway, in order to calculate the FPI value, you should look for all new quotes, i.e. changes in either the bid or ask.

I would not use the term "tick" in any communication as it's very confusing. It's not clear whether it refers to the snapshot of a quote or to a new trade.

In NeoTicker, the code recalculation can either get triggered by:
  • a "tick" (new trade), or
  • by a preset time interval (like 100 ms) or new trade

Obviously, it's more precise to trigger the recalculation by a preset time interval/new trade (such an indicator is called a "timer"). This way, you're not missing on the quote changes that happen between the individual trades.

Michal

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

Postby michal.kreslik » Tue Apr 22, 2008 10:20 am

androfx wrote:Algorithm in Python I have published in this thread has a logical problem. I do not know if Michal's code contains the same problem but it could as his code was a template for me.

Basically when there are two or more independent rings in matrix only the first one will be found. Effectively duplicated rings will appear on the output. I have added a check for that in code.

My code published in the introductory article checks whether there is more than one valid ring in the tested matrix present and if so, it discards the whole matrix. Obviously, the valid rings will appear in another matrix combination. So there are no duplicate rings and no missing rings in the output.

Quoting from the introductory article:

michal.kreslik wrote:To declare the currently tested FPI ring as valid:

...

the tested combination must not contain more than one valid FPI ring


Michal

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


Return to “NeoTicker indicators”