DOM & Math - futures io
futures io



DOM & Math


Discussion in Traders Hideout

Updated
      Top Posters
    1. looks_one Fernand0 with 5 posts (1 thanks)
    2. looks_two mesuteryilmaz with 4 posts (1 thanks)
    3. looks_3 iantg with 3 posts (11 thanks)
    4. looks_4 Jigsaw Trading with 1 posts (3 thanks)
      Best Posters
    1. looks_one iantg with 3.7 thanks per post
    2. looks_two Jigsaw Trading with 3 thanks per post
    3. looks_3 mesuteryilmaz with 0.3 thanks per post
    4. looks_4 Fernand0 with 0.2 thanks per post
    1. trending_up 1,628 views
    2. thumb_up 16 thanks given
    3. group 7 followers
    1. forum 15 posts
    2. attach_file 3 attachments




Welcome to futures io: the largest futures trading community on the planet, with well over 125,000 members
  • Genuine reviews from real traders, not fake reviews from stealth vendors
  • Quality education from leading professional traders
  • We are a friendly, helpful, and positive community
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts
  • We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

(If you already have an account, login at the top of the page)

 
Search this Thread
 

DOM & Math

(login for full post details)
  #1 (permalink)
Fernand0
Argentina
 
 
Posts: 19 since Apr 2018
Thanks: 8 given, 3 received

Hi, i just want to know if studying the DOM and trying to apply some sort of formula would work for scalping or at least to know the change of trend.

I'm asking for some guidance.

Does it worth the time? What i should study? How long it would take? (i have full free time)

If someone has experience on this and can share some info would be awesome too.

The problem is that my whole life i've been using indicators... and i always ended up nowhere without a possitive profit factor.

If you have another suggestion because the DOM study is not viable, bring it!

Hope you can help me. ANY sort of information would help.

Thanks for your time.

Reply With Quote

Journal Challenge April 2021 results (now extended!):
Competing for $1800 in prizes from Jigsaw
looks_oneMaking a Living with the Microsby sstheo
(287 thanks from 25 posts)
looks_twoSalao's Journalby Salao
(67 thanks from 12 posts)
looks_3Deetee’s DAX Trading Journal (time based)by Deetee
(49 thanks from 20 posts)
looks_4Learning to Profit - A journey in algorithms and optionsby Syntax
(37 thanks from 15 posts)
looks_5Maybe a little bit different journalby Malykubo
(17 thanks from 17 posts)
 
Best Threads (Most Thanked)
in the last 7 days on futures io
The Crude Dude Oil Trading System
87 thanks
Big Mike in Ecuador
76 thanks
Help improve the FIO community
38 thanks
The New Micro Contract - MICRO BITCOIN coming May 2021
30 thanks
futures io site changelog and issues/problem reporting
21 thanks
 
(login for full post details)
  #3 (permalink)
 paps 
SF Bay Area + CA/US
 
Experience: None
Platform: TS, TOS, Ninja(Analytics)
Trading: NQ CL, ES when volatile mrkts
 
paps's Avatar
 
Posts: 1,721 since Oct 2011
Thanks: 2,173 given, 1,710 received


There are many videos by Pete of Jigsaw ...he shows how a person new to DOM can try to understand order flow. There is no quick check in trading and similar in DOM. Your experience will matter. Try to understand the basics....what is a limit order and how it moves the market...what is aggressive limit and can you spot them.....what is the use of market order. If wanting to know DOM....this should be known

Cheers n Goodluck

Reply With Quote
 
(login for full post details)
  #4 (permalink)
 Jigsaw Trading  Jigsaw Trading is an official Site Sponsor
Site Sponsor

Web: Jigsaw Trading
AMA: Ask Me Anything
Webinars: Jigsaw Trading Webinars
Elite offer: Click here
 
 
Jigsaw Trading's Avatar
 
Posts: 2,982 since Nov 2010
Thanks: 825 given, 10,323 received

OK - so somethings can appear to be mathematical when they are not.

For example, the mathematics behind hitting a tennis ball back across a net to land in a specific spot - they are quite complex. So you could think 'wow - our brains are doing all that math' - but it's not like that really. Just because something can be expressed with math, does not make it a mathematical endeavor.

