Уникальнейший индикатор - INVISIBLE CHANNEL

upoint

Прохожий
Скажу и я спасибо на словах, репутации мало для автоматического, индикатор глянем обязательно...
Тоже многое чего скачиваю, а ставить - время маловато...
 

jek1380

Новичок форума
Ребята, а вы не надорвались скачивать? На этот момент скачали 59 пользователей. А спасибо сказали только двое. Вы что, считаете, что я обязан выкладывать то, что продают, в настоящее время за некоторое количество баксов? Я не гонюсь за рейтингом на форуме. У меня существует свой рейтинг. Я вижу, кто и сколько стоит. Почему я не считаю зазорным сказать "спасибо" новичку, если его информация мне показалась интересной? Все, кто мне сказал "спасибо" даже в другой теме, всех помню. Жаль, что не могу создать закрытую тему. У меня есть что рассказать. Только, здесь не буду.
спасибо
 

asdek

Активный участник
Довольно интересный индикатор большое спасибо Sapper
 

LuXXXXuS

Новичок форума
По невидимому каналу: хотелось бы узнать настройки, потому что в шаблонах архива - полная лажа!
 

SAS65

Прохожий
Уважаемые трейдеры, кто нибудь слышал об Уникальнейшем индикаторе - INVISIBLE CHANNEL, правда ли это, или это очередная разводка. Если есть у кого поделитесь, если конечн не жалко. Заранее большое спасибо. Да чуть не забыл вот ссылка.
_http://profitorder.ru/user/shop.php?id=14

"Уникальнейших" индикаторов не бывает, есть только нелегкая работа в анализе рынка и удовлетворение от проделанной работы в виде профита!!!
 

skin

Почетный гражданин
Вот с этим набором вроде неплохо получается.
 

Вложения

  • система.gif
    система.gif
    62 КБ · Просмотры: 1 949

Pro_trader

Official representative
Исходник закрепил
:idea:


2009 .. извиняюсь ...


но так или иначе бесплатно валялся в интернете ... -


//+------------------------------------------------------------------+
//| InvChanel.mq4 |
//| Copyright © 2009, ProfitOrder |
//| _http://www.profitorder.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, ProfitOrder"
#property link "http://www.profitorder.com/"
#define major 1
#define minor 0

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_width1 1

extern string Pair1 = "EURUSD";
extern string Pair2 = "GBPUSD";

extern color clRegress = Gold;
extern color clRegressExt = Silver;

double Buffer[];

string prefix = "InvChanel_";
string short_name;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

int m_pos[2];
double m_value[2];
double a, b;
double maxdev;

void init()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, Buffer);

short_name = "InvChanel(" + Pair1 + ", " + Pair2 + ")";
IndicatorShortName(short_name);
}

void deinit()
{
clear();
}

