Friday, 26 February 2010

Euro$ update/outcome

We did find support and a solid bottom at the areas of confluence (as per this weeks earlier posts). So where are we now heading at the close of the week on Friday 26 feb 2010?In this short term 60min chart we see the last fews days price action but we have for the moment run out of energy on the red UMLP and i am not 100% sure if we have touched the blue centre line so may expect a retracement HOWEVER the formation of the bottom wave looks very encouraging plus the 61.8% Fib level makes me think we are now due a rally of some time perhaps even uptowards 1.4500 levels.
SHORT TERM 60 mins

MEDIUM TERM

LONG TERM + Fib levels


Thursday, 25 February 2010

Important long term Lower ML parallel approaches for Eur$ -UPDATE

This looks like a possible bottom as per the post on Tuesday 23 Feb 2010 & Wednesday 24Feb( yesterday)
The red LMLP and the blue centre line are the long term lines i was harping on about. Price rallied and hit the Fib inner line(brick red) and came back but has found support in a very choppy market.I suspect we will test the lows again and if we hold then we could have our bottom. Incidentally we are bang on the 61.8% Fib retracement starting from March 09 to the top in early Dec 09.

EurGbp


When these Median lines (+ inner lines/reaction lines etc) work well ,they are a joy to behold .

Sterling $.....is this a possible low?


Point of confluence here with the blue ML set and its Mod Schiff relation. Both the LMLP and green centre line are v close and it looks as though the Euro maybe bottoming out. Plus we have the action/reaction line shown here in red and the Bolly Bands.

Wednesday, 24 February 2010

Euro$ update on yesterday's chart comments

So, It looks like the Euro has held as i suspected on these important long term lines with a 'touch' on the long term LMLP (in blue below) and it is well away in the up sloping ML set and has already hit the centre line and come right back on the lower median line parallel as i write at 7PM Euro time well after the close of the European session and well into the US PM trading session..... Tomorrow a GBPUSD chart with long term support. Yen looks weak tonight especially if we are going to see a $ sell-off over the coming days/weeks...before i suspect we($) heads higher again.

Tuesday, 23 February 2010

Trade setup for $JPY Classic Over/Under Divergence


This is a trade setup i have been learning to use for some time and is an ideal tool as part of a overall trading strategy and lends itself particularly to Median Line trading as it helps identify tops and bottoms in the market. It is not a trading system on its own and should be used in conjunction with other high probability setups/indicators such as BollyBands(in this case), Fib levels etc. plus of course a ML (centre line, lower or upper ML parallel, warning line, trigger line, MPL and even a trend line). You should always seek to confirm in more than one time frame.
It takes practice but seems to have a pretty high success rate with low risk (close stop). I would be interested to hear from anyone else who uses this setup viz-a-viz any refinements i could make. This example of a top is from last Friday 19 Feb 2010 in a 4hr $JPY chart.
Use a double stochastic in one window. a 7-3-3 (SMA) and a 21-10-4 (SMA).
1. The market tests a previous swing high (& there s/b a divergence between price & stoch)
2. The 7-3-3 stoch must be making a lower high than on the previous swing high
3. The 7-3-3 stoch must be below the 21-10-4 stoch on the most current swing high but above it on the previous swing.
4. You do nothing until the test bar occurs ( signalled with down arrow) then the next bar(confirmation bar-'ticked' in chart above) must make a lower low and take out the low of that test bar.
My observations are that the 7-3-3 stoch can be just 'kissing' above /alongside (but still above) the full 21-10-4 stoch on the first high. The same goes for the signal lines. After the confirmation bar the 7-3-3 should fall away. This can and should be confirmed in more than one time frame....see the 1hr. I had a trade setup/plan here which included Bollinger Bands ( see above) and also ML's and one other EA.
I am grateful for this setup which was originally illustrated and described by trader "Birdman" in 2003 on www.dacharts.com. He also does a trendline lecture (MP3 file + slides) on the same site which is excellent.

Important long term Lower ML parallel approaches for Eur$

IMPORTANT EURO$ support reached 5:55pm Paris time.(GMT+1)

This could be it folks. The point at which we see a rally for the Euro.Look at the daily charts above and you will see you have the LMLP of the up sloping red ML set and the centre line of the downsloping blue ML set. Using an alternative long term Mod Schiff ML set below we also can see the same top UMLP and we are now resting on a lower quartile plus this level today is a Fib 61.8 %retracement (from the low of approx 1.2450 in march 2009 to the high of approx 1.5175 autumn 2009).

Here's how it looks in Metatrader both as a daily and one hour. Waiting is the name of the game to see what happens to price and what bottom pattern if any is formed. It seems significant as this is a point of important confluence & price could react sharply, either by rallying or passing through the blue centre line at speed going lower.





Saturday, 20 February 2010

EurGbp & Crude


Pleased to have stayed out of the market. Both CLH & CLJ show that price still has energy to expend and EurGbp has gone through the UMLP.




Friday, 19 February 2010

Final Friday update Eurgbp & CL#H &CL#J


I have switched to April crude oil from march and also have brought P0 down from its previous position to the most recent swing high before P1-P2. The result looks very significant. There is bearish divergence on several indicators and we are bang on the phyc level of 80.00 bucks...worth going short...i am still uneasy but may trade the close as we get nearer?
Re EurGbp i we are again on the UMLP but i am unhappy about going short here with the recent bottom formation.
The $Jpy position from yesterday evening has a healthy profit and its better to stay out of CLJ(?) & EurGbp if in doubt.....tomorrow(Monday) is another day.

EurGbp another missed chance like CL#H


Here is the EurGbp 60min chart (LHS) that i showed and mused over this morning about a possible short trade. Here is another EurGbp 60min (RHS) chart with a different ML set that is in dotted magenta and has been in play longer that the turquoise ML set plus a slightly different red ML set where price actually never made it to the centre line. Anyway it would have been a great daytrade as all my indicators +B-bands's in multiple time frames suggested that price had/has peaked here for the time being at least.

March crude hits long term centre line @79.57


Ok here's the chart above of march 2010 crude that i have posted throughout this month with a great trigger line trade/failure to reach centre line trade. Today price continued to rally and we saw a high at $79.57....on closer examination this is my main centre line (of a mod Schiff ML set drawn in red) and seems to have acted as resistance. Possible short trade but not yet as price could shoot through though it looks tired. Sadly RSI & Stochs & ADX all suggested a short trade right on the redline but i was away from my screens. It doesnt fit my risk requirements and i am marking it down as a missed opportunity.

EurGbp Friday 19 Feb 2010


Price here is interacting around at least 3 ML sets. The long term centre line can just be seen in grey descending from the top LHS to the RHS. Then we have two other shorter term ML sets in play both with one touch each ( red & turquoise). Price has reached the centre line of both red and turquoise ML sets. Price is currently on the UMLP of the turquoise ML set and both stochastics on 1 and 4 hrs show price as due to fall. Plus we also can see an inverted head & shoulders pattern that has played out. This is too risky a trade for me but i will watch and see how price behaves on this UMLP and may come back to EurGbp today or next week.

$yen update


OK we were filled on the retest of the UMLP and are + 1 $(-JPY) @91.306 and have a break even stop there now as the market is currently mid euro AM session 91.77
With the usual Friday session expected i think we could see price go significantly higher. My slight worry is that we may see price back down and get stopped out and lose our trading advantage in this trade.
PS: the lower long position @89.24 is one held for over a week.

Thursday, 18 February 2010

EurUsd trade


Well i missed the best of this and came away from the table with a few crumbs. Price ran out of momentum and could not reach my two MA's ( i use 144 EMA & 169 EMA with a 12 period EMA as a signal line but the two longer term MA's provide good support/res). As quickly as it went up it came back down. As soon as price started to fall i moved my break even stops to yesterdays low of 1.3585 and hey presto +13 tics on each but overall a disappointment as this trade had potential. Now i want to see if the brown LMLP supports price but as we never reached the centre line of our brown ML set i suspect we are heading lower..

USDJPY breaking the UpperMedianLineParallel


Basic stuff here as per my first post today on $Yen( failure to reach the ML). This is the e-signal multiple Interbank data feed 60min chart on UsdJpy showing a clear breach of the UpperMLP.
I am looking to buy on a retest. We have a good move here having taken out prior highs of 91.27 (at the begining of Feb) and next objective is 91.86. The long term charts are begining to look very raunchy for the US$.

EurUsd update


Just for kicks, heres the bullish hammer candlestick bar that came back to test the brown LMLP and possibly the red centre line of a confirmed active ML set. Price is very volatile. Experience tells me that this formation is very 'clean' and has no deformaties except the LHS of the wave/mountain which we have already passed and price could easily reach the apex around 1.3740 BUT no point in being greedy and we will be patient and see what happens

Eur Usd step two 15:40 Central Euro Time


Ok, Price breaks upwards on this classic formation and we move our stop straight up to break even. You can see on the centre chart the very long term Mod Schiff ML set in thick white which has provided support at the lower median line parallel.
Profits are to be taken, one lot first at the first yellow dashed centre line and depending on what happens we may either keep one lot (as we have brought at a critical low of the long term thick white LMLP) or take a second profit at the brown centre line.




Quick Trade

EurUsd @15:02 CET


This looks a very good trade. EurUsd on the 30 min or 60 min chart. The LMLP has been reached in my metatrader chart but this formation looks very nice indeed and there is a confirmation touch on the new-ish upsloping ML set drawn here in thin blue/black.




USDJPY Possible failure to reach centre line.

As i have stated in my original introduction post ( right at the bottom of this page) i am looking for a significant US $ rally in 2010............
Since the inception of this blog we have seen Eur$ £$ both weaken and the $chf & $jpy both strengthen. The Swissy has done especially well but i have neglected it at the expense of concentrating on $jpy which has not performed so well and i missed my chances in $chf.
Well we could see a breakout here on the chart above and i am waiting and biding my time to see if we trade through the UMLP on the 240min chart above. I would wait for a clear break and possible retest but am watching closely. The Mod Schiff of the down sloping brown ML set is of course almost identically the same as the dotted blue ML set.
Price will retreat from the UMLP this session and then could come back for another try.

Wednesday, 17 February 2010

Your an absolute shower !


EurGbp Final update...Profit stopped out


My trade was stopped out @ .8693. With one third (+$500) of the possible potential 1500$ profit that we saw and could have realised at the high of .8745 yesterday BUT with a double top formation (price unable to get through .8745 again this morning and continue to the centre ML) it was obvious that we would go lower. Nevertheless a profitable trade.

Back to the EurGbp trade....update 2


Here we are Wednesday (17 feb 2010) morning at roughly the beginning of the main European session. We saw price rally through out yesterday's PM trading and we reached a classic point on the roof of the wave/hump/mountain. I have circled yesterdays high and the swing low which hangs down bisecting the wave.This was v. near the 50% fib retracement. Trading the reaction after a wave formation is a classic trade & had i had multiple lots i would have taken partial profits. Price fell after running out of energy and found support on our monthly FTpivot support 1 and on the lower B-B and 60 SMA. Today we need to take out yesterdays high and continue to make higher highs and lower lows. My profit stop remains at .8693. Now we will see what direction price is going.

Tuesday, 16 February 2010

Remember to be grateful for progress


Just to remind any visitors to this blog how far technology has changed this business here are three charts from the 1980s. A French Franc line chart, Aussie$ 90day bar & daily T-Bonds. These charts could be printed off live on the trading desk when needed and were state of the art ( then!). All are simple black and white. The oldest two on fax type paper. Basic studies like ROC, RSI & MA's , Stochs became integrated into the software in the late 80's. The system were adequate but hand drawn charts still had the edge in my opinion. The most frequent use of this early software was usually to print of Time & Sales for customer disputes over bad order executions on futures trades !

EurGbp trade update



