Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

daedalus

The "New" TTM Squeeze

Recommended Posts

Anyone got ideas on the new "filter"? I thought we could put our collective brainpower to work and might be able to come up with something.

 

At first I thought it was Heiken Ashi Based (his previous video used the filter as a paintbar) but I was unable to replicate it... now i'm leaning towards it being momentum based... ie if the momentum is decreasing for a set period of time or increasing for a set period of time it goes to gray to avoid catching tops or bottoms?

 

http://www.tradethemarkets.com/public/3444.cfm

 

Cheers!

Share this post


Link to post
Share on other sites

The new TTM Squeeze uses up to five anchor charts to filter the firing of the squeeze. It combines the TTM Squeeze TTM Squeeze Indicator, with the TTM Trend TTM Trend Indicator.

The TTM Trend is modified by using up to five anchor charts. For example if you are looking at the "New TTM Squeeze" on a five minute chart, your TTM Trend may have daily, 240 minute, 120 minute, and 60 minute anchor charts. If all of these charts are in alignment, that is blue bars for uptrend, red bars for down trend, you take the squeeze.

Here is a sample of the TTM Trend inputs:

 

Name Value

Tags "XMin/Daily/Weekly/Monthly"

Tag1 "Daily"

Tag2 "240min"

Tag3 "120min"

Tag4 "60min"

Tag5 ""

UpColor blue

DnColor red

NeutralColor lightgray

CompBars 6

 

In conclusion take the squeeze only when it is in the direction of the above TTM Trend. Long squeeze only with blue bars, short squeeze only with red bars, stay out on light gray bars.

 

Hope it helps.

Share this post


Link to post
Share on other sites

Most of their other indicators have simply been 'borrowed' (the less charitable would say stolen) from the public domain. You might have a search of the TS forums and other places that post indicators and see if you can spot the 'inspiration' for this particular study.

Share this post


Link to post
Share on other sites
  Grignouf said:
Hello,

Do you know if a ninja trader's version exists ?

I want to make a MA with the TTM trend but i didn't find the ninja version of TTT trend.

Thanks

 

 

 

Share this post


Link to post
Share on other sites

Anchor and Sub Anchor Charts for Filtering Trades

 

It almost looks like its just an RSI filter... or at least it could be used as a proxy to what was posted above. Thanks for that info on it. It sounds like from what carter explained in this latest video you're right on. To code that you have to set up your chart with multiple data feeds correct?

 

Well aware of TTM's "Borrowing" (aka blatantly stealing) of the _BB Squeeze indicator from the TS forums... I don't use the indicator or plan on it but I just always get intrigued by trying to reverse engineer concepts that marketers like TTM try and keep secret.

Share this post


Link to post
Share on other sites

Yes, it's basically a TTM squeeze in it's original form (TTM Squeeze Indicator), plus a TTM Trend Paint Bar indicator (TTM Trend Indicator), also known as a momentum paint bar indicator.

 

The squeeze is available in may forms aka PBF-Squeeze. The TTM Trend with multiple time frames I haven't seen outside of TradeTheMarkets. Basically you can set up multiple time frame charts using the TTM Trend (pr BR_PaintBars) in a window by using separate charts for the 240, 120, 60 min etc. When all of these time frames are in confluence, one takes the squeeze.

 

The utility of "The New TTM Squeeze" is that it takes the trend indicator across multiple time frames and comes up with color bars in one window. For example if the paint bars in all of the selected time frames are blue (bullish) then one takes long squeezes and ignores shorts. I the paint bars in all of the time frames are red, then one takes only short squeezes, and passes on long squeezes. Gray bars are neutral, meaning that the paint bars on all time frames are not in confluence.

 

I can achieve what the afore mentioned paragraph states by setting up multiple charts with the TTM Trend. I would then have to look at bar colors on up to five charts to search for confluence. "The New TTM Squeeze" is programmed to do this task in one window.

 

Hope this helps, if not let me know.

 

Bruce

Share this post


Link to post
Share on other sites

Thank you for the response, i will do like you said, the equivalent of the TTM Trend is the pr BR_PaintBars but it's ELD and i'm using ninja trader, do you if a NT's version exists ?

Thank

Share this post


Link to post
Share on other sites

Yes there is heiken ashi but it's not the same, maybe the calcul is the same but the paint bar is different, with the TTM Trend it's a chart bar but with the heiken it's modified candlestick, am i clear ?

Share this post


Link to post
Share on other sites

Hi Everybody,

 

Can somebody write the new TTM squeeze and the new TTM trend for TS ?

It would be very nice.

 

Thank you in advance for your help.

 

Cheers,

Chloe

Share this post


Link to post
Share on other sites

It would be easy to code up except I don't get what kind of inputs will allow for different timeframe inputs?

 

If someone could explain how to handle using those as a variable it would be simple.

 

Just a case of if Timeframe1Bias = Up and Timeframe2Bias = up, etc. = Blue else gray.

 

Obviously not the exact syntax, but that idea would work. I just don't understand how to handle those inputs for the timeframes.

Share this post


Link to post
Share on other sites
  daedalus said:
It would be easy to code up except I don't get what kind of inputs will allow for different timeframe inputs?

If someone could explain how to handle using those as a variable it would be simple.

Just a case of if Timeframe1Bias = Up and Timeframe2Bias = up, etc. = Blue else gray.

Obviously not the exact syntax, but that idea would work. I just don't understand how to handle those inputs for the timeframes.

 

 

 

you can try this:

 

10853d1242929871-ade-all-data-everywhere-easylanguage-ade.jpg

 

 

ADE - All Data Everywhere

http://www.traderslaboratory.com/forums/f46/ade-all-data-everywhere-easylanguage-5934.html

Share this post


Link to post
Share on other sites

Carter hosting a webinar tonight Tues. July 21/09 detailing this indicator. FWIW, there is a paintbar study called 'TTM Trend Anchor' and another called 'TTM Squeeze Anchor' - essentially the same principle (cross referencing multi time frames). He just gets to bill ya' twice :deal:

Will post link to webinar recording when it becomes available.

Share this post


Link to post
Share on other sites

Hi Everybody,

 

I have the TTM trend and the TTM squeeze. The Anchor version seems very interesting.

However, I am not good enough at programming. I really do not known how to use multi timeframes in an indicator.

Did somebody try to code the TTM trend Anchor and the TTM squeeze Anchor ?

 

Thank you very much in advance for your help.

 

Best regards,

 

Chloe

Share this post


Link to post
Share on other sites
  chloe31 said:
Hi Everybody,

I have the TTM trend and the TTM squeeze. The Anchor version seems very interesting.

However, I am not good enough at programming. I really do not known how to use multi timeframes in an indicator.

Did somebody try to code the TTM trend Anchor and the TTM squeeze Anchor ?

Thank you very much in advance for your help.

Best regards,

Chloe

 

 

 

Have you done a search with the keyword "Anchor" ???

 

the search button is at the top right corner of this page.

Share this post


Link to post
Share on other sites

Tams, I have searched for these TTM anchors on this site to no avail. One of our resident coding geniuses will have to take a run at this.

Edited by Minetoo
wording

Share this post


Link to post
Share on other sites

This was recently posted in the TS forum. It's a tad different from the TTM version, but could definitely be something to start with.

 

http://www.tradestation.com/Discussions/Topic.aspx?Topic_ID=92189

//============================================================//

//DTTpb_TZU_TTM_Anchor

 

 

Inputs: Sym(GetSymbolName),

ThisInterval(ADE.TickBarT(BarInterval)), {This setting defaults to the interval

of the chart the indicator is set into}

 

Interval1 (55),// number of ticks

Interval2 (89),// number of ticks

Interval3 (144),// number of ticks

Interval4 (233), // number of ticks

UpColor(Blue),

NeutColor(DarkGray),

DnColor(Red),

BarWidth(1),

CompBars(6),

DeriveBars(0),

UseFile(ADE.UseFile); // default UseFile is returned by ADE.UseFile function

 

Vars:

{ ThatInterval(ADE.TickBarT(200)), {Change this setting to the interval of the

chart with the embedded sender indicator}

}

Color1(0),

Color2(0),

Color3(0),

