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

correlation ind chartlite+offset.mq4

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

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

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

О программе

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

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

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

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

НастройкаОписание
symbol1 Символ 1 — Тикерный символ первого финансового инструмента.
s1correlation Корреляция 1 — Направление корреляции для первого инструмента: «+» — прямое, «-» — обратное.
s1color Цвет 1 — Цвет отображения для первого инструмента.
TF Таймфрейм — Таймфрейм для расчёта отклонений. При значении 0 используется текущий график, при ненулевом значении — указанный период.
s1adjust_percent Процент корректировки 1 — Процент корректировки значения для первого финансового инструмента.
offset Смещение — Смещение базового уровня в пунктах от цены закрытия видимой свечи.
s2 Символ 2 — Тикерный символ второго финансового инструмента.
s2cor Корреляция 2 — Направление корреляции для второго инструмента: «+» — прямое, «-» — обратное.
s2adj Процент корректировки 2 — Процент корректировки значения для второго финансового инструмента.
s3 Символ 3 — Тикерный символ третьего финансового инструмента.
s3cor Корреляция 3 — Направление корреляции для третьего инструмента: «+» — прямое, «-» — обратное.
s3adj Процент корректировки 3 — Процент корректировки значения для третьего финансового инструмента.
s4 Символ 4 — Тикерный символ четвёртого финансового инструмента.
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 int        offset            =30;
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] + offset*Point;
   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]/1

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

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

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

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

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

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

Стоимость полного кода
615,80₽ ≈ $7.53