Here are two views of GBPEUR(e-signal) and EURGBP(metatrader). Both are hourly charts. We are long Euros - Short Pounds at 1.1547 (bang on the pink UMLP) or .8659(red LMLP). I have already roughly covered in the previous post my thought mechanism for initiating the trade but i had omitted to give the trade objective. The initial objective is seen on the Metatrader chart as the middle green centre line. The second objective is point of confluence on the downwards sloping dotted magenta UMLP and the centre line of the gold dotted up sloping ML set( which is a new ML set drawn today/thin blue on e-signal). The daily floor trader pivots are also shown.We have a monthly second support FTPivot at .8668. To protect some profit from this trade i am moving my stop from break even to the lower median line parallel dotted gold which is also a weekly pivot support level 1 @. 8693. This protects approx 50% of exisiting profits as of the current price at the time of writing. stop level shown as blue horizontal line in e-signal chart.





Monday, 15 February 2010

Oil MPL Good Illustration


Just for illustration here(pink) is the MPL that price found support on....it extends way back into the dark distant past of CL #09. I have marked just some of the 'touches' in this time frame with white circles and the most recent swing low is on the RHS circled in pink. Above this line is yet another MPL that we may be doing business with shortly.

March Crude Update on price activity in Median Line set


This is my market structure/Median line chart stripped right down of indicators and moving averages and other studies to make it easier to view in simple terms. Every pertinent recent swing high and low that produces a Median line set has been marked on in dotted coloured lines ( and may not have any price interaction and can eventually be discarded but are all potential swing/ support resistance areas) but i am really only looking at three Median line sets of which the major ML set(A-B-C) is marked in slate blue with the inner quartiles. The Mod Schiff which gave us price resistance so effectively before on it's upper MLP (at point F) is marked in dashed purple at the midpoint of A/C-B -C. I am also now looking for short term price activity within the ML set E-F-D where we saw the last swing high/ price resistance at the confluence of the centre line of E-F-D and also the orange dotted ML set A-D-C. That most recent move from D to the centre line has now retraced 50% back down found support and now looks as though price may move higher to test the previous purple dashed down sloping Mod Schiff ML from the (Trigger Line/failure to reach ML) trade setup i illustrated on Friday 5 Feb and before.
Support at 69.50 has stopped a major change of trend( in my opinion) and the retracement from B -C to CD = 100%.
To me this market looks weak and at best seems to be going sideways.

Two Median Line tools ( Metatrader Indicator & Book)

Two bits that may help anyone out there who struggles with drawing Metatrader Median lines, Schiff, Mod Schiff, action-reaction lines, inner lines (Fib or quartiles), warning lines, trigger lines and lastly sliding parallel (i may have missed something out). This indicator does it all and is an invaluable tool for those using Metatrader. It's a well programmed Indicator as a MQ4 file and i will forward it on request to anyone interested. The only slightly amusing thing is that the talented programmer who created this is obviously not English as he refers to 'Medium lines' in the notes However this is a superb tool for anyone drawing alot of ML's and needing accuracy and flexibility.

Secondly, There are many excellent books for the beginner, intermediate and advanced user including Tim Morge's books (who is pretty much the gold standard for ML trading) and Greg Fisher's book(s) which are excellent. Dr Dolgoda books i find unnecessarily overcomplicated.
One book stands out for me and is available ( at the time of writing in feb 10) free on the Internet on SCRIBD, the freeshare publishing site. You could save yourself 50$. The book is:
'The Best Trendline Methods of Alan Andrews and Five New Trendline Methods' BY Patrick Mikula. It is and does exactly what the title says and i recommend this book to every & anyone at whatever level.
I am happy to forward the PDF file privately on request.

Update: 2012
Here is the MT4 script for the custom PF indicator used on this site. It has been slightly tweeked by me. Feel free to copy and paste into MetaEditor and then compile etc.
The custom indicator for Esignal 10.6 is not stable and still undergoing programming work. It uses too much CPU and you would need a mainframe computer such as the CIA have at Langley.Va. This is due to the construction of Esignals coding.  The program does work but needs tweeking. I am happy to share only if the cost is contributed towards.It is a powerful tool that draws reaction lines/reaction grids. The problem has been if either or all P0,P1,P2 are not contained in the data available ( ie limited 60 mn data viewed in the 5 min TF may not contain the historical pivots)  then it uses the CPU to try to scratch its head to work out where every point on each line should be and gets extremely hot and flustered....Ensign windows is a write off as far a reaction lines and historical PF's are concerned which is ironic as it has the best basic PF tool but suffers from the same problem as Esignal and R lines and forks disappear when the time frame is stepped up/down dramatically, again due to data probs so you can't view a monthly PF in the 5 min TF as the pivots dont exisit/go back far enough.



//+------------------------------------------------------------------+
//|                                                       AML_v1.mq4 |
//|                                        caveman @ Forex Factory   |
//+------------------------------------------------------------------+
#property copyright "CaveMan"
#property link      "http://www.forexfactory.com"

#property indicator_chart_window

//+----------------------------------------------------------------------------------------------------------+
//|
//| A simple indicator to draw Andrew's Median Lines with support for
//|
//| 1. Inner Lines (using fibonnaci levels and standard equal portions)
//| 2. Warning Lines
//| 3. Reaction Lines
//| 4. Trigger Lines
//| 5. Sliding Parallel Lines
//| 6. Andrew's, Schiff, Modified Schiff and Catalin
//|
//| To start using the indicator, start by plotting a Pitchfork onto the chart.
//| Next, rename the Pitchfork to the name you set in the indicator. Default is AL1.
//|
//| Then go to the indicator property for options to custom configure to your own preference.
//|
//| Instructions for using Sliding Parallel Lines
//| =============================================
//| 3 Sliding Parallel Lines are supported. To use Sliding Parallel Lines, just draw a trend line and rename
//| it to AL_Name + SP1 or SP2 or SP3.
//|
//| e.g.
//| if using default AL_Name of AL1, then rename your sliding paralell lines as AL1SP1, AL1SP2 and AL1SP3.
//|
//| Multiple instances of the indicator can be loaded to support multiple Andrew's Meridian Lines on a chart.
//| Be sure to allocate unique names to each of the ALs. The same applies for the sliding parallel lines.
//|
//| e.g. if using 2nd AL with AL_Name AL2, then sliding paralells for this AL is AL2SP1, AL2SP2 and AL3SP3.
//|
//|
//| That's it.
//|
//+----------------------------------------------------------------------------------------------------------+

extern string AL_Name = "AL1";
extern int Choose_Type_of_Meridian_Lines = 1;
extern string Option_1 = "Andrew ML";
extern string Option_2 = "Schiff ML (time same, price half P0 P1)";
extern string Option_3 = "Modified Schiff ML (price and time half P0 P1)";
extern string Option_4 = "Catalin ML (time same, price P0 = P2)";
extern string Hide_AL_Instruction1 = "Set same color as chart background to";
extern string Hide_AL_Instruction2 = "hide original AL when using modified MLs.";
extern color Original_AL_Color = DimGray;
extern color Chart_Bkgrd_Color = Black;

extern string Advance_Options = "Choose AL Extensions.";
extern bool Draw_Trigger_Lines = false;
extern bool Draw_Inner_Lines = false;
extern bool Use_Fib_Levels_4_Inner_Lines = true;
extern string Use_Fib_3_Inner_Lines_Note1 = "True means use Fibonacci Levels. 4 Inner Lines.";
extern string Use_Fib_3_Inner_Lines_Note2 = "False means equally divided. Set no. of lines.";
extern int Num_Of__Inner_Lines_2_or_6 = 2;
extern bool Draw_Warning_Lines = true;
extern int Num_Of_Warning_Lines = 26;
extern bool Draw_Reaction_Lines = true;
extern int Num_Of_Reaction_Lines = 26;
extern bool Extend_Reaction_Lines = true;

extern bool Draw_Sliding_Parallel = true;
extern string Sliding_Parallel_Instruction1 = "To automate sliding parallel lines,";
extern string Sliding_Parallel_Instruction2 = "draw up to 3 trend lines and name them";
extern string Sliding_Parallel_Instruction3 = "as such: AL_Name defined above + SP1 to SP3.";
extern string Sliding_Parallel_Instruction4 = "e.g AL1SP1, AL1SP2, AL1SP3 for 2 sliding parallels.";

extern string Look_and_Feel = "Set colors, width and styles";

extern string Settings_for_Meridian_Lines = "==========================================================";
extern color Main_AL_Color = Teal;
extern int Main_AL_Style = 0;
extern int Main_AL_Width = 0;
extern color Modified_AL_Color = Blue;
extern int Modified_AL_Style = 0;
extern int Modified_AL_Width = 0;
extern string Settings_for_Inner_Lines = "==========================================================";
extern color Upper_LN1_Color = Gray;
extern int Upper_LN1_Style = STYLE_DOT;
extern int Upper_LN1_Width = 0;
extern color Upper_LN2_Color = Gray;
extern int Upper_LN2_Style = STYLE_DASH;
extern int Upper_LN2_Width = 0;
extern color Upper_LN3_Color = Gray;
extern int Upper_LN3_Style = STYLE_DOT;
extern int Upper_LN3_Width = 0;
extern color Lower_LN1_Color = Gray;
extern int Lower_LN1_Style = STYLE_DOT;
extern int Lower_LN1_Width = 0;
extern color Lower_LN2_Color = Gray;
extern int Lower_LN2_Style = STYLE_DASH;
extern int Lower_LN2_Width = 0;
extern color Lower_LN3_Color = Gray;
extern int Lower_LN3_Style = STYLE_DOT;
extern int Lower_LN3_Width = 0;
extern string Settings_for_Warning_Lines = "==========================================================";
extern color Warning_LN_Color = Brown;
extern int Warning_LN_Style = STYLE_DASHDOT;
extern int Warning_LN_Width = 0;
extern string Settings_for_Reaction_Lines = "==========================================================";
extern color Reaction_LN_Color = Brown;
extern int Reaction_LN_Style = STYLE_DASHDOT;
extern int Reaction_LN_Width = 0;
extern string Settings_for_Sliding_Parallels = "==========================================================";
extern color Sliding_Parallel_Color = Yellow;
extern int Sliding_Parallel_Style = STYLE_SOLID;
extern int Sliding_Parallel_Width = 0;
extern string Settings_for_Trigger_Lines = "==========================================================";
extern color Trigger_Lines_Color = Gray;
extern int Trigger_Lines_Style = STYLE_DASHDOTDOT;
extern int Trigger_Lines_Width = 0;
extern string Settings_for_Info_Label = "==========================================================";
extern bool show_label = true;
extern color label_color = Red;
extern int label_window_corner = 0;
extern int label_x_shift = 5;
extern int label_y_shift = 20;
extern string label_font_type = "Arial";
extern int label_font_size = 10;

