Miscellaneous
0
Views
0
Downloads
0
Favorites
arrows_&_curves_v.28_lukas1
//+------------------------------------------------------------------+
//| lukas1 arrows & curves.mq4 v.28
//| Copyright © 2007, Ëóêàøóê Âèêòîð Ãåííàäüåâè÷ aka lukas1
//+------------------------------------------------------------------+
//1. Äëÿ ëèíèé ââåäåíà çàäåðæêà, ïðèâîäÿùàÿ ê ñìåùåíèþ âïðàâî ("relay")
//2. Ïîÿâèëèñü êðåñòèêè, îáîçíà÷àþùèå çàêðûòèå ñäåëêè
//3. Ïîâòîðíûå îðäåðà â òîì æå íàïðàâëåíèè îòìå÷åíû òàê æå êðåñòèêàìè
#property copyright "Copyright © 2007, MetaQuotes Software Corp.+lukas1"
#property link "lukas1@ngs.ru"
//----
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Red
#property indicator_color3 Orange
#property indicator_color4 Orange
#property indicator_color5 MediumSeaGreen
#property indicator_color6 MediumSeaGreen
#property indicator_color7 DeepSkyBlue
#property indicator_color8 Red
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width7 2
#property indicator_width8 2
//---- input parameters
extern int SSP = 20; //ïåðèîä ëèíåéíîãî ðàçâîðîòà èíäèêàòîðà
extern int Channel = 0; //óìåíüøåíèå äèàïàçîíà êàíàëà. Ä.á. â äèàïàçîíå 0-50
extern int Ch_Stop = 30; //óìåíüøåíèå ñòîïîâîãî êàíàëà (ñóììèðóåòñÿ ñ îñíîâíûì)
extern int relay = 10; //ñìåùåíèå ëèíèé âãëóáü èñòîðèè íà 4 áàðà
extern int CBars = 2000; //ðàñ÷åòíûé ïåðèîä
int i;
double high, low, smin, smax, smin2, smax2;
double val1[]; // áóôåð äëÿ áàé
double val2[]; // áóôåð äëÿ ñåëë
double BufferH[];
double BufferL[];
double BufferHS[];
double BufferLS[];
double valX1[],valX2[]; // áóôåð äëÿ X
bool uptrend, old, uptrend2, old2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_ARROW,0,1);
SetIndexArrow(0, 233); // ñòðåëêà äëÿ áàé
SetIndexBuffer(0, val1); // èíäåêñ áóôåðà äëÿ áàé
SetIndexLabel(0, "BUY");
SetIndexDrawBegin(0, Bars-CBars-2*SSP);
SetIndexStyle(1, DRAW_ARROW,0,1);
SetIndexArrow(1, 234); // ñòðåëêà äëÿ ñåëë
SetIndexBuffer(1, val2); // èíäåêñ áóôåðà äëÿ ñåëë
SetIndexLabel(1, "SELL");
SetIndexDrawBegin(1, Bars-CBars-2*SSP);
SetIndexStyle(2, DRAW_LINE,0,1);
SetIndexBuffer(2, BufferH);
SetIndexLabel(2, "BUY from here");
SetIndexDrawBegin(2, Bars-CBars-2*SSP);
SetIndexStyle(3, DRAW_LINE,0,1);
SetIndexBuffer(3, BufferL);
SetIndexLabel(3, "SELL from here");
SetIndexDrawBegin(3, Bars-CBars-2*SSP);
SetIndexStyle(4, DRAW_LINE,0,1);
SetIndexBuffer(4, BufferHS);
SetIndexLabel(4, "BuyStop");
SetIndexDrawBegin(4, Bars-CBars-2*SSP);
SetIndexStyle(5, DRAW_LINE,0,1);
SetIndexBuffer(5, BufferLS);
SetIndexLabel(5, "SellStop");
SetIndexDrawBegin(5, Bars-CBars-2*SSP);
SetIndexStyle(6, DRAW_ARROW,0,2);
SetIndexArrow(6, 251); // êðåñòèê ñèíèé
SetIndexBuffer(6, valX1); // èíäåêñ áóôåðà äëÿ êðåñòèêà
SetIndexDrawBegin(6, Bars-CBars-2*SSP);
SetIndexStyle(7, DRAW_ARROW,0,2);
SetIndexArrow(7, 251); // êðåñòèê êðàñíûé
SetIndexBuffer(7, valX2); // èíäåêñ áóôåðà äëÿ êðåñòèêà
SetIndexDrawBegin(7, Bars-CBars-2*SSP);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Calculation of Channel lines
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
//---- ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí
if(counted_bars > 0) counted_bars--;
//----
if(Bars <= SSP + 1) return(0);
//----
uptrend =false;
old =false;
uptrend2 =false;
old2 =false;
GlobalVariableSet("goSELL", 0); // çàäàëè ñóùåñòâîâàíèå è îáíóëèëè goSELL=0
GlobalVariableSet("goBUY", 0); // çàäàëè ñóùåñòâîâàíèå è îáíóëèëè goBUY =0
GlobalVariableSet("stSELL", 0); // çàäàëè ñóùåñòâîâàíèå è îáíóëèëè stSELL=0
GlobalVariableSet("stBUY", 0); // çàäàëè ñóùåñòâîâàíèå è îáíóëèëè stBUY =0
//----
for(i = CBars - SSP; i >= 0; i--) // óìåíüø çíà÷åíèå shift íà 1 çà ïðîõîä;
{
high = High[Highest(Symbol(),0,MODE_HIGH,SSP,i+relay)];
low = Low[Lowest(Symbol(),0,MODE_LOW,SSP,i+relay)];
smax = high - (high - low)*Channel / 100; // smax íèæå high ñ ó÷åòîì êîýôô.Channel
smin = low + (high - low)*Channel / 100; // smin âûøå low ñ ó÷åòîì êîýôô.Channel
smax2= high - (high - low)*(Channel+Ch_Stop) / 100; // smax íèæå high ñ ó÷åòîì êîýôô.Chan+Ch_Stop
smin2= low + (high - low)*(Channel+Ch_Stop) / 100; // smin âûøå low ñ ó÷åòîì êîýôô.Channel
val1[i] = 0;
val2[i] = 0;
valX1[i] = 0;
valX2[i] = 0;
//-----------------------
if(Close[i] < smin && Close[i] < smax && uptrend2 == true && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0)
{
uptrend = false;
}
if(Close[i] > smax && Close[i] > smin && uptrend2 == false && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0)
{
uptrend = true;
}
if((Close[i] > smax2 || Close[i] > smin2) && uptrend == false && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0)
{
uptrend2 = false;
}
if((Close[i] < smin2 || Close[i] < smax2) && uptrend == true && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0)
{
uptrend2 = true;
}
//---- ïîâòîðíûé ñèãíàë íå ïåðåêëþ÷àåò ðåæèìû "uptrend"
//---- íî èñïîëüçóåòñÿ ñèãíàë ïî êðåñòèêàì
if(Close[i] < smin && Close[i] < smax && uptrend2 == false && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0)
{
val2[i] = low; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì val2
if(i == 0) GlobalVariableSet("goSELL",1);
uptrend2 = true;
}
//---- ïîâòîðíûé ñèãíàë íå ïåðåêëþ÷àåò ðåæèìû "uptrend"
//---- íî èñïîëüçóåòñÿ ñèãíàë ïî êðåñòèêàì
if(Close[i] > smax && Close[i] > smin && uptrend2 == true && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0)
{
val1[i] = high; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì val1
if(i == 0) GlobalVariableSet("goBUY",1);
uptrend2 = false;
}
//----
if(uptrend != old && uptrend == false)
{
val2[i] = low; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì val1
if(i == 0) GlobalVariableSet("goSELL",1);
}
if(uptrend != old && uptrend == true)
{
val1[i] = high; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì val2
if(i == 0) GlobalVariableSet("goBUY",1);
}
//----
if(uptrend2 != old2 && uptrend2 == true)
{
valX1[i] = smax2; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì valX1
if(i == 0) GlobalVariableSet("stBUY",1);
}
if(uptrend2 != old2 && uptrend2 == false)
{
valX2[i] = smin2; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì valX2
if(i == 0) GlobalVariableSet("stSELL",1);
}
//-----------------------
old=uptrend;
old2=uptrend2;
//-----------------------
BufferH[i]=smax;
BufferL[i]=smin;
BufferHS[i]=smax2;
BufferLS[i]=smin2;
}
return(0);
}
//+------------------------------------------------------------------+
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
---