← К каталогу
Исходный код · ID 1179

PAMA GannGrid_oscv4.3

pama ganngrid_oscv4.3.mq4

Похожие материалы по тегам

the gold reaper v4.1 mt5.mq4MQL4 / MetaTrader 4 · 1 общих теговquantum queen x 4.3 (1).mq5MQL5 / MetaTrader 5 · 1 общих теговlizard_1.85.mq4MQL4 / MetaTrader 4 · 1 общих теговoverlaychart.mq4MQL4 / MetaTrader 4 · 1 общих теговmarket crusher ea guidlines.txtMQL · 1 общих теговrobot_wti ea.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

PAMA GannGrid_oscv4.3 — пользовательский аналитический индикатор для платформы MetaTrader 4 (MQL4). Индикатор строит сетку Ганна на графике, используя горизонтальные и вертикальные линии, привязанные к диапазону цен за настраиваемый период. Он рассчитывает минимальные и максимальные цены, определяет шаг сетки и отображает матрицу опорных линий вместе с линиями сетки Ганна под углом 45 градусов.

Настройки программы

НастройкаОписание
____GridBegin____ Разделитель начала сетки — Текстовый разделитель, обозначающий начало группы настроек начала сетки.
UseBeginDate Использовать дату начала — Переключатель, определяющий, будет ли начало расчёта сетки привязано к указанной дате вместо смещения по количеству баров.
BeginDate Дата начала — Строка с датой и временем начала расчёта сетки в формате ГГГГ.ММ.ДД ЧЧ:ММ, используется при включённом UseBeginDate.
250; (nBarsBack) Количество баров назад — Число баров от текущего бара, используемое для определения диапазона расчёта минимума и максимума цен.
prices Описание режимов цен — Текстовая подсказка, перечисляющая доступные режимы цен для расчёта (close, median, typical).
Price_Mode Режим цены — Целочисленный код выбранного режима цены для расчёта (close, open, median, typical).
Show_GridMatrix Показать матрицу сетки — Переключатель отображения горизонтальных и вертикальных линий сетки на графике.
Show_GannGrid Показать сетку Ганна — Переключатель отображения линий сетки Ганна под углом 45 градусов.
Show_HiloArrows Показать стрелки высоких/низких — Переключатель отображения стрелок сигналов в точках разворота тренда.
Show_PriceArrows Показать ценные стрелки — Переключатель отображения стрелок ценовых уровней на барах разворота.
Show_Comments Показать комментарии — Переключатель вывода информационных комментариев с параметрами сетки в окно комментариев.
____MainGrid____ Разделитель основной сетки — Текстовый разделитель, обозначающий начало группы настроек основной сетки.
Green;//Sienna; (MainGrid_Color) Цвет основной сетки — Цвет линий основной сетки и линий минимума/максимума.
MainGrid_Style Стиль основной сетки — Стиль отрисовки линий основной сетки (сплошной, пунктир и т.д.).
MinMaxGrid_Style Стиль линий мин/макс — Стиль отрисовки линий минимальной и максимальной цены.
MainGrid_Width Толщина основной сетки — Толщина линий основной сетки в пикселях.
fontSize Размер шрифта — Размер шрифта для отображения ценовых значений на графике.
Draw_AllGrids Рисовать все линии сетки — Переключатель, определяющий, отрисовываются ли все линии сетки или только выделенные.
Draw_AdditionalGrids Рисовать дополнительные линии — Переключатель отображения дополнительных линий сетки за пределами основного диапазона.
____GannGrid____ Разделитель сетки Ганна — Текстовый разделитель, обозначающий начало группы настроек сетки Ганна.
Gray; (GannGrid_Color) Цвет сетки Ганна — Цвет линий сетки Ганна.
GannGrid_Style Стиль сетки Ганна — Стиль отрисовки линий сетки Ганна.
GannGrid_Width Толщина сетки Ганна — Толщина линий сетки Ганна в пикселях.
____Default_GridParameters____ Разделитель параметров сетки — Текстовый разделитель, обозначающий начало группы параметров сетки по умолчанию.
default=35(!) (MainGrid_Intervals) Интервалы основной сетки — Количество интервалов деления диапазона цен для построения горизонтальных линий основной сетки.
with default 8.5 is the time interval not OK; and 9 is too large (GannGrid_Interval) Интервал сетки Ганна — Множитель шага сетки, определяющий расстояние между линиями сетки Ганна в ценовом выражении.
Text_Shift Сдвиг текста — Количество пробелов, добавляемых перед ценовым текстом для сдвига метки по горизонтали.
Получить полный код

Поиск по коду файла

/*+------------------------------------------------------------------+
   v 4.1  draw trading lines
   v 4.3  text shift for values

string sIndicatorName = "PAMA GannGrid_oscv4.3";

bool Draw_InMainWindow = false;
#property indicator_separate_window

#property indicator_buffers 8

#property indicator_color1 DodgerBlue //price line
#property indicator_color2 DodgerBlue //price dots
#property indicator_color3 Silver     //max,min; identical with MainGrid_Color
#property indicator_color4 Silver
#property indicator_color5 Green  //up arrow
#property indicator_color6 Green  //up line
#property indicator_color7 Red   //dn arrow
#property indicator_color8 Red   //dn line

#property indicator_width1 2 //price line
#property indicator_width2 1 //price dots
#property indicator_width3 1 //max,min; identical with MainGrid_Color
#property indicator_width4 1 //
#property indicator_width5 2 //up arrow
#property indicator_width6 2 //up line
#property indicator_width7 2 //dn arrow
#property indicator_width8 2 //dn line

#property indicator_style3 STYLE_SOLID
#property indicator_style4 STYLE_SOLID

extern string ____GridBegin____ = "";
extern bool UseBeginDate = false;

extern string BeginDate = "2010.01.01 00:00";
extern int nBarsBack = 120;//250;
extern string prices = "0=close, 4=median, 5=typical";
extern int Price_Mode = 5;

extern bool Show_GridMatrix = true;
extern bool Show_GannGrid = true;

extern bool Show_HiloArrows = true;
extern bool Show_PriceArrows = true;
extern bool Show_Comments = false;
extern string ____MainGrid____ = "";
extern color MainGrid_Color = Silver;//Green;//Sienna;
extern int MainGrid_Style = STYLE_DOT;
extern int MinMaxGrid_Style = STYLE_SOLID;
extern int MainGrid_Width = 1;
extern int fontSize = 8;
extern bool Draw_AllGrids = false;
extern bool Draw_AdditionalGrids = false;
extern string ____GannGrid____ = "";
extern color GannGrid_Color = Silver;//Gray;

extern int GannGrid_Style = STYLE_DOT;

extern int GannGrid_Width = 1;
extern string ____Default_GridParameters____ = "Recomanded GridInterval 35 or 36";
extern int MainGrid_Intervals = 36;   //default=35(!)
extern double GannGrid_Interval = 8.0;//with default 8.5 is the time interval not OK; and 9 is too large
extern int Text_Shift = 50;

double price[], dotPrice[];
double MaxPriceLine[], MinPriceLine[];
double upArrow[], upLine[], dnArrow[], dnLine[];

int iWindow;
string sWindowName;
datetime firstTime, thisTime, oldTime;
bool bGridOK = false;
int nMainGrid_Intervals;
int iGannGrid_Interval, iHalfInterval;
datetime maxPriceTime, minPriceTime;
double maxPrice, minPrice, gridStep;
bool UseBeginDateOriginal;
int nDigits;

int init()
{
      // код доступен только после оплаты
   }

int deinit()
{  
   Delete_GannObjects();
   if (Show_Comments) Comment("");
   for (int i=0; i<nBarsBack+20; i++)
   {
      upArrow[i] = EMPTY_VALUE;
      dnArrow[i] = EMPTY_VALUE;
      upLine[i]  = EMPTY_VALUE;
      dnLine[i]  = EMPTY_VALUE;
   }

   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
double dPrice;
   if (Draw_InMainWindow==false)
      if (iWindow < 1) iWindow = WindowFind(sWindowName);

   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;   
   int limit = Bars-counted_bars;      

   thisTime = Time[0]; 
   if (thisTime != oldTime) 
   {
      oldTime = thisTime;
      Delete_GannObjects();
      if ( (UseBeginDate == false && firstTime != 0) || //-- nBarsBack after first calculation
           (UseBeginDate == true  && limit < 4) )       //-- Date after first calculation
      {
         nBarsBack = 0;
         bGridOK = false;
         UseBeginDate = true; //firstTime is now allowable for nBarsBack
         int thisBarShift = iBarShift(Symbol(),Period(),firstTime,false);
         limit = thisBarShift;         
      }
   }

   if (bGridOK == false)
   {   
      dPrice = CurrentPrice(Price_Mode, 0);      
      maxPrice = dPrice; maxPriceTime = Time[0];
      minPrice = dPrice; minPriceTime = Time[0];
   }

   for(int i=0; i<limit; i++)   
   {
      dPrice = CurrentPrice(Price_Mode, i);
      price[i] = dPrice;
      dotPrice[i]  = dPrice;

      if (bGridOK == false)
      {

         if (UseBeginDate == true)
         {
            if (Time[i] > firstTime)
            {
               if (dPrice > maxPrice) {maxPrice = dPrice; maxPriceTime = Time[i];}
               if (dPrice < minPrice) {minPrice = dPrice; minPriceTime = Time[i];}
               nBarsBack++;
            }
         }
         else

         if (UseBeginDate == false)
         {
            if (i < nBarsBack)
            {
               if (dPrice > maxPrice) {maxPrice = dPrice; maxPriceTime = Time[i];}
               if (dPrice < minPrice) {minPrice = dPrice; minPriceTime = Time[i];}
               firstTime = Time[i];
            }         
         }         
      }
   }

   if (bGridOK == false)
   {
      double diffMinMax = maxPrice - minPrice;
      gridStep = NormalizeDouble(diffMinMax / nMainGrid_Intervals,Digits);
   }

   for(i=0; i<limit; i++)   
   {
      MaxPriceLine[i] = maxPrice;// + iHalfInterval *gridStep;
      MinPriceLine[i] = minPrice;// - iHalfInterval *gridStep;
      Write_PriceValue(maxPrice);
      Write_PriceValue(minPrice);
   }

   if (UseBeginDate == true)
      nBarsBack++;

   if (bGridOK == false)
   {

string st;   
st = st + "** " + sIndicatorName + " ** " + "\n";
if (UseBeginDateOriginal) string sBegin = "  (Date)"; else sBegin = "  (nBars)";
st = st + "GridBegin: " + TimeToStr(firstTime,TIME_DATE|TIME_MINUTES) + sBegin + "\n";
st = st + "nBarsBack= " + nBarsBack + "\n";
string sMaxPriceTime = "  (" + TimeToStr(maxPriceTime) + ")";
string sMinPriceTime = "  (" + TimeToStr(minPriceTime) + ")";
st = st + "maxPrice= " + DoubleToStr(maxPrice,Digits) + sMaxPriceTime + "\n";
st = st + "minPrice= " + DoubleToStr(minPrice,Digits) + sMinPriceTime + "\n";
double percent = 100.0 *( maxPrice - minPrice) / minPrice;
double gridPerc= percent / nMainGrid_Intervals;
string sGridPercent = " ( " + DoubleToStr(gridPerc,2) + " % )";
st = st + "Percent= " + DoubleToStr(percent,2) + " %\n";
st = st + "GridStep= " + DoubleToStr(gridStep,Digits) + sGridPercent + "\n";
string sGridStep = " (" + iHalfInterval + " GridSteps)";
st = st + "mainStep= " + D

Показано первые 50% кода (символов: 12003)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 200,30₽ ≈ $14.67