Color4(0),

colorAll(0),

Class("OHLCV"),

haClose1(0),

haClose2(0),

haClose3(0),

haClose4(0),

haOpen1(0),

haOpen2(0),

haOpen3(0),

haOpen4(0);

{************************************Data1***********************}

Value31 = ADE.TickBarT(Interval1);

if CurrentBar = 1 and UseFile then

Value11 = ADE.OpenMap(Class, Sym, Value31);

 

Value51 = Value41;

Value41 = TZS.SyncBarID(ThisInterval, Value31);

 

if Value41 <> Value51 then

begin

haClose1 = (ADF.GetData(Class, Sym, Value31, Value41, "Open", 0)

+ADF.GetData(Class, Sym, Value31, Value41, "High", 0)

+ADF.GetData(Class, Sym, Value31, Value41, "Low", 0)

+ADF.GetData(Class, Sym, Value31, Value41, "Close", 0) )/4;

haOpen1 = ADF.GetData(Class, Sym, Value31, Value41, "Open", 0) ;

 

end;

if CurrentBar > 1 then begin

haClose1 = (ADF.GetData(Class, Sym, Value31, Value41, "Open", 0)

+ADF.GetData(Class, Sym, Value31, Value41, "High", 0)

+ADF.GetData(Class, Sym, Value31, Value41, "Low", 0)

+ADF.GetData(Class, Sym, Value31, Value41, "Close", 0) )/4;

haOpen1 = (haOpen1[1] + haClose1[1])/2 ;

 

if haClose1 > haOpen1 then Color1 =1 else Color1 =-1 ;

for value1 = 1 to CompBars

begin

if haOpen1 <= MaxList(haOpen1[value1],haClose1[value1]) and

haOpen1 >= MinList(haOpen1[value1],haClose1[value1]) and

haClose1 <= MaxList(haOpen1[value1],haClose1[value1]) and

haClose1 >= MinList(haOpen1[value1],haClose1[value1]) then

Color1 = Color1[value1];

end;end;

 

{************************************Data2*********************** }

Value32 = ADE.TickBarT(Interval2);

if CurrentBar = 1 and UseFile then

Value12 = ADE.OpenMap(Class, Sym, Value32);

 

Value52 = Value42;

Value42 = TZS.SyncBarID(ThisInterval, Value32);

 

if Value42 <> Value52 then

begin

haClose2 = (ADF.GetData(Class, Sym, Value32, Value42, "Open", 0)

+ADF.GetData(Class, Sym, Value32, Value42, "High", 0)

+ADF.GetData(Class, Sym, Value32, Value42, "Low", 0)

+ADF.GetData(Class, Sym, Value32, Value42, "Close", 0) )/4;

haOpen2 = ADF.GetData(Class, Sym, Value32, Value42, "Open", 0) ;

 

end;

if CurrentBar > 1 then begin

haClose2 = (ADF.GetData(Class, Sym, Value32, Value42, "Open", 0)

+ADF.GetData(Class, Sym, Value32, Value42, "High", 0)

+ADF.GetData(Class, Sym, Value32, Value42, "Low", 0)

+ADF.GetData(Class, Sym, Value32, Value42, "Close", 0) )/4;

 

haOpen2 = (haOpen2[1] + haClose2[1])/2 ;

 

if haClose2 > haOpen2 then Color2 =1 else Color2 =-1 ;

for value1 = 1 to CompBars

begin

if haOpen1 <= MaxList(haOpen1[value1],haClose1[value1]) and

haOpen1 >= MinList(haOpen1[value1],haClose1[value1]) and

haClose1 <= MaxList(haOpen1[value1],haClose1[value1]) and

haClose1 >= MinList(haOpen1[value1],haClose1[value1]) then

Color2 = Color2[value1];

end;end;

 

{************************************Data3***********************}

Value33 = ADE.TickBarT(Interval3);

if CurrentBar = 1 and UseFile then

Value13 = ADE.OpenMap(Class, Sym, Value33);

 

Value53 = Value43;

Value43 = TZS.SyncBarID(ThisInterval, Value33);

 

if Value43 <> Value53 then

begin

