Price Data Components
Miscellaneous
0
Views
0
Downloads
0
Favorites
_BZ_TL_skylineM_v1
//+------------------------------------------------------------------+
//| _BZ_Skyline.mq4 |
//| Skyline, 2008 |
//| http://www.forexpertutti.it |
//+------------------------------------------------------------------+
#property copyright "Skyline,2008"
#property link "www.forexpertutti.it"
//----
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 White
#property indicator_color2 RoyalBlue
#property indicator_color3 Red
#property indicator_color4 LimeGreen
#property indicator_color5 LimeGreen
#property indicator_color6 SlateBlue
#property indicator_color7 SlateBlue
//----
#property indicator_style1 2
#property indicator_style2 2
#property indicator_style3 2
#property indicator_style4 2
#property indicator_style5 2
#property indicator_style6 2
#property indicator_style7 2
//----
extern double myEntryTrigger =4;
extern double myProfitTarget =10;
extern double myStopLoss =7;
extern int Shift =0;
extern color myHourColor =DarkGray;
extern int myStyle =STYLE_DOT;
extern bool ShowLables =false ;
//----
double OpenLine[];
double BuyLine1[];
double BuyLine2[];
double SellLine1[];
double SellLine2[];
double TargetLine1[];
double TargetLine2[];
double StopLossLine1[];
double StopLossLine2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,OpenLine);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,BuyLine1);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,SellLine1);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,TargetLine1);
SetIndexStyle(4,DRAW_LINE);
SetIndexBuffer(4,TargetLine2);
SetIndexStyle(5,DRAW_LINE);
SetIndexBuffer(5,StopLossLine1);
SetIndexStyle(6,DRAW_LINE);
SetIndexBuffer(6,StopLossLine2);
//----
SetIndexShift(0,Shift);
SetIndexShift(1,Shift);
SetIndexShift(2,Shift);
SetIndexShift(3,Shift);
SetIndexShift(4,Shift);
SetIndexShift(5,Shift);
SetIndexShift(6,Shift);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
for( int i=ObjectsTotal() - 1; i>=0; i--)
{
string name=ObjectName( i );
if(StringFind( name, "HourStart")>= 0)
ObjectDelete( name );
if(StringFind( name, "Hour")>= 0)
ObjectDelete( name );
if(StringFind( name,"OpenText")>= 0)
ObjectDelete( name );
if(StringFind( name, "SellEntry")>= 0)
ObjectDelete( name );
if(StringFind( name, "BuyEntry" )>= 0)
ObjectDelete( name );
if(StringFind( name, "ProfitTarget1")>= 0)
ObjectDelete( name );
if(StringFind( name, "ProfitTarget2")>= 0)
ObjectDelete( name );
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int limit;
//----
if(TimeHour(Time[0])!= TimeHour(Time[1]))
{
double level= (High[1] + Low[1] + Close[1])/3;
SetTimeLine("HourStart", "Hour", 0, White, level+10*Point); // draw the vertical bars that marks the time span
}
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
//----
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
{
int BarShift =iBarShift(NULL,PERIOD_H1,Time[i],true);
double OpenH1 =iOpen(NULL,PERIOD_H1,BarShift);
OpenLine[i] =OpenH1;
BuyLine1[i] =OpenH1+myEntryTrigger*Point;
SellLine1[i] =OpenH1-myEntryTrigger*Point;
TargetLine1[i]=OpenH1+myProfitTarget*Point;
TargetLine2[i]=OpenH1-myProfitTarget*Point;
StopLossLine1[i]=iClose(NULL,0,i)+ myStopLoss*Point;
StopLossLine2[i]=iClose(NULL,0,i)- myStopLoss*Point;
}
//----
if (ShowLables) DisplayText();
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DisplayText()
{
double OpenH1=iOpen(NULL,PERIOD_H1,0);
ObjectDelete("OpenText");
ObjectDelete("SellEntry");
ObjectDelete("BuyEntry");
ObjectDelete("ProfitTarget1");
ObjectDelete("ProfitTarget2");
// Text for Open Price
ObjectCreate("OpenText",OBJ_TEXT,0,Time[0],OpenH1);
ObjectSetText("OpenText","Open price",8,"Verdana",White);
// Text for Sell Entry
ObjectCreate("SellEntry",OBJ_TEXT,0,Time[0],OpenH1-myEntryTrigger*Point);
ObjectSetText("SellEntry","Sell entry",8,"Verdana",Red);
// Text for Buy Entry
ObjectCreate("BuyEntry",OBJ_TEXT,0,Time[0],OpenH1+myEntryTrigger*Point);
ObjectSetText("BuyEntry","Buy entry",8,"Verdana",Blue);
// Text for ProfitTarget1
ObjectCreate("ProfitTarget1",OBJ_TEXT,0,Time[0],OpenH1+myProfitTarget*Point);
ObjectSetText("ProfitTarget1","Profit Target (BUY)",8,"Verdana",Green);
// Text for ProfitTarget2
ObjectCreate("ProfitTarget2",OBJ_TEXT,0,Time[0],OpenH1-myProfitTarget*Point);
ObjectSetText("ProfitTarget2","Profit Target (SELL)",8,"Verdana",Green);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void SetTimeLine(string objname, string text, int idx, color col1, double vleveltext)
{
string name= "[PIVOT] " + objname;
int x= Time[idx];
ObjectDelete(" Label");
//----
if (ObjectFind(name)!=0)
ObjectCreate(name, OBJ_TREND, 0, x, 0, x, 100);
else
{
ObjectMove(name, 0, x, 0);
ObjectMove(name, 1, x, 100);
}
ObjectSet(name, OBJPROP_STYLE, myStyle);
ObjectSet(name, OBJPROP_COLOR, myHourColor);
//----
if (ObjectFind(name + " Label")!=0)
ObjectCreate(name + " Label", OBJ_TEXT, 0, x, vleveltext);
else
ObjectMove(name + " Label", 0, x, vleveltext);
//----
ObjectSetText(name + " Label", text, 8, "Arial", col1);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---