string SP_Name1, SP_Name2, SP_Name3;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SP_Name1 = AL_Name+"SP1";
   SP_Name2 = AL_Name+"SP2";
   SP_Name3 = AL_Name+"SP3";
  
 
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete(AL_Name+"AL_Label");
   ObjectDelete(AL_Name+"Upper_ML1");
   ObjectDelete(AL_Name+"Upper_ML2");
   ObjectDelete(AL_Name+"Upper_ML3");
   ObjectDelete(AL_Name+"Lower_ML1");
   ObjectDelete(AL_Name+"Lower_ML2");
   ObjectDelete(AL_Name+"Lower_ML3");
   ObjectDelete(AL_Name+"Modified_AL");
   ObjectDelete(AL_Name+"Hidden_TL");
   ObjectDelete(AL_Name+"Trigger_Line1");
   ObjectDelete(AL_Name+"Trigger_Line2");
   ObjectDelete(SP_Name1+"1");
   ObjectDelete(SP_Name2+"1");
   ObjectDelete(SP_Name3+"1");
   for(int i=1; i <= Num_Of_Warning_Lines;i++)
      {
         string text = AL_Name+"Upper_Warning_LN"+i;
         ObjectDelete(text);
         text = AL_Name+"Lower_Warning_LN"+i;
         ObjectDelete(text);
      }
   for(i=1; i <= Num_Of_Reaction_Lines;i++)
      {
         text = AL_Name+"Reaction_LN1"+i;
         ObjectDelete(text);
         text = AL_Name+"Reaction_LN2"+i;
         ObjectDelete(text);
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
  {
   if (ObjectFind(AL_Name)!= -1) // || ObjectFind(AL_Name+"Modified_AL") != -1)
      {
         double Price1 = ObjectGet(AL_Name, OBJPROP_PRICE1);
         double Price2 = ObjectGet(AL_Name, OBJPROP_PRICE2);
         double Price3 = ObjectGet(AL_Name, OBJPROP_PRICE3);
         datetime Time1 = ObjectGet(AL_Name, OBJPROP_TIME1);
         datetime Time2 = ObjectGet(AL_Name, OBJPROP_TIME2);
         datetime Time3  = ObjectGet(AL_Name, OBJPROP_TIME3);
  
         double PriceGap;    // Used to subdivide upper and lower ML into 8 portions
         double PriceShift;  // Used to calculate the next pair coorinates
         int TimeShift;      // for parallel lines
         double p1 = Price1, p2 = Price2, p3 = Price3;
         datetime t1 = Time1, t2 = Time2, t3 = Time3;

         if (ObjectGet(AL_Name, OBJPROP_COLOR) != Original_AL_Color)
            {
             ObjectSet(AL_Name, OBJPROP_COLOR, Main_AL_Color);
             ObjectSet(AL_Name, OBJPROP_STYLE, Main_AL_Style);
             ObjectSet(AL_Name, OBJPROP_WIDTH, Main_AL_Width);
             ObjectSet(AL_Name, OBJPROP_BACK, false);
            }
         if (ObjectFind(AL_Name+"AL_Label") == -1 && show_label)
            {
             ObjectCreate(AL_Name+"AL_Label",OBJ_LABEL,0,0,0);
             ObjectSet(AL_Name+"AL_Label", OBJPROP_CORNER, label_window_corner);
             ObjectSet(AL_Name+"AL_Label", OBJPROP_XDISTANCE, label_x_shift);
             ObjectSet(AL_Name+"AL_Label", OBJPROP_YDISTANCE, label_y_shift);
             ObjectSetText(AL_Name+"AL_Label", AL_Name+": Andrew ML", label_font_size, label_font_type, label_color);
             }
          else if (ObjectFind(AL_Name+"AL_Label") != -1 && !show_label)
            {
             ObjectDelete(AL_Name+"AL_Label");
            }
      // Types of ALs
      // 1 - Normal AL
      // 2 - Schiff
      // 3 - Modified Schiff (Catalin)
      // 4 - 50% Pitchfork (Austin Financial Group)
      // 5 - SuperPitchfork (Austin Financial Group)
         if (Choose_Type_of_Meridian_Lines == 2) { p1 = p1 + (p2 - p1)/2; if (show_label) ObjectSetText(AL_Name+"AL_Label", AL_Name+": Schiff ML", label_font_size, "Arial", label_color);}          
         if (Choose_Type_of_Meridian_Lines == 3) { p1 = p1 + (p2 - p1)/2; t1 = BarToTime(TimeToBar(t1) - (TimeToBar(t1) - TimeToBar(t2))/2) ; if (show_label) ObjectSetText(AL_Name+"AL_Label", AL_Name+": Modified Schiff ML", label_font_size, label_font_type, label_color);}        
         if (Choose_Type_of_Meridian_Lines == 4) { p1 = p3; if (show_label) ObjectSetText(AL_Name+"AL_Label", AL_Name+": Catalin ML", label_font_size, label_font_type, label_color);}          
         if (Choose_Type_of_Meridian_Lines > 1)
            {
             ObjectSet(AL_Name, OBJPROP_BACK, true);
             ObjectSet(AL_Name, OBJPROP_COLOR, Original_AL_Color);
             if (ObjectFind(AL_Name+"Modified_AL") == -1)
               {
                  ObjectCreate(AL_Name+"Modified_AL",OBJ_PITCHFORK,0, t1,p1,t2,p2,t3,p3);
                }
             else
               {
                  ObjectSet(AL_Name+"Modified_AL", OBJPROP_PRICE1, p1);
                  ObjectSet(AL_Name+"Modified_AL", OBJPROP_PRICE2, p2);
                  ObjectSet(AL_Name+"Modified_AL", OBJPROP_TIME1, t1);
                  ObjectSet(AL_Name+"Modified_AL", OBJPROP_TIME2, t2);
                  ObjectSet(AL_Name+"Modified_AL", OBJPROP_COLOR, Modified_AL_Color);
               }
             ObjectSet(AL_Name+"Modified_AL", OBJPROP_STYLE, Modified_AL_Style);
             ObjectSet(AL_Name+"Modified_AL", OBJPROP_COLOR, Modified_AL_Color);
             ObjectSet(AL_Name+"Modified_AL", OBJPROP_WIDTH, Modified_AL_Width);
             }
          else
          {
             ObjectSet(AL_Name, OBJPROP_BACK, false);
             ObjectSet(AL_Name, OBJPROP_COLOR, Main_AL_Color);
             ObjectSet(AL_Name, OBJPROP_STYLE, Main_AL_Style);
             ObjectSet(AL_Name, OBJPROP_WIDTH, Main_AL_Width);
          }
      //    
      // Price and Time Coordintes to draw parallel lines within MLs
      //
               double UpperP1, UpperP2, UpperP3, MiddleP0, LowerP1, LowerP2, LowerP3;
               int UT1Bar, UT2Bar, UT3Bar, MT0Bar, LT1Bar, LT2Bar, LT3Bar; // Time in bars for upper, mid and Lower inside lines

               int T1Bar, T2Bar, T3Bar, NumOfBars_T2T3, Bar_Gap, accuracy_factor = 10;
  
               T1Bar = TimeToBar(t1);
               T2Bar = TimeToBar(t2);
               T3Bar = TimeToBar(t3);

               NumOfBars_T2T3 = T2Bar - T3Bar;
               Bar_Gap = (NumOfBars_T2T3)/8;

               UT1Bar = T2Bar - Bar_Gap;
               UT2Bar = T2Bar - Bar_Gap*2;
               UT3Bar = T2Bar - Bar_Gap*3;
               MT0Bar = T2Bar - Bar_Gap*4;
               LT1Bar = T3Bar + Bar_Gap*3;
               LT2Bar = T3Bar + Bar_Gap*2;
               LT3Bar = T3Bar + Bar_Gap;

               PriceGap = (p2 - p3)/8.0;
      
               UpperP1 = p2 - PriceGap;
               UpperP2 = p2 - PriceGap*2;
               UpperP3 = p2 - PriceGap*3;
               MiddleP0 = p2 - (p2 - p3)/2.0;
               LowerP1 = p3 + PriceGap*3;
               LowerP2 = p3 + PriceGap*2;
               LowerP3 = p3 + PriceGap;

/*
There is a need here to multiple the shifts for both price and time by 2 as they are used for calculations of the 2nd
pivot point for drawing trendlines. If the 2 pivot points for drawing trendline are too close, there is a high chance
that the trendline drawn will not be totally parallel to the Meridian Lines. By increasing the distance between the
pivots by a factor of 2 will reduce the slight misalignment of all lines drawn parallel to the Andrew Meridian Lines.
This problem is less obvious when more bars are used for the ALs.
*/      
               PriceShift = (MiddleP0 - p1)*accuracy_factor;
               TimeShift = (T1Bar - MT0Bar)*accuracy_factor;  

         if (Draw_Inner_Lines)
            {
               if (Use_Fib_Levels_4_Inner_Lines)
                  {
                     SetLN(AL_Name+"Upper_ML1", BarToTime(T2Bar - (NumOfBars_T2T3*0.382)), p2 - (p2 - p3)*0.382, BarToTime(T2Bar - (NumOfBars_T2T3*0.382) - TimeShift), p2 - (p2 - p3)*0.382 + PriceShift, Upper_LN1_Color,Upper_LN1_Style,Upper_LN1_Width, true);
                     SetLN(AL_Name+"Lower_ML1", BarToTime(T3Bar + (NumOfBars_T2T3*0.382)), p3 + (p2 - p3)*0.382, BarToTime(T3Bar + (NumOfBars_T2T3*0.382) - TimeShift), p3 + (p2 - p3)*0.382 + PriceShift, Lower_LN1_Color,Lower_LN1_Style,Lower_LN1_Width, true);
                     SetLN(AL_Name+"Upper_ML2", BarToTime(T2Bar - (NumOfBars_T2T3*0.236)), p2 - (p2 - p3)*0.236, BarToTime(T2Bar - (NumOfBars_T2T3*0.236) - TimeShift), p2 - (p2 - p3)*0.236 + PriceShift, Upper_LN1_Color,Upper_LN1_Style,Upper_LN1_Width, true);
                     SetLN(AL_Name+"Lower_ML2", BarToTime(T3Bar + (NumOfBars_T2T3*0.236)), p3 + (p2 - p3)*0.236, BarToTime(T3Bar + (NumOfBars_T2T3*0.236) - TimeShift), p3 + (p2 - p3)*0.236 + PriceShift, Lower_LN1_Color,Lower_LN1_Style,Lower_LN1_Width, true);
                  }
               else if (Num_Of__Inner_Lines_2_or_6 == 2)
                  {
                     SetLN(AL_Name+"Upper_ML2", BarToTime(UT2Bar), UpperP2, BarToTime(UT2Bar - TimeShift), UpperP2 + PriceShift, Upper_LN2_Color,Upper_LN2_Style,Upper_LN2_Width, true);
                     SetLN(AL_Name+"Lower_ML2", BarToTime(LT2Bar), LowerP2, BarToTime(LT2Bar - TimeShift), LowerP2 + PriceShift, Lower_LN2_Color,Lower_LN2_Style,Lower_LN2_Width, true);
                  }
               else
                  {
                     SetLN(AL_Name+"Upper_ML1", BarToTime(UT1Bar), UpperP1, BarToTime(UT1Bar - TimeShift), UpperP1 + PriceShift, Upper_LN1_Color,Upper_LN1_Style,Upper_LN1_Width, true);
                     SetLN(AL_Name+"Upper_ML2", BarToTime(UT2Bar), UpperP2, BarToTime(UT2Bar - TimeShift), UpperP2 + PriceShift, Upper_LN2_Color,Upper_LN2_Style,Upper_LN2_Width, true);
                     SetLN(AL_Name+"Upper_ML3", BarToTime(UT3Bar), UpperP3, BarToTime(UT3Bar - TimeShift), UpperP3 + PriceShift, Upper_LN3_Color,Upper_LN3_Style,Upper_LN3_Width, true);
                     SetLN(AL_Name+"Lower_ML1", BarToTime(LT1Bar), LowerP1, BarToTime(LT1Bar - TimeShift), LowerP1 + PriceShift, Lower_LN1_Color,Lower_LN1_Style,Lower_LN1_Width, true);
                     SetLN(AL_Name+"Lower_ML2", BarToTime(LT2Bar), LowerP2, BarToTime(LT2Bar - TimeShift), LowerP2 + PriceShift, Lower_LN2_Color,Lower_LN2_Style,Lower_LN2_Width, true);
                     SetLN(AL_Name+"Lower_ML3", BarToTime(LT3Bar), LowerP3, BarToTime(LT3Bar - TimeShift), LowerP3 + PriceShift, Lower_LN3_Color,Lower_LN3_Style,Lower_LN3_Width, true);
                  }
            }
         if (Draw_Warning_Lines)
            {
               for(int x=1; x <= Num_Of_Warning_Lines;x++)
                  {
                     string txt = AL_Name+"Upper_Warning_LN"+x;
                     SetLN(txt,  BarToTime(T2Bar + (T2Bar - MT0Bar)*x), p2 + (p2-MiddleP0)*x, BarToTime((T2Bar + (T2Bar - MT0Bar)*x) - TimeShift), p2 + (p2-MiddleP0)*x + PriceShift, Warning_LN_Color,Warning_LN_Style,Warning_LN_Width, true);              
                     txt = AL_Name+"Lower_Warning_LN"+x;
                     SetLN(txt,  BarToTime(T3Bar - (T2Bar - MT0Bar)*x), p3 - (p2-MiddleP0)*x, BarToTime((T3Bar - (T2Bar - MT0Bar)*x) - TimeShift), p3 - (p2-MiddleP0)*x + PriceShift, Warning_LN_Color,Warning_LN_Style,Warning_LN_Width, true);              
                  }
            }
         if (Draw_Reaction_Lines)
            {
               for(x=1; x <= Num_Of_Reaction_Lines;x++)
                  {
                     txt = AL_Name+"Reaction_LN1"+x;
                     SetLN(txt, BarToTime(T2Bar - TimeShift/accuracy_factor*x), p2 + PriceShift/accuracy_factor*x , BarToTime(T3Bar - TimeShift/accuracy_factor*x), p3 + PriceShift/accuracy_factor*x,  Reaction_LN_Color,Reaction_LN_Style,Reaction_LN_Width, Extend_Reaction_Lines);              
                     txt = AL_Name+"Reaction_LN2"+x;
                     SetLN(txt,BarToTime(T3Bar - TimeShift/accuracy_factor*x), p3 + PriceShift/accuracy_factor*x ,   BarToTime(T2Bar - TimeShift/accuracy_factor*x), p2 + PriceShift/accuracy_factor*x, Reaction_LN_Color,Reaction_LN_Style,Reaction_LN_Width, Extend_Reaction_Lines);              
                  }           
            }
         if (Draw_Trigger_Lines)
            {
                  SetLN(AL_Name+"Trigger_Line1", t1, p1, t2, p2, Trigger_Lines_Color,Trigger_Lines_Style,Trigger_Lines_Width, true);              
                  SetLN(AL_Name+"Trigger_Line2", t1, p1, t3, p3, Trigger_Lines_Color,Trigger_Lines_Style,Trigger_Lines_Width, true);              
             }
         if (Draw_Sliding_Parallel)
            {
             if (ObjectFind(AL_Name+"Hidden_TL") == -1)
               {
                  ObjectCreate(AL_Name+"Hidden_TL", OBJ_TREND, 0,t1,p1, BarToTime(TimeToBar(t1)- TimeShift), p1 + PriceShift);
//                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_COLOR, Red);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_COLOR, Chart_Bkgrd_Color);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_BACK, true);
               }
             else
               {
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_PRICE1, p1);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_PRICE2, p1 + PriceShift);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_TIME1, t1);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_TIME2, BarToTime(TimeToBar(t1)- TimeShift));
//                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_COLOR, Red);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_COLOR, Chart_Bkgrd_Color);
                  ObjectSet(AL_Name+"Hidden_TL", OBJPROP_BACK, true);
               }
            for (x=1;x <=3;x++)
               {
               switch(x)
                  {
                     case 1: string line_name = SP_Name1;break;
                     case 2: line_name = SP_Name2;break;
                     case 3: line_name = SP_Name3;break;                    
                   }
               if (ObjectFind(line_name) != -1)
                  {
                     double sl_p; datetime sl_t;
                     sl_p = ObjectGet(line_name, OBJPROP_PRICE1);
                     sl_t = ObjectGet(line_name, OBJPROP_TIME1);
                 
                     ObjectSet(line_name, OBJPROP_TIME2, BarToTime(TimeToBar(sl_t) - TimeShift));
                     ObjectSet(line_name, OBJPROP_PRICE2, sl_p + PriceShift);
                     ObjectSet(line_name, OBJPROP_COLOR, Sliding_Parallel_Color);
                     ObjectSet(line_name, OBJPROP_STYLE, Sliding_Parallel_Style);
                     ObjectSet(line_name, OBJPROP_WIDTH, Sliding_Parallel_Width);
                     ObjectSet(line_name, OBJPROP_RAY, true);
                    
                     double check = ObjectGetValueByShift(AL_Name+"Hidden_TL", TimeToBar(sl_t)/10);

                     if (p2 > p3 && sl_p > check)
                        {
                          SetLN(line_name+1, BarToTime(TimeToBar(sl_t)-(T2Bar - T3Bar + 1)), sl_p - (p2 - p3), BarToTime(TimeToBar(sl_t)-(T2Bar - T3Bar + 1)- TimeShift),  sl_p - (p2 -p3) + PriceShift,  Sliding_Parallel_Color,Sliding_Parallel_Style,Sliding_Parallel_Width, true);              
                         }
                     else if (p2 > p3 && sl_p < check)
                        {
                          SetLN(line_name+1, BarToTime(TimeToBar(sl_t)+(T2Bar - T3Bar + 1)), sl_p + (p2 - p3), BarToTime(TimeToBar(sl_t)+(T2Bar - T3Bar + 1)- TimeShift),  sl_p + (p2 -p3) + PriceShift,  Sliding_Parallel_Color,Sliding_Parallel_Style,Sliding_Parallel_Width, true);              
                        }
                     else if (p3 > p2 && sl_p > check)
                        {
                          SetLN(line_name+1, BarToTime(TimeToBar(sl_t)+(T2Bar - T3Bar + 1)), sl_p + (p2 - p3), BarToTime(TimeToBar(sl_t)+(T2Bar - T3Bar + 1)- TimeShift),  sl_p + (p2 -p3) + PriceShift,  Sliding_Parallel_Color,Sliding_Parallel_Style,Sliding_Parallel_Width, true);              
                         }
                     else if (p3 > p2 && sl_p < check)
                        {
                          SetLN(line_name+1, BarToTime(TimeToBar(sl_t)-(T2Bar - T3Bar + 1)), sl_p - (p2 - p3), BarToTime(TimeToBar(sl_t)-(T2Bar - T3Bar + 1)- TimeShift),  sl_p - (p2 -p3) + PriceShift,  Sliding_Parallel_Color,Sliding_Parallel_Style,Sliding_Parallel_Width, true);              
                        }
                  }
                else if (ObjectFind(line_name) == -1) if (ObjectFind(line_name+1)!= -1) ObjectDelete(line_name+1);
                }
             }
   }
   return(0);
  }
//+------------------------------------------------------------------+

void SetLN(string text, datetime t1, double p1,datetime t2, double p2, color col, int style, int width, bool extend_ray) {
   string linename=text;
   // create or move the object
   if (ObjectFind(linename) < 0) {
      ObjectCreate(linename, OBJ_TREND, 0, t1, p1, t2, p2);
      ObjectSet(linename, OBJPROP_RAY, extend_ray);
      ObjectSet(linename, OBJPROP_STYLE, style);
      ObjectSet(linename, OBJPROP_COLOR, col);
      ObjectSet(linename, OBJPROP_WIDTH, width);
   } else {
      ObjectSet(linename, OBJPROP_TIME1, t1);
      ObjectSet(linename, OBJPROP_TIME2, t2);
      ObjectSet(linename, OBJPROP_PRICE1, p1);
      ObjectSet(linename, OBJPROP_PRICE2, p2);
   }
}

datetime BarToTime(int bar)
  {
    bar /= 10;
   
    if (bar >= 0)
      return(Time[bar]);
    else
      {
        return(Time[0] + (-bar * Period() * 60));
      }
  }
 
int TimeToBar(datetime d) 
  {
    if (d > Time[0])
      return(((Time[0] - d) / (Period() * 60)) * 10);
    else
      return(10 * iBarShift(NULL, 0, d, false));
  }


Saturday, 13 February 2010

How to turn endless Median/Andrews Line's into a trade.ie The Anatomy of a ML Trade EURGBP

Its all very well putting up endless charts with scores of ML's across them but i thought i would devote a posting to the process of turning all these ML's and price activity into a trade. I am going to take an ongoing trade from last Friday 12th February 2010 and illustrate how i choose my entry point and what my objective is and what my process was before i made the trade.

EurGbp is a market i follow extremely closely. I chart both Euros(cents) per Pound and Pounds(& pence) per Euro and remembering that Sterling is one of those exceptional quotation currencies (as opposed to say the US$) where the leading ('base' or 'denomination') currency in any cross rate (Pounds Sterling) is 'the strong or dominant' currency as we were taught. The reason for charting both is simple. I can see Median lines in one chart that sometimes are not possible to see in another and i find it is also more objective even though both rates are inter-convertable..

Here is a long term cash/spot FX GBPEURwhere price is expressed as Euros per each pound sterling
Long term Medium term



Here below is the Metatrader inverse (EURGBP) but it is expressed as Euro cents per Pound Sterling. This is the format that the IMM CME futures are traded in (code RP #) but due to intermittent and fluctuating volume this chart is best viewed only as a daily (but is not shown here).
Anyway. Friday morning 13 Feb 2010 we had several new up sloping MLs (shown here in red & slate blue on the Metatrader charts) and also corresponding down sloping ML's in the above e-signal chart (remember they are mirror images of the same market). Price had fallen sharply on Friday and my Median Line was the most obvious up sloping support from the most important swing highs and lows from the last 6 months ( back to June 2009). I also had a smaller green ascending ML on the 1 and 4 hr charts that followed the same trajectory. Personally i would be surprised if price gets to the centre line of the my new red/slate blue ML, but it may do but regardless of what happens in the future this line is of significant importance as support. Now price had been rising since the 28th Jan 10 and fell to our new lower MLP which was BANG on


the 78.6% Fib retracement. If you look at a clean daily chart of EurGbp you will also see that .8650 is a horizontal multi pivot line going back several years plus i can see that we have a big 'mountain' created by price activity over the last few weeks to fill.
By now i was interested especially as we were also on the centre line of the down sloping dotted magenta centre line. This ascending chart formation also looked as though price was going to hold and form a new swing low and just below this area of price was previously tested up sloping ML's already tested which had supported price ( yellow and mauve/blue). If price breaks here on the downside then the whole ballgame has changed.


We had serious divergence on both the 1hr RSI and several 1hr Stochastic's ( one double smoothed stoch and one normal 9,3,3 stoch ) where price was making a lower low and yet the stochastic was not. All pointed to a reversal and i also had two other 1 x EA and 1 x custom indicator) confirmations. I draw my lines with great care going right down to smaller time frames like 15mins to make sure they are anchored correctly and cross reference them with the e-signal charts (where this was a corner trade on the upper MLP in a descending ML set- see above) to confirm a nice tight entry level and stop level. One problem with Metatrader is the feed and this data feed can be very different for each broker. E-signal has better composite feeds and again this helps. I went long 1 x EurGbp @.86599 which must have been pretty much near the low of the day which my brokers data feed shows as .86576. The market rallied to.8715 but at the time of writing has drifted back to .8675 BUT no worries as i moved my initial stop up before the close on Friday from 5 pips to break even so now whatever happens i am risk free on this trade plus because i am trading long on a up sloping median line i have the upward angle of incline working for me as long as my much vaunted lower median line parallel holds. In the meantime we have the Bolly Bands(shown) and Fib bands(shown) squeezing together tighter and tighter for a forthcoming breakout in one or other direction but am not expecting much today as we have a US market holiday plus the Chinese New Year so low volume and quiet range trading.