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

_correlation ind chartlite.mq4

Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 4, рассчитывающий и отображающий на графике уровни цены с учётом корреляции до четырёх указанных символов. Использует горизонтальные линии и текстовые метки для визуализации скорректированных ценовых уровней каждого инструмента. Поддерживает выбор направления корреляции и процент корректировки для каждого символа отдельно.

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

НастройкаОписание
symbol1 Основной символ — Тиковый код основного инструмента, для которого рассчитываются коррелированные уровни цены.
s1correlation Направление корреляции символа 1 — Знак корреляции для первого символа: «+» для положительной или «-» для отрицательной связи.
s1color Цвет символа 1 — Цвет графических элементов, связанных с первым символом на графике.
TF Таймфрейм — Таймфрейм для расчёта данных (0 — текущий график, ненулевое значение — конкретный период).
s1adjust_percent Процент корректировки символа 1 — Коэффициент в процентах, применяемый к расчётному смещению цены первого символа.
s2 Второй символ — Тиковый код второго инструмента для сравнения корреляции.
s2cor Направление корреляции символа 2 — Знак корреляции для второго символа: «+» или «-».
s2adj Процент корректировки символа 2 — Коэффициент в процентах для второго символа.
s3 Третий символ — Тиковый код третьего инструмента для сравнения корреляции.
s3cor Направление корреляции символа 3 — Знак корреляции для третьего символа: «+» или «-».
s3adj Процент корректировки символа 3 — Коэффициент в процентах для третьего символа.
s4 Четвёртый символ — Тиковый код четвёртого инструмента для сравнения корреляции.
s4cor Направление корреляции символа 4 — Знак корреляции для четвёртого символа: «+» или «-».
s4adj Процент корректировки символа 4 — Коэффициент в процентах для четвёртого символа.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 8

extern string     symbol1           ="";
extern string     s1correlation     ="+";
extern color      s1color           =DarkOrchid;
extern int        TF                = 0;
extern double     s1adjust_percent  =100;
extern string     s2                ="";
extern string     s2cor             ="+";
extern double     s2adj             =100;
extern string     s3                ="";
extern string     s3cor             ="+";
extern double     s3adj             =100;
extern string     s4                ="";
extern string     s4cor             ="+";
extern double     s4adj             =100;
string s[4];
string cor[4];
double adj[4];
bool hasrun=false;
int  bar;
double base;
double base2[4];

double E1[];
double E2[];
double E3[];
double E4[];
double E5[];
double E6[];
double E7[];
double E8[];

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

int deinit()
  {

   GlobalVariableSet(Symbol()+"CCIND",GlobalVariableGet(Symbol()+"CCIND")-1);

   Comment("");

   return(0);
  }

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

void drawLine(double lvl,string name, color Col,int type){
   if(ObjectFind(name) != 0){
      ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
      if(type == 1)
         ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
      else
         ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
      ObjectSet(name, OBJPROP_COLOR, Col);
      ObjectSet(name,OBJPROP_WIDTH,1);
   }else{
      ObjectDelete(name);
      ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
      if(type == 1)
         ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
      else
         ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
      ObjectSet(name, OBJPROP_COLOR, Col);        
      ObjectSet(name,OBJPROP_WIDTH,1);
   }
}
void drawLabel(string name,double lvl,color Color){
   if(ObjectFind(name) != 0){
      ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);
      ObjectSetText(name, name, 8, "Arial", EMPTY);
      ObjectSet(name, OBJPROP_COLOR, Color);
   }
   else
   {
      ObjectMove(name, 0, Time[10], lvl);
   }
}
int runonce(){
   bar= WindowFirstVisibleBar();
   base= Close[bar];
   for(int y=0;y<4;y++)base2[y]=iClose(s[y],0,bar);
   int i;double change;
   int c;
   for(y=0;y<4;y++){
      if(StringLen(s[y])>2){
         c++;
      }
   }
   if(c<=1){
      for(i=bar;i>=0;i--){
         if(TF>0)int ss=i;
         else{
            datetime time = iTime(Symbol(),TF,i);
            ss = iBarShift(s[0],TF,time,false);
         }
         if(ss<0)continue;
         double highchange =  base2[0] - iHigh (s[0],TF,ss);
         double lowchange  =  base2[0] - iLow  (s[0],TF,ss);
         double openchange =  base2[0] - iOpen (s[0],TF,ss);
         double closechange=  base2[0] - iClose(s[0],TF,ss);
         highchange = highchange / MarketInfo(s[0],MODE_POINT);
         lowchange  = lowchange  / MarketInfo(s[0],MODE_POINT);
         openchange  = openchange  / MarketInfo(s[0],MODE_POINT);
         closechange  = closechange  / MarketInfo(s[0],MODE_POINT);
         if(cor[0]=="+"){
            E6[i]=base-(highchange*Point*(adj[0]/100));
            E5[i]=base

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

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

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

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

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

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

Стоимость полного кода
612,60₽ ≈ $7.49