//+------------------------------------------------------------------+
//| Square of Nine.mq4 |
//| Copyright © 2006, Matt Trigwell |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Matt Trigwell"
#property link "m.trigwell@gmail.com"
#property indicator_chart_window
extern double StartPrice=0;
extern bool Direction_Up=true;
extern color Angle_Color=Yellow;
int init()
{
return(0);
}
int deinit()
{
int AngleIndex=0;
string AngleName="";
for(AngleIndex=45;AngleIndex<=720;AngleIndex=AngleIndex+45)
{
AngleName = "Angle_" + AngleIndex;
ObjectDelete(AngleName + " Label");
ObjectDelete(AngleName + " Line");
}
return(0);
}
int start()
{
int AngleIndex=0;
string AngleName="";
double FactorIndex=0.25;
double AnglePriceLevel=0;
for(AngleIndex=45;AngleIndex<=720;AngleIndex=AngleIndex+45)
{
AnglePriceLevel = CalculateSquare(FactorIndex,StartPrice);
AngleName = "Angle_" + AngleIndex;
if(ObjectFind(AngleName + " Line") != 0)
{
ObjectCreate(AngleName + " Line", OBJ_HLINE, 0, Time[40], AnglePriceLevel);
ObjectSet(AngleName + " Line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(AngleName + " Line", OBJPROP_COLOR, Angle_Color);
}
else
{
ObjectMove(AngleName + " Line", 0, Time[40], AnglePriceLevel);
}
if(ObjectFind(AngleName + " Label") != 0)
{
ObjectCreate(AngleName + " Label", OBJ_TEXT, 0, Time[20], AnglePriceLevel);
ObjectSetText(AngleName + " Label", AngleIndex + " Degrees", 8, "Arial", EMPTY);
}
else
{
ObjectMove(AngleName + " Label", 0, Time[0], AnglePriceLevel);
}
FactorIndex = FactorIndex + 0.25;
}
return(0);
}
double CalculateSquare(double Factor, double Price)
{
double AnglePrice=0;
if(Price > 0)
{
if(StringFind(Symbol(),"JPY",0) == -1)
{
Price = Price * 10000;
}
else
{
Price = Price * 100;
}
if(Direction_Up==true)
{
AnglePrice = MathPow(MathSqrt(Price) + Factor,2);
}
else
{
AnglePrice = MathPow(MathSqrt(Price) - Factor,2);
}
if(StringFind(Symbol(),"JPY",0) == -1)
{
AnglePrice = AnglePrice / 10000;
}
else
{
AnglePrice = AnglePrice / 100;
}
}
return(AnglePrice);
}
Comments