arrows_&_curves_v14





//+------------------------------------------------------------------+
//|                      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: