PAMA GannGrid_oscv4.3
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pama ganngrid_oscv4.3.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.