Author: Copyright � 2009, Elite E Services, Inc.
EES-USDX

This tool is designed to provide traders with a synthetic representation of the US Dollar Index (USDX) directly within their trading platform. Since some brokers do not offer the standard USD Index as a tradable symbol, this script reconstructs it by calculating a composite value based on several major global currencies.

How the Logic Works

The script functions by analyzing the relationship between the US Dollar and six specific currency pairs: EURUSD, USDJPY, GBPUSD, USDCAD, USDSEK, and USDCHF. Instead of simply looking at these prices individually, the tool performs the following steps to create a unified trend:

  • Weighted Correlation: The script takes the opening prices of each of the six currencies. It then applies a specific mathematical "weight" to each one. These weights are pre-configured to reflect how much each specific currency influences the overall movement of the US Dollar Index.
  • Mathematical Synthesis: By applying these weights and multiplying the results together, the script generates a single numerical value (the USDx). This value represents the relative strength or weakness of the US Dollar against a basket of global currencies.
  • Visual Representation: The resulting data is displayed in a separate window on your chart using two visual formats:
    • A Histogram: This provides a clear view of the volume and direction of the index movement over time.
    • A Line: This allows you to easily track the continuous flow and momentum of the synthetic index.

Key Benefits for the Trader

By using this script, you can monitor the "big picture" of Dollar strength without needing to juggle multiple charts at once. It essentially mimics the behavior of the traditional USDX futures contract by aggregating various market forces into one readable indicator. This allows for a more holistic view of currency trends, helping you identify whether the Dollar is gaining momentum or losing ground on a global scale.

Price Data Components
Series array that contains open prices of each barSeries array that contains open prices of each bar
Miscellaneous
Implements a curve of type %1
16 Views
0 Downloads
0 Favorites
EES-USDX
//+------------------------------------------------------------------+
//|                                                     EES-USDX.mq4 |
//|                         Copyright © 2009, Elite E Services, Inc. |
//| Programmed by : Mikhail Veneracion www.forexcoding.com           |
//|                                    http://www.eliteeservices.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Elite E Services, Inc."
#property link      "http://www.eliteeservices.net"
// Download updates to this indicator at www.eesfx.com 
// Many brokers do not offer USDSEK.  If you want this to look exactly like USDX futures contract you need to find a broker that offers this symbol. 
// Otherwise, adjust the indicator accordingly using the parameters.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 SlateGray
#property indicator_color2 Red
 
extern double
   USDx_Weight       = 50.14348112; 
extern string
   Symbol_1          = "EURUSD";
extern double   
   Weight_1          =  -0.576;
extern string
   Symbol_2          = "USDJPY";
extern double   
   Weight_2          =  0.136;
extern string
   Symbol_3          = "GBPUSD";
extern double   
   Weight_3          =  -0.119;
extern string
   Symbol_4          = "USDCAD";
extern double   
   Weight_4          =  0.091;
extern string
   Symbol_5          = "USDSEK";
extern double   
   Weight_5          =  0.042;
extern string
   Symbol_6          = "USDCHF";
extern double   
   Weight_6          =  0.036;            
      
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(2);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(0,DRAW_HISTOGRAM,0,1);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(1,DRAW_LINE,0,1);
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

  int counted_bars = IndicatorCounted();
   int i,  limit;
   if(counted_bars == 0) 
       limit = Bars - 30;
   if(counted_bars > 0)  
       limit = Bars - counted_bars; 
   for(i = limit; i >= 0; i--)
     {   
      double Open_EURUSD=MathPow(iOpen(Symbol_1,0,i), Weight_1);
      double Open_USDJPY=MathPow(iOpen(Symbol_2,0,i), Weight_2);
      double Open_GBPUSD=MathPow(iOpen(Symbol_3,0,i), Weight_3);
      double Open_USDCAD=MathPow(iOpen(Symbol_4,0,i), Weight_4);
      double Open_USDSEK=MathPow(iOpen(Symbol_5,0,i), Weight_5);
      double Open_USDCHF=MathPow(iOpen(Symbol_6,0,i), Weight_6);
      
      if(Open_EURUSD==0)Open_EURUSD=1;
      if(Open_USDJPY==0)Open_USDJPY=1;
      if(Open_GBPUSD==0)Open_GBPUSD=1;
      if(Open_USDCAD==0)Open_USDCAD=1;
      if(Open_USDSEK==0)Open_USDSEK=1;
      if(Open_USDCHF==0)Open_USDCHF=1;
      
      double USDx=USDx_Weight * Open_EURUSD * Open_USDJPY * Open_GBPUSD * Open_USDCAD * Open_USDSEK * Open_USDCHF;
       ExtMapBuffer1[i] = USDx;
       ExtMapBuffer2[i]= USDx;
   }

   //*
 
//----
   return(0);
  }
//+------------------------------------------------------------------+

Comments