moving-moving_v1.21s





/*
  I like to moving, moving
  v1.21s (1.0 + smoothing (+level) + shifting)
  by ALeX  
*/


#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 Green
#property indicator_color2 Blue
#property indicator_color3 Red
#property indicator_color4 Black
#property indicator_color5 RosyBrown
#property indicator_color6 Orange
#property indicator_color7 BlueViolet

extern int candles = 100;
extern int shift = 0;
extern int smooth_level = 1;

double bufIUSD[];
double bufIEUR[];
double bufIGBP[];
double bufICHF[];
double bufIJPY[];
double bufIAUD[];
double bufICAD[];

//string names[7] = {"USD", "EUR", "GBP", "CHF", "JPY", "AUD", "CAD"};

int init()
{
  SetIndexBuffer (0, bufIUSD);
  SetIndexBuffer (1, bufIEUR);
  SetIndexBuffer (2, bufIGBP);
  SetIndexBuffer (3, bufICHF);
  SetIndexBuffer (4, bufIJPY);
  SetIndexBuffer (5, bufIAUD);
  SetIndexBuffer (6, bufICAD);

  SetIndexLabel (0, "USD");
  SetIndexLabel (1, "EUR");
  SetIndexLabel (2, "GBP");
  SetIndexLabel (3, "CHF");
  SetIndexLabel (4, "JPY");
  SetIndexLabel (5, "AUD");
  SetIndexLabel (6, "CAD");

  SetIndexStyle (0, DRAW_LINE, EMPTY, 2);
  SetIndexStyle (1, DRAW_LINE, EMPTY, 2);
  SetIndexStyle (2, DRAW_LINE, EMPTY, 2);
  SetIndexStyle (3, DRAW_LINE, EMPTY, 2);
  SetIndexStyle (4, DRAW_LINE);
  SetIndexStyle (5, DRAW_LINE);
  SetIndexStyle (6, DRAW_LINE);

  return (0);
}


int start()
{
  int i, j;
  int to;
  double USD, maxUSD=0.0, maxEUR=0.0, maxGBP=0.0, maxCHF=0.0, maxJPY=0.0, maxAUD=0.0, maxCAD=0.0;


  to = candles+shift;
  if (to > Bars-10)
    to = Bars-10;

  for (i = shift; i < to; i++)
  {
    USD = MathPow (iClose("USDCHF",0,i)*iClose("USDJPY",0,i)*iClose("USDCAD",0,i)/iClose("EURUSD",0,i)/iClose("GBPUSD",0,i)/iClose("AUDUSD",0,i), 1.0/7.0);
    maxUSD = MathMax (maxUSD, USD);
    maxEUR = MathMax (maxEUR, USD*iClose("EURUSD",0,i));
    maxGBP = MathMax (maxGBP, USD*iClose("GBPUSD",0,i));
    maxCHF = MathMax (maxCHF, USD/iClose("USDCHF",0,i));
    maxJPY = MathMax (maxJPY, USD/iClose("USDJPY",0,i));
    maxAUD = MathMax (maxAUD, USD*iClose("AUDUSD",0,i));
    maxCAD = MathMax (maxCAD, USD/iClose("USDCAD",0,i));
  }

  for (i = shift; i < to; i++)
  {
    USD = MathPow (iClose("USDCHF",0,i)*iClose("USDJPY",0,i)*iClose("USDCAD",0,i)/iClose("EURUSD",0,i)/iClose("GBPUSD",0,i)/iClose("AUDUSD",0,i), 1.0/7.0);
    bufIUSD[i] = 100*USD/maxUSD;
    bufIEUR[i] = 100*USD*iClose("EURUSD",0,i)/maxEUR;
    bufIGBP[i] = 100*USD*iClose("GBPUSD",0,i)/maxGBP;
    bufICHF[i] = 100*USD/iClose("USDCHF",0,i)/maxCHF;
    bufIJPY[i] = 100*USD/iClose("USDJPY",0,i)/maxJPY;
    bufIAUD[i] = 100*USD*iClose("AUDUSD",0,i)/maxAUD;
    bufICAD[i] = 100*USD/iClose("USDCAD",0,i)/maxCAD;
  }

  // smoothing
  for (j = 0; j < smooth_level; j++)
  {
    for (i = shift+1; i < to-1; i++)
    {
      bufIUSD[i] = (bufIUSD[i]+bufIUSD[i+1]+bufIUSD[i-1]) / 3.0;
      bufIEUR[i] = (bufIEUR[i]+bufIEUR[i+1]+bufIEUR[i-1]) / 3.0;
      bufIGBP[i] = (bufIGBP[i]+bufIGBP[i+1]+bufIGBP[i-1]) / 3.0;
      bufICHF[i] = (bufICHF[i]+bufICHF[i+1]+bufICHF[i-1]) / 3.0;
      bufIJPY[i] = (bufIJPY[i]+bufIJPY[i+1]+bufIJPY[i-1]) / 3.0;
      bufIAUD[i] = (bufIAUD[i]+bufIAUD[i+1]+bufIAUD[i-1]) / 3.0;
      bufICAD[i] = (bufICAD[i]+bufICAD[i+1]+bufICAD[i-1]) / 3.0;
    }
  }


  return (0);
}





Sample





Analysis



Market Information Used:

Series array that contains close prices for each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: