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

PAMA GannGrid_indv4.3

pama ganngrid_indv4.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_indv4.3 — это индикатор для чарта, который визуализирует ценовые сетки на основе диапазона максимумов и минимумов. Он рассчитывает разницу между экстремумами за заданное количество баров или с указанной даты, делит диапазон на равные интервалы и отображает горизонтальные и вертикальные линии сетки прямо на графике цены.

Индикатор способен строить сетку Ганна (наклонные линии под углом), отрисовывать трендовые торговые линии, стрелки на точках разворота и подписи ценовых уровней. Все элементы отрисовки настраиваются через параметры: цвет, стиль, толщина линий, режим цены и видимость отдельных компонентов.

Индикатор работает в основном окне графика и пересчитывает параметры сетки при формировании нового бара. Он использует объекты TradingView для отрисовки линий, стрелок и текстовых подписей, а также поддерживает отображение информационных комментариев с основными параметрами сетки.

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

НастройкаОписание
____GridBegin____ Начало сетки — Разделитель группы настроек начала сетки
UseBeginDate Использовать дату начала — Переключатель использования заданной даты начала вместо количества баров назад
BeginDate Дата начала — Дата начала построения сетки (используется при включённом параметре UseBeginDate)
250; (nBarsBack) Баров назад — Количество баров назад для расчёта диапазона сетки (при UseBeginDate = false)
prices Режимы цен — Описание доступных режимов цен для расчётов
Price_Mode Режим цены — Режим цены для расчётов: 0 — Close, 4 — Median, 5 — Typical
Show_GridMatrix Показать матрицу сетки — Отображение матрицы сетки (горизонтальные и вертикальные линии)
Show_GannGrid Показать сетку Ганна — Отображение сетки Ганна на графике
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_indv4.3";

bool Draw_InMainWindow = true; //set this parameter!

#property indicator_chart_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 1 //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 = false;
extern bool Show_GannGrid = false;
extern bool Show_HiloArrows = true;
extern bool Show_PriceArrows = false;
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;
      MaxPriceLine[i] = EMPTY_VALUE;
      MinPriceLine[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 = " (" + iHal

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

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

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

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

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

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

Стоимость полного кода
1 209,10₽ ≈ $14.77