Center of Gravity
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «center_ofgravity_full_5321336253495413103.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это пользовательский индикатор для MetaTrader 5, отображаемый в окне графика. Он строит на графике набор линий, представляющих сглаженную кривую и несколько симметричных отклонений от неё, а также вспомогательные ценовые метки. Расчёт выполняется по данным выбранного символа и текущего таймфрейма.
Индикатор имеет семь буферов отображения: центральную линию и по три линии сверху и снизу от неё. Дополнительно на графике размещаются текстовые метки и стрелки, а также информационные надписи. Пользователь может включать или отключать показ ценовых меток.
Управление индикатором частично выполняется через события графика: клик по графику и нажатия клавиш изменяют положение опорной точки и влияют на пересчёт. Также используется таймер для периодического обновления расчёта. Настройки позволяют задать глубину истории, метод построения, начальный бар и множитель для отклонений.
Индикатор не содержит торговых операций и не взаимодействует с торговыми приказами; его назначение — визуальный анализ ценовой динамики.
Настройки программы
| Настройка | Описание |
|---|---|
| OrigCode | Строковый параметр, сохраняемый в настройках индикатора. В расчётах не участвует. |
| Mod1Code | Строковый параметр, сохраняемый в настройках индикатора. В расчётах не участвует. |
| Mod2Code | Строковый параметр, сохраняемый в настройках индикатора. В расчётах не участвует. |
| Mod3Code | Строковый параметр, сохраняемый в настройках индикатора. В расчётах не участвует. |
| See_Prices | Включает или отключает отображение ценовых меток на графике. |
| bars_back | Количество баров назад, используемых для расчёта и отображения индикатора. |
| m | Выбор метода построения: уровни поддержки/сопротивления, канал или дуги. |
| i | Начальный бар, с которого начинается расчёт индикатора. |
| kstd | Множитель для расчёта отклонений от центральной линии. |
| sName | Числовой идентификатор, используемый для формирования имени объекта на графике. |
Поиск по коду файла
#property strict
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Orange
#property indicator_color2 Red
#property indicator_color3 LimeGreen
#property indicator_color4 Red
#property indicator_color5 LimeGreen
#property indicator_color6 Silver
#property indicator_color7 Silver
#property indicator_style1 2
#property indicator_style2 0
#property indicator_style3 0
#property indicator_style4 0
#property indicator_style5 0
#property indicator_style6 0
#property indicator_style7 0
#property indicator_style8 0
enum ENUM_SR
{
sr1=1,//S/R
sr2=2,//Channel
sr3=3//Arcs
};
extern string OrigCode = "";
extern string Mod1Code = "";
extern string Mod2Code = "";
extern string Mod3Code = "";
extern bool See_Prices=true;//See Prices
extern int bars_back=100;//Bars Back
input ENUM_SR m=3;//Method
extern int i=0;//Beginning
extern double kstd=0.1;//Multiplier
extern int sName=1102;//Name
string stRing="pr"+(string)sName;
string pips_Global="pips_Global"+Symbol();
double fx[],sqh[],sql[],stdh[],stdl[],stdh2[],stdl2[];
double ai[10,10],b[10],x[10],sx[20];
double sum,qq,mm,tt,sq,std;
int ip,p,n,f,n_global=0,pips_global=0;
int ii,jj,kk,ll,nn;
bool ready_flag=false;
void Prepare_Object()
{
if(ready_flag==true)return;
p=bars_back;
nn=m;
Arrow(stRing,Time[p],fx[p],159,Red,2,DoubleToStr(p,0));
ready_flag=true;
}
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
EventKillTimer();
if(reason==1 || reason==5)
{
ObjectDelete(stRing);
GlobalVariableDel(pips_Global);
}
for(int y=0; y<8; y++)
{
ObjectDelete("price"+(string)y);
}
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
void OnTimer()
{
if(ready_flag==false)
{
mat();
}
}
void mat()
{
if(ready_flag==false)Prepare_Object();
int mi;
p=bars_back;
sx[1]=p+1;
SetIndexDrawBegin(0,Bars-p-1);
SetIndexDrawBegin(1,Bars-p-1);
SetIndexDrawBegin(2,Bars-p-1);
SetIndexDrawBegin(3,Bars-p-1);
SetIndexDrawBegin(4,Bars-p-1);
SetIndexDrawBegin(5,Bars-p-1);
SetIndexDrawBegin(6,Bars-p-1);
for(mi=1;mi<=nn*2-2;mi++)
{
sum=0;
for(n=i;n<=i+p;n++)
{
sum+=MathPow(n,mi);
}
sx[mi+1]=sum;
}
for(mi=1;mi<=nn;mi++)
{
sum=0.00000;
for(n=i;n<=i+p;n++)
{
if(mi==1)
sum+=Close[n];
else
sum+=Close[n]*MathPow(n,mi-1);
}
b[mi]=sum;
}
for(jj=1;jj<=nn;jj++)
{
for(ii=1;ii<=nn;ii++)
Показано первые 50% кода (символов: 6247)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.