lukas1_svl0l5a42e0zo6_8i_saxz7jq77e_v28

Author: Copyright � 2007, MetaQuotes Software Corp.+lukas1
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
lukas1_svl0l5a42e0zo6_8i_saxz7jq77e_v28
//+------------------------------------------------------------------+
//|                                 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
   int limit=CBars-SSP-relay;
   if(limit>Bars) limit=Bars-SSP-relay-1;

//----
   for(i=limit; 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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---