haClose3 = (ADF.GetData(Class, Sym, Value33, Value43, "Open", 0)

+ADF.GetData(Class, Sym, Value33, Value43, "High", 0)

+ADF.GetData(Class, Sym, Value33, Value43, "Low", 0)

+ADF.GetData(Class, Sym, Value33, Value43, "Close", 0) )/4;

haOpen3 = ADF.GetData(Class, Sym, Value33, Value42, "Open", 0) ;

 

end;

if CurrentBar > 1 then begin

haClose3 = (ADF.GetData(Class, Sym, Value33, Value43, "Open", 0)

+ADF.GetData(Class, Sym, Value33, Value43, "High", 0)

+ADF.GetData(Class, Sym, Value33, Value43, "Low", 0)

+ADF.GetData(Class, Sym, Value33, Value43, "Close", 0) )/4;

 

haOpen3 = (haOpen3[1] + haClose3[1])/2 ;

 

if haClose3 > haOpen3 then Color3 =1 else Color3 =-1 ;

for value1 = 1 to CompBars

begin

if haOpen3 <= MaxList(haOpen3[value1],haClose3[value1]) and

haOpen3 >= MinList(haOpen3[value1],haClose3[value1]) and

haClose3 <= MaxList(haOpen3[value1],haClose3[value1]) and

haClose3 >= MinList(haOpen3[value1],haClose3[value1]) then

Color3 = Color3[value1];

end;end;

{************************************Data4***********************}

Value34 = ADE.TickBarT(Interval4);

if CurrentBar = 1 and UseFile then

Value14 = ADE.OpenMap(Class, Sym, Value34);

 

Value54 = Value44;

Value44 = TZS.SyncBarID(ThisInterval, Value34);

 

if Value44 <> Value54 then

begin

haClose4 = (ADF.GetData(Class, Sym, Value34, Value44, "Open", 0)

+ADF.GetData(Class, Sym, Value34, Value44, "High", 0)

+ADF.GetData(Class, Sym, Value34, Value44, "Low", 0)

+ADF.GetData(Class, Sym, Value34, Value44, "Close", 0) )/4;

haOpen4 = ADF.GetData(Class, Sym, Value32, Value42, "Open", 0) ;

 

end;

if CurrentBar > 1 then begin

haClose4 = (ADF.GetData(Class, Sym, Value34, Value44, "Open", 0)

+ADF.GetData(Class, Sym, Value34, Value44, "High", 0)

+ADF.GetData(Class, Sym, Value34, Value44, "Low", 0)

+ADF.GetData(Class, Sym, Value34, Value44, "Close", 0) )/4;

haOpen4 = (haOpen4[1] + haClose4[1])/2 ;

 

if haClose4 > haOpen4 then Color4 =1 else Color4 =-1 ;

for value1 = 1 to CompBars

begin

if haOpen4 <= MaxList(haOpen4[value1],haClose4[value1]) and

haOpen4 >= MinList(haOpen4[value1],haClose4[value1]) and

haClose4 <= MaxList(haOpen4[value1],haClose4[value1]) and

haClose4 >= MinList(haOpen4[value1],haClose4[value1]) then

Color4 = Color4[value1];

end;end;

 

{************************************Plot***********************}

 

if color1 + color2 + color3 + color4 = 4 then

colorAll = UpColor

else

// colorAll = NeutColor;

 

if color1 + color2 + color3 + color4 = -4 then

colorAll = DnColor

else

colorAll = NeutColor;

 

plotPB(High,Low,"heikin-ashi",colorAll);

SetPlotWidth(1,BarWidth);

SetPlotColor(1,colorAll);

Share this post


Link to post
Share on other sites

I was going to say, if one more person asks for the TTM Anchor, I am going to puke on my keyboard.

 

Now that the TTM Anchor code is posted...

I am bracing myself for the onslaught of questions on **WHY** it is NOT working in their computers.

 

 

 

To save you the trouble of asking...

the Anchor requires the ADE and TZU add-on

http://www.traderslaboratory.com/forums/f46/ade-all-data-everywhere-easylanguage-5934.html

Please make sure you read the 1st post thoroughly...

after you have understood the post and followed the instruction,

(especially the instruction of the last paragraph)

then move on to post #11,

read and install as directed.

 

If you still can't get it to work... have your credit card ready, call TTM.

 

Good luck.

Edited by Tams

Share this post


Link to post
Share on other sites

Hi Tams,

 

I am really sorry, I have installed the ADE and TZu add-ons. Then I have imported in Multicharts 5.0 the code provided by TraderJen. When I compile the code, I have an error message: ADF.GetData: Unknown Function ?

Would you be kind enough to help me please ?

 

Thanks in advance

Best regards,

Chloe

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Topics

  • Posts

    • Thx for reminding us... I don't bang that drum often enough anymore Another part for consideration is who that money initially went to...
    • TDUP ThredUp stock, watch for a top of range breakout above 2.94 at https://stockconsultant.com/?TDUP
    • How long does it take to receive HFM's withdrawal via Skrill? less than 24H?
    • My wife Robin just wanted some groceries.   Simple enough.   She parked the car for fifteen minutes, and returned to find a huge scratch on the side.   Someone keyed her car.   To be clear, this isn’t just any car.   It’s a Cybertruck—Elon Musk's stainless-steel spaceship on wheels. She bought it back in 2021, before Musk became everyone's favorite villain or savior.   Someone saw it parked in a grocery lot and felt compelled to carve their hatred directly into the metal.   That's what happens when you stand out.   Nobody keys a beige minivan.   When you're polarizing, you're impossible to ignore. But the irony is: the more attention something has, the harder it is to find the truth about it.   What’s Elon Musk really thinking? What are his plans? What will happen with DOGE? Is he deserving of all of this adoration and hate? Hard to say.   Ideas work the same way.   Take tariffs, for example.   Tariffs have become the Cybertrucks of economic policy. People either love them or hate them. Even if they don’t understand what they are and how they work. (Most don’t.)   That’s why, in my latest podcast (link below), I wanted to explore the “in-between” truth about tariffs.   And like Cybertrucks, I guess my thoughts on tariffs are polarizing.   Greg Gutfield mentioned me on Fox News. Harvard professors hate me now. (I wonder if they also key Cybertrucks?)   But before I show you what I think about tariffs… I have to mention something.   We’re Headed to Austin, Texas This weekend, my team and I are headed to Austin. By now, you should probably know why.   Yes, SXSW is happening. But my team and I are doing something I think is even better.   We’re putting on a FREE event on “Tech’s Turning Point.”   AI, quantum, biotech, crypto, and more—it’s all on the table.   Just now, we posted a special webpage with the agenda.   Click here to check it out and add it to your calendar.   The Truth About Tariffs People love to panic about tariffs causing inflation.   They wave around the ghost of the Smoot-Hawley Tariff from the Great Depression like it’s Exhibit A proving tariffs equal economic collapse.   But let me pop this myth:   Tariffs don’t cause inflation. And no, I'm not crazy (despite what angry professors from Harvard or Stanford might tweet at me).   Here's the deal.   Inflation isn’t when just a couple of things become pricier. It’s when your entire shopping basket—eggs, shirts, Netflix subscriptions, bananas, everything—starts costing more because your money’s worth less.   Inflation means your dollars aren’t stretching as far as they used to.   Take the 1800s.   For nearly a century, 97% of America’s revenue came from tariffs. Income tax? Didn’t exist. And guess what inflation was? Basically zero. Maybe 1% a year.   The economy was booming, and tariffs funded nearly everything. So, why do people suddenly think tariffs cause inflation today?   Tariffs are taxes on imports, yes, but prices are set by supply and demand—not tariffs.   Let me give you a simple example.   Imagine fancy potato chips from Canada cost $10, and a 20% tariff pushes that to $12. Everyone panics—prices rose! Inflation!   Nope.   If I only have $100 to spend and the price of my favorite chips goes up, I either stop buying chips or I buy, say, fewer newspapers.   If everyone stops buying newspapers because they’re overspending on chips, newspapers lower their prices or go out of business.   Overall spending stays the same, and inflation doesn’t budge.   Three quick scenarios:   We buy pricier chips, but fewer other things: Inflation unchanged. Manufacturers shift to the U.S. to avoid tariffs: Inflation unchanged (and more jobs here). We stop buying fancy chips: Prices drop again. Inflation? Still unchanged. The only thing that actually causes inflation is printing money.   Between 2020 and 2022 alone, 40% of all money ever created in history appeared overnight.   That’s why inflation shot up afterward—not because of tariffs.   Back to tariffs today.   Still No Inflation Unlike the infamous Smoot-Hawley blanket tariff (imagine Oprah handing out tariffs: "You get a tariff, and you get a tariff!"), today's tariffs are strategic.   Trump slapped tariffs on chips from Taiwan because we shouldn’t rely on a single foreign supplier for vital tech components—especially if that supplier might get invaded.   Now Taiwan Semiconductor is investing $100 billion in American manufacturing.   Strategic win, no inflation.   Then there’s Canada and Mexico—our friendly neighbors with weirdly huge tariffs on things like milk and butter (299% tariff on butter—really, Canada?).   Trump’s not blanketing everything with tariffs; he’s pressuring trade partners to lower theirs.   If they do, everybody wins. If they don’t, well, then we have a strategic trade chess game—but still no inflation.   In short, tariffs are about strategy, security, and fairness—not inflation.   Yes, blanket tariffs from the Great Depression era were dumb. Obviously. Today's targeted tariffs? Smart.   Listen to the whole podcast to hear why I think this.   And by the way, if you see a Cybertruck, don’t key it. Robin doesn’t care about your politics; she just likes her weird truck.   Maybe read a good book, relax, and leave cars alone.   (And yes, nobody keys Volkswagens, even though they were basically created by Hitler. Strange world we live in.) Source: https://altucherconfidential.com/posts/the-truth-about-tariffs-busting-the-inflation-myth    Profits from free accurate cryptos signals: https://www.predictmag.com/       
    • No, not if you are comparing apples to apples. What we call “poor” is obviously a pretty high bar but if you’re talking about like a total homeless shambling skexie in like San Fran then, no. The U.S.A. in not particularly kind to you. It is not an abuse so much as it is a sad relatively minor consequence of our optimism and industriousness.   What you consider rich changes with circumstances obviously. If you are genuinely poor in the U.S.A., you experience a quirky hodgepodge of unhelpful and/or abstract extreme lavishnesses while also being alienated from your social support network. It’s about the same as being a refugee. For a fraction of the ‘kindness’ available to you in non bio-available form, you could have simply stayed closer to your people and been MUCH better off.   It’s just a quirk of how we run the place and our values; we are more worried about interfering with people’s liberty and natural inclination to do for themselves than we are about no bums left behind. It is a slightly hurtful position and we know it; we are just scared to death of socialism cancer and we’re willing to put our money where our mouth is.   So, if you’re a bum; you got 5G, the ER will spend like $1,000,000 on you over a hangnail but then kick you out as soon as you’re “stabilized”, the logistics are surpremely efficient, you have total unchecked freedom of speech, real-estate, motels, and jobs are all natural healthy markets in perfect competition, you got compulsory three ‘R’’s, your military owns the sky, sea, space, night, information-space, and has the best hairdos, you can fill out paper and get all the stuff up to and including a Ph.D. Pretty much everything a very generous, eager, flawless go-getter with five minutes to spare would think you might need.   It’s worse. Our whole society is competitive and we do NOT value or make any kumbaya exception. The last kumbaya types we had werr the Shakers and they literally went extinct. Pueblo peoples are still around but they kind of don’t count since they were here before us. So basically, if you’re poor in the U.S.A., you are automatically a loser and a deadbeat too. You will be treated as such by anybody not specifically either paid to deal with you or shysters selling bejesus, Amway, and drugs. Plus, it ain’t safe out there. Not everybody uses muhfreedoms to lift their truck, people be thugging and bums are very vulnerable here. The history of a large mobile workforce means nobody has a village to go home to. Source: https://askdaddy.quora.com/Are-the-poor-people-in-the-United-States-the-richest-poor-people-in-the-world-6   Profits from free accurate cryptos signals: https://www.predictmag.com/ 
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.