What I would say with this sort of stuff is if you are looking for a "1 rule trading system" e.g., when this > that and the other = something else. You won't get anywhere.

As you've gotten nowhere with indicators, you have to consider whether you might be taking the same failed approach to the DOM - trying to turn it into a mechanical system with math. The market is a living, breathing mass of people that get excited and then caught offside. I think you should have a think about maybe embracing discretionary trading rather than moving from mechanizing charts to mechanizing the DOM.

But - good luck!

If you have any questions about the products or services provided, please send me a Private Message or use the futures.io "Ask Me Anything" thread
Visit my futures io Trade Journal Reply With Quote
The following 3 users say Thank You to Jigsaw Trading for this post:
 
(login for full post details)
  #5 (permalink)
 tpredictor 
North Carolina
 
Experience: Beginner
Platform: NinjaTrader, Tradestation
Trading: es
 
Posts: 644 since Nov 2011

@Fernand0 I think the problem is not that you were using indicators but that you haven't embraced market cognition. Yes, it is possible to build great indicators that have actual edge. It is not an easy task though. As for DOM/tape reading, if it energizes you, it might be worthwhile component in your trading. If you just stare at it and go to sleep, you might be better off trying system trading. The biggest help I might suggest is to start to think how different participants are making decisions in the market, what types of leverage they are using, the frequency of their information, etc. Try to find what you are really good at and expand on it. Right, finding such a good indicator is part of the work you need to be doing. You need to have the creativity to come up with these ideas. That's where your edge could be.

Reply With Quote
 
(login for full post details)
  #6 (permalink)
 mesuteryilmaz 
istanbul turkey
 
Experience: None
Platform: meta
Trading: eur
 
Posts: 5 since Oct 2012
Thanks: 9 given, 1 received


Fernand0 View Post
Hi, i just want to know if studying the DOM and trying to apply some sort of formula would work for scalping or at least to know the change of trend.

I'm asking for some guidance.

Does it worth the time? What i should study? How long it would take? (i have full free time)

If someone has experience on this and can share some info would be awesome too.

The problem is that my whole life i've been using indicators... and i always ended up nowhere without a possitive profit factor.

If you have another suggestion because the DOM study is not viable, bring it!

Hope you can help me. ANY sort of information would help.

Thanks for your time.


When I saw your post I got exited, and thought “ I’m not alone”. So far answers and comments are highly disappointing.


Sent from my iPad using futures.io

Reply With Quote
 
(login for full post details)
  #7 (permalink)
Fernand0
Argentina
 
 
Posts: 19 since Apr 2018
Thanks: 8 given, 3 received


mesuteryilmaz View Post
When I saw your post I got exited, and thought “ I’m not alone”. So far answers and comments are highly disappointing.

Yes, nobody talked about statistics or math or w.e....

According to the answers so far... i have to pay for Jigsaw or be a psychic to think what other people is thinking...
"1 rule trading system".. i didn't say that, ever..... DOM it's complex but still, it can be quantified...

Reply With Quote
 
(login for full post details)
  #8 (permalink)
 mesuteryilmaz 
istanbul turkey
 
Experience: None
Platform: meta
Trading: eur
 
Posts: 5 since Oct 2012
Thanks: 9 given, 1 received

My humble opinion:
Analyze LOB and Time&Sales seek and find statistically significant relationship.
How you do that?
You need tick by tick real-time data, collect, store, then analyze it.
Find patterns,
My guess is Neural networks


Sent from my iPad using futures.io

Reply With Quote
The following user says Thank You to mesuteryilmaz for this post:
 
(login for full post details)
  #9 (permalink)
 iantg 
charlotte nc
 
Experience: Master
Platform: ninjatrader
Broker: NinjaTrader
Trading: Emini (ES, YM, NQ, ect.)
 
Posts: 399 since Jan 2015
Thanks: 76 given, 1,089 received

For sure you quantify if information from the DOM has a correlation to how the market moves. To do this, you just need to build an extraction program to get the raw data. You don't need anything fanciful like AI, or ML to solve this for you, all you need is the raw data in a spreadsheet and a few basic formulas to determine if there are any legit bets that definitively pan out.

