//+------------------------------------------------------------------+ //| lukas1 arrows & curves.mq4 v.14 | //| Èçìåíåíèÿ: //| 1. Óáðàíû íåíóæíûå (ëèøíèå) êîýôôèöèåíû, íå ó÷àñòâóþùèå //| â ðàñ÷åòàõ Kmin, Kmax, RISK //| 2. Ìàòåìàòèêà èíäèêàòîðà âñå ðàñ÷åòû âûïîëíÿåò //| âíóòðè îäíîãî öèêëà, ýòî óâåëè÷èëî ñêîðîñòü îáñ÷¸òà. //| 3. Âûêëþ÷åíî ìåðöàíèå ñòðåëîê. //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, lukas1" #property link "http://www.alpari-idc.ru/" //---- #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 Green #property indicator_color4 Green //---- input parameters extern int SSP = 6; //ïåðèîä ëèíåéíîãî ðàçâîðîòà èíäèêàòîðà extern int CountBars = 2250; //ðàñ÷åòíûé ïåðèîä extern int SkyCh = 13; //÷óâñòâèòåëüíîñòü ê ïðîáîþ êàíàëà //Äîëæíà áûòü â äèàïàçîíå 0-50. 0 - íåò ñòðåëîê. Áîëüøå 50 - ïåðåðåãóëèðîâàíèå int i; double high, low, smin, smax; double val1[]; // áóôåð äëÿ áàé double val2[]; // áóôåð äëÿ ñåëë double Sky_BufferH[]; double Sky_BufferL[]; bool uptrend, old; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 233); // ñòðåëêà äëÿ áàé SetIndexBuffer(0, val1); // èíäåêñ áóôåðà äëÿ áàé SetIndexDrawBegin(0, 2*SSP); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 234); // ñòðåëêà äëÿ ñåëë SetIndexBuffer(1, val2); // èíäåêñ áóôåðà äëÿ ñåëë SetIndexDrawBegin(1, 2*SSP); SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(2, Sky_BufferH); SetIndexLabel(2, "High"); SetIndexDrawBegin(2, 2*SSP); SetIndexStyle(3, DRAW_LINE); SetIndexBuffer(3, Sky_BufferL); SetIndexLabel(3, "Low"); SetIndexDrawBegin(3, 2*SSP); //---- return(0); } //+------------------------------------------------------------------+ //| Calculation of SilverTrend lines //+------------------------------------------------------------------+ int start() { int counted_bars = IndicatorCounted(); //---- ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí if(counted_bars > 0) counted_bars--; //---- if(Bars <= SSP + 1) return(0); //---- initial zero uptrend =false; old =false; GlobalVariableSet("goSELL", 0); // çàäàëè ñóùåñòâîâàíèå è îáíóëèëè goSELL=0 GlobalVariableSet("goBUY", 0); // çàäàëè ñóùåñòâîâàíèå è îáíóëèëè goBUY =0 //---- for(i = CountBars - SSP; i >= 0; i--) // óìåíüø çíà÷åíèå shift íà 1 çà ïðîõîä; { high = High[iHighest(Symbol(),0,MODE_HIGH,SSP,i)]; low = Low[iLowest(Symbol(),0,MODE_LOW,SSP,i)]; smax = high - (high - low)*SkyCh / 100; // smax íèæå high ñ ó÷åòîì êîýôô.SkyCh smin = low + (high - low)*SkyCh / 100; // smin âûøå low ñ ó÷åòîì êîýôô.SkyCh val1[i] = 0; val2[i] = 0; if(Close[i] < smin && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0) { uptrend = false; } if(Close[i] > smax && i!=0 ) // âûêëþ÷åíî ìåðöàíèå ñòðåëîê (i!=0) { uptrend = true; } if(uptrend != old && uptrend == false) { val2[i] = high; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì val1 if(i == 0) GlobalVariableSet("goBUY",1); } if(uptrend != old && uptrend == true ) { val1[i] = low; // åñëè óñëîâèÿ âûïîëíåíû òî ðèñóåì val2 if(i == 0) GlobalVariableSet("goSELL",1); } old=uptrend; Sky_BufferH[i]=high - (high - low)*SkyCh / 100; Sky_BufferL[i]=low + (high - low)*SkyCh / 100; } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains close prices for each bar
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Implements a curve of type DRAW_LINE
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: