Volume + Bands

If you need an Indicator or Signal developed or translated from other language, please post all Indicator development REQUESTS to this section here.

Moderator: admin

Volume + Bands

Postby mennzz » Sun Sep 26, 2010 12:29 am

Hi,

Can any programmer change this indicator into a .lua format from mq4. Thanks.
Code: Select all
//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
//|   Val_Bands.mq4                                                           |
//|   Èíäèêàòîð âîëàíòèëüíîñòè äëèíû ñâå÷åé:                                  |
//|      - êðàñíàÿ ãèñòîãðàììà - äëèíà ñâå÷è â ïèïñàõ                         |
//|      - ëèíèè: ýòî ñðåäíèå îò äëèíû ñâå÷åé ñî ñòàíäàðòíûì îòêëîíåíèåì      |
//|    Íàñòðîéêè - àíàëîãè÷íû êàíàëó Áîëèíäæåðà                               |
//|    Èñïîëüçîâàíèå. Óäîáåí äëÿ îòñëåæèàíèÿ ãýïîâ íà ðûíêå. Çà ãýï ñ÷èòåòñÿ  |
//|                    âñå, ÷òî âûøå æåëòîé ëèíèè                             |
//|      - âûõîä çà âåðõíþþ ãðàíèöó - à) ïîäàðîê â ÒÐ (åñëè ïî ïîçèöèè);      |
//|                                   á) SL (åñëè ïðîòèâ ïîçèöèè;             |
//|                                   â) çàïðåò âõîäà â ýòîé òî÷êå            |
//|      - âûõîä çà íèæíþþ ãðàíèöó - áîêîâèê                                  |
//|      - ïåðåñå÷åíèå ñíèçó ââåðõ íèæíåé ãðàíèöû - íà÷àëî òðåíäà.            |
//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
#property copyright "Copyright © 2010, Fomenko"
#property link      "http://faa1947@mail.ru"

// ----------------- Îòäåëüíîå îêíî äëÿ èíäèêàòîðà ----------------------------
#property   indicator_separate_window
// ---------------- Êîë-âî âèäèìûõ áóôåðîâ èíäèêàòîðà -------------------------
#property   indicator_buffers 4
// ---------------- Óñòàíîâêà öâåòà èíäèêàòîðà --------------------------------
#property   indicator_color1           LightSeaGreen
#property   indicator_color2           Yellow
#property   indicator_color3           Orchid
#property   indicator_color4           Red
// ---------------- Óñòàíîâêà øèðèíû ëèíèè -----------------------------------
#property   indicator_width1           2
#property   indicator_width2           1
#property   indicator_width3           1
#property   indicator_width4           1
// ---------------- Óñòàíîâêà ñòèëÿ ëèíèè -----------------------------------
#property   indicator_style1           0
#property   indicator_style2           0
#property   indicator_style3           0
#property   indicator_style4           0
//----------------- Âíåøíèå íàñòðîéêè èíäèêàòîðà ==========--------------------
extern      int    BandsPeriod      =  14;      // Ïåðèîä ðàñ÷åòà
extern      double BandsDeviations  =  1.0;     // Âåëè÷èíà ñòàíäàðòíîãî îòêëîíåíèÿ
            int    BandsShift       =  0;       // Ñäâèã îòíîñèòåëüíî ãðàôèêà
//----------------- Îáúÿâëåíèå áóôåðîâ èíèäèêàòîðîâ --------------------------
            double MovingBuffer[];
            double UpperBuffer[];
            double LowerBuffer[];
            double Val_BarsBuffer[];
           
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   IndicatorDigits         (1);
//--------- Òðè âèäèìûõ áóôåðà --------------------------------------
   IndicatorBuffers        (4);
//---------- Óñòàíîâêà ïàðàìåòðîâ ðèñîâàíèÿ -------------------------
   SetIndexStyle           (0,   DRAW_LINE);
   SetIndexDrawBegin       (0,   BandsPeriod+BandsShift);

   SetIndexStyle           (1,   DRAW_LINE);
   SetIndexDrawBegin       (1,   BandsPeriod+BandsShift);

   SetIndexStyle           (2,   DRAW_LINE);
   SetIndexDrawBegin       (2,   BandsPeriod+BandsShift);
   
   SetIndexStyle           (3,   DRAW_HISTOGRAM);
   SetIndexDrawBegin       (3,   BandsPeriod+BandsShift);
//---------- Ïðèâÿçûâàåì íîìåð áóôåðà ê åãî èìåíè -------------------
   SetIndexBuffer          (0,   MovingBuffer);
   SetIndexBuffer          (1,   UpperBuffer);
   SetIndexBuffer          (2,   LowerBuffer);
   SetIndexBuffer          (3,   Val_BarsBuffer);
// ----------- Óñòàíàâëèâàåì ïåðâîíà÷àëüíûå çíà÷åíèÿ ---------------
   SetIndexEmptyValue      (0,   0.0);   
   SetIndexEmptyValue      (1,   0.0);   
   SetIndexEmptyValue      (2,   0.0);   
   SetIndexEmptyValue      (3,   0.0);
//------------------ Ìåòêà äëÿ ëèíèè èíäèêàòîðà ---------------------
   SetIndexLabel           (0,   "Mov");
   SetIndexLabel           (1,   "Up");   
   SetIndexLabel           (2,   "Down");   

   return(0);
}
//+------------------------------------------------------------------+
//| Bollinger Bands                                                  |
//+------------------------------------------------------------------+
int start()
{
   int      i,
            k,
            counted_bars   =  IndicatorCounted();
   double   deviation;
   double   sum, 
            oldval,
            newres;
//----
   if(Bars           <= BandsPeriod)
      return(0);
//---------------- Âû÷èñëÿåì ñðåäíþþ --------------------------------
   int limit         =  Bars  -  counted_bars;
   if(counted_bars   >  0)
      limit++;
   for(i =  0;    i  <  limit;   i++)
      Val_BarsBuffer[i] =  (High[i] -  Low[i])  /  Point;
   for(i =  0;    i  <  limit;   i++)
      MovingBuffer[i]   =  iMAOnArray(Val_BarsBuffer,
                              Bars,
                              BandsPeriod,
                              BandsShift,
                              MODE_SMA,            // MODE_SMA, MODE_EMA, MODE_SMMA, MODE_LWMA
                              i);       
//--------------- Âû÷èñëÿåì ñòîðîíû êàíàëà ----------------------------
   i                 =  Bars  -  BandsPeriod    +  1;
   if(counted_bars   >  BandsPeriod -  1)
      i              =  Bars  -  counted_bars   -  1;
   while(i           >= 0)
   {
      sum            =  0.0;
      k              =  i  +  BandsPeriod -  1;
      oldval         =  MovingBuffer[i];
      while(k        >= i)
      {
         newres      =  Val_BarsBuffer[k] -  oldval;
         sum         += newres   *  newres;
         k--;
      }
      deviation      =  BandsDeviations   *  MathSqrt(sum   /  BandsPeriod);
      UpperBuffer[i] =  oldval   +  deviation;
      LowerBuffer[i] =  oldval   -  deviation;
      i--;
   }
//----------------- Èíäèêàòîð âû÷èñëåí --------------------------------
     return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
 
   return(0);
}
mennzz
 
Posts: 78
Joined: Sun Jul 04, 2010 4:28 pm

Return to Indicator and Signal Requests

Who is online

Users browsing this forum: No registered users and 21 guests