Getting the data extracted and compiled into the right format for your analysis is way more complex than running the analysis itself. I can tell you the process for both extracting the data, building the data model as well as how to perform the analysis. I don't play in this particular (DOM / Scalping) space myself, so even though I have this data I don't use it for this purpose. But generally here is the approach.

1. To get the raw data: You will need to make a call to your level 2 feed on some sort of frequency to get access to every level and extract these. Some approaches may be to sample this every 1 minute, every 5 seconds, or whatever. To me, the best approach is always the most granular which is to sample this on every price level change. So that's what I do. You will need to build logic in your extraction code to run your ask and bid levels relative to the current best bid, best ask so you have a relationship built in to sequence everything in order. So to do this you need to tap your level 1 feed as well. This won't automatically sync with your level 2 feed with most software 100% perfectly, so you will have to solve for this. Without a good structure you can get out of sequence very easily and the whole thing falls apart. You will also need your level 1 data to capture volume as well. I strongly recommend capturing the starting volume and ending volume from the bid and ask on every price level. It's also very helpful if you capture the added volume, subtracted volume canceled volume and transacted volume... Bifurcating these into different buckets will tell you a lot about the microstrucutre and the level 2 data resting 2,3,4 levels out will have more context once you see these types of KPIs.

2. To analyze the data: (Easy Part) All you need to do is define a series of bets that you want to test and then you do a few simple (look forward) formulas to check a few rows ahead to see if your hypothesis panned out or not. Here is an example.

A: Hypothesis Example: If the bid volume is 2x the ask volume on the first resting level out, then the market will move up. From here you just quantify each row where this condition is true, and then you set a formula to look ahead 3,5,10 rows, etc to the next price level change and see if the price level moves up or down. If it moves up. (Your bet was right, give yourself a + 1) If it moves down (Your bet was wrong, give yourself a -1) At the end of analyzing X amount of price level changes, over X amount of days, weeks, months, etc. Count your +1 and -1 and see the score. You can build the results into any fancy output you want.... Once you have the data you can measure this by time of day, day of week, etc... There are tons of ways to quantify how often and how decisively your bet panned out. Just make sure you dig deep enough. One or two days, or even a few weird market cycles can produce some outlier statistics. But you can easily solve this part.

B: Stress testing your results: This part is important. Just because you cross the 51% line doesn't mean you have a legit bet, you need to actually KILL it, to have a shot at covering your commission cost, and accounting for all the things that could go wrong. And finally, this is the most important part.... You need to make sure that you could have had any chance in hell of getting filled in the first place if you use limit orders. There are tons and I mean tons of edges that look like the holly grail that mathematically speaking have a 70%, 80%, 90% edge, until you realize that these are only available to the top 5% of the queue that gets filled on the side that wins the price level.

So that's the long answer, but short answer, yes you can easily do all of this. I may eventually be willing to share some of the microstructure raw data and research I have, but getting the raw data is the hard part. Testing a bet is very easy.

The kind of questions you are asking and the pursuit you are on is the right pursuit in my opinion.

Best of luck!

Ian

In the analytical world there is no such thing as art, there is only the science you know and the science you don't know. Characterizing the science you don't know as "art" is a fools game.
Visit my futures io Trade Journal Reply With Quote
The following 5 users say Thank You to iantg for this post:
 
(login for full post details)
  #10 (permalink)
Fernand0
Argentina
 
 
Posts: 19 since Apr 2018
Thanks: 8 given, 3 received


@iantg
Nice post, thanks a lot for the guidance.. so.. it works for you.
I know how to get all the data, the problem is the data structure(because it keeps changing all the time, so.. what's relevant?) and how to process such data.

Everything you are willing to share.. please do. I would be very grateful. This already helps me a lot.

Again, thank you very much.

Reply With Quote
The following user says Thank You to Fernand0 for this post:
 
(login for full post details)
  #11 (permalink)
 mesuteryilmaz 
istanbul turkey
 
Experience: None
Platform: meta
Trading: eur
 
Posts: 5 since Oct 2012
Thanks: 9 given, 1 received

Analyzing the Limit Order Book by Jonhattan Doering





Sent from my iPad using futures.io

Reply With Quote
 
(login for full post details)
  #12 (permalink)
Fernand0
Argentina
 
 
Posts: 19 since Apr 2018
Thanks: 8 given, 3 received

@mesuteryilmaz
Good video, but in this case the distance between theory and practice is huge

Reply With Quote
 
(login for full post details)
  #13 (permalink)
 iantg 
charlotte nc
 
Experience: Master
Platform: ninjatrader
Broker: NinjaTrader
Trading: Emini (ES, YM, NQ, ect.)
 
Posts: 399 since Jan 2015
Thanks: 76 given, 1,089 received

In terms of what you need data structure wise.... You need to start by defining your bet, and then work backwards to define the variables you need to solve for. Right or wrong, most people will gravitate to a type of bet that looks like this image. I'll explain....



For every price level there is a best bid and best ask, and at any given point in time these will both have their respective volumes. Now all things even (here we assume the flow of market orders coming in are relatively even on both sides) one would assume the side (best bid or best ask) that has the higher volume will survive the incoming market orders. If this volume ratio is something like 1 to 1 or .8 to 1.2 then meh... No big deal, but if this gets more lopsided then one could start to make a fairly accurate bet that the side with a higher volume will win. Before I go any further let me just state that this particular bet (best ask vs. best bid) will almost always play out the same way on every price level. But unfortunately virtually no one can take advantage of this. Here is the detailed explanation for this: Every price level starts with a weak side and a strong side. The strong side gets to drag in resting volume to start the level, and the weak side has to start the price level with 0 volume. So ultimately the strong side will prevail way more often than not. For example on the ES, the strong side win rate is close to 90%. So what this translates to is that 100% of the queue on the weak side will get filled but only a tiny amount of people on the winning strong side will get filled. After studying this for a considerable amount of time, I will save you all the headache and tell you, there is no bet here you can get in on. The winning strong side only typically fills 10% or less of it's queue, so this isn't a bet for retail traders to attempt.

But there are other bets that you can get in on. The fight is never between the best bid and best ask but between the two adjacent strong sides. In the image above this is noted by the two sections with 1 tick under them. The way the market moves is that if the best bid breaks then the market moves to the left to the 1 tick strong side resting volume as a starting point and the ask will have to spontaneously back fill it's starting volume, it will likely not be able to do this for very long.... So then the Ask side breaks and the market moves to the right and we repeat. This fight typically lasts on the ES for 10 to 15 price levels before one of the two adjacent strong sides actually breaks. So your bet is which strong side will break. On each price level this fight will be between the winning (Best Bid / Best Ask which is usually a strong side) and opposite side resting volume 1 tick out. I hope the crude illustration helps a little bit.

Tuning your bet: So assume that we are in a period where the market order distribution is relatively even... This part is key. If you can extract your strong side resting volumes 1 level out then you can evaluate if one side is definitively stacked more than the other. You may also run this bet in connection with the strong side volumes 2 levels out to 3 levels out. I don't personally thing there is too much value in looking more than a few levels out because in most cases the top 2-3 levels will determine what happens next. Resting volume 7-10 levels out won't influence the next few immediate price level changes at all. So you can typically stop after maybe 3 levels when building your bet criteria.


The image below summarizes the full level 1 micro-structure so you can see what you are solving for.





Here what you are really comparing are the two adjacent strong side volumes. You can quickly spot the pattern and tell that Bid typically starts as the weak side when the price moves up, and starts as the strong side when the price moves down, and vice versa for the ask. The highlighted in bold rows denote when a real strong side price breaks. The other price level changes are just flips between adjacent strong sides breaking the opposite weak side over and over. if you look to the last strong side price level you will see that the bid strong side is starting out with 30% to 40% more than than the ask strong side and ultimately wins the price level. I am not making the claim that this is always the case or even a solid bet, I am just explaining the data and how you could derive a bet.

So in order to get what I have and also have your level 2 resting volume sequenced properly you will need to pull in these additional variables to the ones I already have listed.

Bid Resting 1 level out
Ask Resting 1 level out

And you might want to also pull in the volumes at 2 ticks out and maybe 3 ticks out. After that, I don't think the data will be of much use.

So for every row, you will need to ignore the actual price, and just have a variable called Bid Resting 1 level out (as an example) and capture the level 2 data that is in position 1 on the ladder for example. Once you have this data structure built, then you can look ahead and test your bet like this:

If (Condition on current row) Volume of Ask vs. Volume of Bid 1 level out, or adjacent strong side volumes, etc has a ratio of X then bet Y.

To Test if you are correct in your bet, you just do a look forward formula in excel checking the next strong side price level to break a few rows down the spreadsheet... If you are right give yourself a +1, if you are wrong give yourself a -1.

That's it.

I am enclosing a sample level 2 book in NinjaTrader you can start playing with to get you familiar with the OnMarketDepth feed as well.

Hope this example helps get you started!

Ian

In the analytical world there is no such thing as art, there is only the science you know and the science you don't know. Characterizing the science you don't know as "art" is a fools game.
Attached Files
Register to download File Type: zip SampleLevel2Book_NT8.zip (3.5 KB, 12 views)
Visit my futures io Trade Journal Reply With Quote
The following 3 users say Thank You to iantg for this post:
 
(login for full post details)
  #14 (permalink)
Fernand0
Argentina
 
 
Posts: 19 since Apr 2018
Thanks: 8 given, 3 received

@iantg

Thanks a lot Ian. I will try to start testing different data structures according to several theories, doing it backwards, like you said.
Your post is really good, it makes you think, it opens your mind to new scenarios.

I think it's a lot of work... some statistics knowledge could help :P
I will see what i can do!

Thanks for your time and patience.

The force be with you.

Reply With Quote
 
(login for full post details)
  #15 (permalink)
 mesuteryilmaz 
istanbul turkey
 
Experience: None
Platform: meta
Trading: eur
 
Posts: 5 since Oct 2012
Thanks: 9 given, 1 received


iantg View Post
In terms of what you need data structure wise.... You need to start by defining your bet, and then work backwards to define the variables you need to solve for. Right or wrong, most people will gravitate to a type of bet that looks like this image. I'll explain....







For every price level there is a best bid and best ask, and at any given point in time these will both have their respective volumes. Now all things even (here we assume the flow of market orders coming in are relatively even on both sides) one would assume the side (best bid or best ask) that has the higher volume will survive the incoming market orders. If this volume ratio is something like 1 to 1 or .8 to 1.2 then meh... No big deal, but if this gets more lopsided then one could start to make a fairly accurate bet that the side with a higher volume will win. Before I go any further let me just state that this particular bet (best ask vs. best bid) will almost always play out the same way on every price level. But unfortunately virtually no one can take advantage of this. Here is the detailed explanation for this: Every price level starts with a weak side and a strong side. The strong side gets to drag in resting volume to start the level, and the weak side has to start the price level with 0 volume. So ultimately the strong side will prevail way more often than not. For example on the ES, the strong side win rate is close to 90%. So what this translates to is that 100% of the queue on the weak side will get filled but only a tiny amount of people on the winning strong side will get filled. After studying this for a considerable amount of time, I will save you all the headache and tell you, there is no bet here you can get in on. The winning strong side only typically fills 10% or less of it's queue, so this isn't a bet for retail traders to attempt.



But there are other bets that you can get in on. The fight is never between the best bid and best ask but between the two adjacent strong sides. In the image above this is noted by the two sections with 1 tick under them. The way the market moves is that if the best bid breaks then the market moves to the left to the 1 tick strong side resting volume as a starting point and the ask will have to spontaneously back fill it's starting volume, it will likely not be able to do this for very long.... So then the Ask side breaks and the market moves to the right and we repeat. This fight typically lasts on the ES for 10 to 15 price levels before one of the two adjacent strong sides actually breaks. So your bet is which strong side will break. On each price level this fight will be between the winning (Best Bid / Best Ask which is usually a strong side) and opposite side resting volume 1 tick out. I hope the crude illustration helps a little bit.



Tuning your bet: So assume that we are in a period where the market order distribution is relatively even... This part is key. If you can extract your strong side resting volumes 1 level out then you can evaluate if one side is definitively stacked more than the other. You may also run this bet in connection with the strong side volumes 2 levels out to 3 levels out. I don't personally thing there is too much value in looking more than a few levels out because in most cases the top 2-3 levels will determine what happens next. Resting volume 7-10 levels out won't influence the next few immediate price level changes at all. So you can typically stop after maybe 3 levels when building your bet criteria.





The image below summarizes the full level 1 micro-structure so you can see what you are solving for.











Here what you are really comparing are the two adjacent strong side volumes. You can quickly spot the pattern and tell that Bid typically starts as the weak side when the price moves up, and starts as the strong side when the price moves down, and vice versa for the ask. The highlighted in bold rows denote when a real strong side price breaks. The other price level changes are just flips between adjacent strong sides breaking the opposite weak side over and over. if you look to the last strong side price level you will see that the bid strong side is starting out with 30% to 40% more than than the ask strong side and ultimately wins the price level. I am not making the claim that this is always the case or even a solid bet, I am just explaining the data and how you could derive a bet.



So in order to get what I have and also have your level 2 resting volume sequenced properly you will need to pull in these additional variables to the ones I already have listed.



Bid Resting 1 level out

Ask Resting 1 level out



And you might want to also pull in the volumes at 2 ticks out and maybe 3 ticks out. After that, I don't think the data will be of much use.



So for every row, you will need to ignore the actual price, and just have a variable called Bid Resting 1 level out (as an example) and capture the level 2 data that is in position 1 on the ladder for example. Once you have this data structure built, then you can look ahead and test your bet like this:



If (Condition on current row) Volume of Ask vs. Volume of Bid 1 level out, or adjacent strong side volumes, etc has a ratio of X then bet Y.



To Test if you are correct in your bet, you just do a look forward formula in excel checking the next strong side price level to break a few rows down the spreadsheet... If you are right give yourself a +1, if you are wrong give yourself a -1.



That's it.



I am enclosing a sample level 2 book in NinjaTrader you can start playing with to get you familiar with the OnMarketDepth feed as well.



Hope this example helps get you started!



Ian



Very nice. It will make a great differences if you are getting this data in every 100msec as a retail trader or colocated.
Or it doesn’t matter?
Otherwise they will be 100msec ahead of you every time let alone the latency.


Sent using the futures.io mobile app

Reply With Quote
 
(login for full post details)
  #16 (permalink)
 iantg 
charlotte nc
 
Experience: Master
Platform: ninjatrader
Broker: NinjaTrader
Trading: Emini (ES, YM, NQ, ect.)
 
Posts: 399 since Jan 2015
Thanks: 76 given, 1,089 received

Hi mesuteryilmaz,

Regarding this type of data, and the speed of processing, it has several different purposes. On the one hand you are correct that there is a latency threshold.... Beyond a certain point certain bets will not work. But on the other hand, there are some bets that are not latency sensitive at all.

The purpose of this type of data structure modeling is two fold.

1. Source the raw data, synthesize it to build a complete level 3 - level 4 micro-structure fully analyzed. This part has no latency, since you are doing it after the fact for strictly analytical purposes. Here you are exploring the raw structure of the market and learning which edges truly exist by testing every type of bet possible. I urge everyone to do this step, no matter what their trading style is. The better the data set, the better and more accurate their bet - testing will be.

2. Once you have identified several bets with potential edges, you will need to analyze the time stamps of the price level changes and determine which bets you will ever have a chance of pulling off given your commission cost structure, co-location or lack-thereof, etc.

When you build your production code to run in real time, you likely will not be trying to build this type of information in real time because it will draw too much overhead and slow your execution code. So you will need to strip away the extraneous bells and whistles that are more for analytical purposes like tuning your bet, and focus on the alpha signals that you need to place your bet.

Hope this helps a little.

Ian



mesuteryilmaz View Post
Very nice. It will make a great differences if you are getting this data in every 100msec as a retail trader or colocated.
Or it doesn’t matter?
Otherwise they will be 100msec ahead of you every time let alone the latency.


Sent using the futures.io mobile app


In the analytical world there is no such thing as art, there is only the science you know and the science you don't know. Characterizing the science you don't know as "art" is a fools game.
Visit my futures io Trade Journal Reply With Quote
The following 3 users say Thank You to iantg for this post:


futures io Trading Community Traders Hideout > DOM & Math


Last Updated on July 28, 2018


Upcoming Webinars and Events
 

NinjaTrader Indicator Challenge!

Ongoing
 

Journal Challenge w/$1,800 in prizes!

April
     



Copyright © 2021 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
no new posts