void start()
{
int counted_bars = IndicatorCounted();
if (counted_bars < 0) return;
if (counted_bars > 0) counted_bars--;
int limit = Bars-counted_bars;

double val1, val2;
int ind;

for (int i=0; i<limit; i++)
{
ind = iBarShift(Pair1, 0, Time);
val1 = iClose(Pair1, 0, ind);

ind = iBarShift(Pair2, 0, Time);
val2 = iClose(Pair2, 0, ind);

if (val1 == 0 || val2 == 0) continue;

Buffer = val1/val2;
}

//Comment(val1, " * ", val2, " * ", Buffer[1]);

//-----

datetime tm1 = iTime(NULL, PERIOD_D1, iBarShift(NULL, PERIOD_D1, Time[0],false));
datetime tm2 = iTime(NULL, PERIOD_D1, iBarShift(NULL, PERIOD_D1, Time[0],false)+1);

m_pos[0] = iBarShift(NULL, 0, tm1,false);
m_pos[1] = iBarShift(NULL, 0, tm2,false);
CalcRegr();

//double Regr1 = a + 1*b;

int win = WindowFind(short_name);
string obj_name;

obj_name = prefix + "main";
if (ObjectFind(obj_name) == -1) {
ObjectCreate(obj_name, OBJ_TREND, win, Time[m_pos[1]], m_value[1], Time[m_pos[0]], m_value[0]);
}
else {
ObjectMove(obj_name, 0, Time[m_pos[1]], m_value[1]);
ObjectMove(obj_name, 1, Time[m_pos[0]], m_value[0]);
}

ObjectSet(obj_name, OBJPROP_RAY, false);
ObjectSet(obj_name, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(obj_name, OBJPROP_COLOR, clRegress);


obj_name = prefix + "upper";
if (ObjectFind(obj_name) == -1) {
ObjectCreate(obj_name, OBJ_TREND, win, Time[m_pos[1]], m_value[1]+maxdev, Time[m_pos[0]], m_value[0]+maxdev);
}
else {
ObjectMove(obj_name, 0, Time[m_pos[1]], m_value[1]+maxdev);
ObjectMove(obj_name, 1, Time[m_pos[0]], m_value[0]+maxdev);
}

ObjectSet(obj_name, OBJPROP_RAY, false);
ObjectSet(obj_name, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(obj_name, OBJPROP_COLOR, clRegress);

obj_name = prefix + "lower";
if (ObjectFind(obj_name) == -1) {
ObjectCreate(obj_name, OBJ_TREND, win, Time[m_pos[1]], m_value[1]-maxdev, Time[m_pos[0]], m_value[0]-maxdev);
}
else {
ObjectMove(obj_name, 0, Time[m_pos[1]], m_value[1]-maxdev);
ObjectMove(obj_name, 1, Time[m_pos[0]], m_value[0]-maxdev);
}

ObjectSet(obj_name, OBJPROP_RAY, false);
ObjectSet(obj_name, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(obj_name, OBJPROP_COLOR, clRegress);

//-----

obj_name = prefix + "main_ext";
if (ObjectFind(obj_name) == -1) {
ObjectCreate(obj_name, OBJ_TREND, win, Time[m_pos[1]], m_value[1], Time[m_pos[0]], m_value[0]);
}
else {
ObjectMove(obj_name, 0, Time[m_pos[1]], m_value[1]);
ObjectMove(obj_name, 1, Time[m_pos[0]], m_value[0]);
}

ObjectSet(obj_name, OBJPROP_RAY, true);
ObjectSet(obj_name, OBJPROP_BACK, true);
ObjectSet(obj_name, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(obj_name, OBJPROP_COLOR, clRegressExt);


obj_name = prefix + "upper_ext";
if (ObjectFind(obj_name) == -1) {
ObjectCreate(obj_name, OBJ_TREND, win, Time[m_pos[1]], m_value[1]+maxdev, Time[m_pos[0]], m_value[0]+maxdev);
}
else {
ObjectMove(obj_name, 0, Time[m_pos[1]], m_value[1]+maxdev);
ObjectMove(obj_name, 1, Time[m_pos[0]], m_value[0]+maxdev);
}

ObjectSet(obj_name, OBJPROP_RAY, true);
ObjectSet(obj_name, OBJPROP_BACK, true);
ObjectSet(obj_name, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(obj_name, OBJPROP_COLOR, clRegressExt);

obj_name = prefix + "lower_ext";
if (ObjectFind(obj_name) == -1) {
ObjectCreate(obj_name, OBJ_TREND, win, Time[m_pos[1]], m_value[1]-maxdev, Time[m_pos[0]], m_value[0]-maxdev);
}
else {
ObjectMove(obj_name, 0, Time[m_pos[1]], m_value[1]-maxdev);
ObjectMove(obj_name, 1, Time[m_pos[0]], m_value[0]-maxdev);
}

ObjectSet(obj_name, OBJPROP_RAY, true);
ObjectSet(obj_name, OBJPROP_BACK, true);
ObjectSet(obj_name, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(obj_name, OBJPROP_COLOR, clRegressExt);
}

void CalcRegr()
{
int n = m_pos[1]-m_pos[0]+1;

//---- calculate price values
double value = Buffer[m_pos[0]];
double c;
double sumy = value;
double sumx = 0.0;
double sumxy = 0.0;
double sumx2 = 0.0;

for(int i=1; i<n; i++)
{
value = Buffer[m_pos[0]+i];
sumy += value;
sumxy += value*i;
sumx += i;
sumx2 += i*i;
}

c = sumx2*n - sumx*sumx;
if (c == 0.0) return;

b = (sumxy*n - sumx*sumy)/c;
a = (sumy - sumx*b)/n;
m_value[0] = a;
m_value[1] = a+b*n;

//---- maximal deviation
double deviation = 0;
double dvalue = a;
maxdev = 0;

for(i=0; i<n; i++)
{
value = Buffer[m_pos[0]+i];
dvalue += b;
deviation = MathAbs(value-dvalue);
if(maxdev <= deviation) maxdev = deviation;
}
}

void clear()
{
int total = ObjectsTotal();
for (int i=total-1; i >= 0; i--)
{
string name = ObjectName(i);
if (StringFind(name, prefix) == 0) ObjectDelete(name);
}
}
 

Вложения

  • TEMP - InvChanel.mq4
    6,1 КБ · Просмотры: 743
Последнее редактирование модератором:
Верх