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