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