Light Style© by Fisana

Перейти к содержимому


РАММ сервис NordFx: копируй сделки лучших трейдеров форекс


NordFX

Фотография
- - - - -

Нам очень помогут


  • Пожалуйста, авторизуйтесь, чтобы ответить
8 ответов в этой теме

#1 Vadmin

Vadmin

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 434 сообщений

Опубликовано 19 Октябрь 2005 - 08:36

//+------------------------------------------------------------------+
//| PChannel_m.mq4 |
//+------------------------------------------------------------------+

#property indicator_chart_window //Назначаем окно для вывода графика (там, где бары)
#property indicator_buffers 3 //Выделяем для индикатора три буфера
#property indicator_color1 DodgerBlue //Назначаем цвет для отображения данных 1 буфера
#property indicator_color2 DodgerBlue //Назначаем цвет для отображения данных 2 буфера
#property indicator_color3 DodgerBlue //Назначаем цвет для отображения данных 3 буфера
//---- input parameters //объявление вводимых внешних параметров
extern int Range=14; //по умолчанию вводимое значение равно 14
//---- buffers
double UpBuffer[]; //обявление переменной UpBuffer типа "массив с плавающей точкой"
double DnBuffer[]; //обявление переменной DnBuffer типа "массив с плавающей точкой"
double MdBuffer[]; //обявление переменной MdBuffer типа "массив с плавающей точкой"
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() //инициализация переменных
{
string short_name; //обявление переменной short_name типа "строковый"
//---- indicator line
SetIndexStyle(0,DRAW_LINE,1,2); //установка стиля для первого значения индикатора
SetIndexStyle(1,DRAW_LINE,1,2); //установка стиля для второго значения индикатора
SetIndexStyle(2,DRAW_LINE,2); //установка стиля для третьего значения индикатора
SetIndexBuffer(0,UpBuffer); //значение записываемое в 0 буфер равно переменной UpBuffer
SetIndexBuffer(1,DnBuffer); //значение записываемое в 1 буфер равно переменной DnBuffer
SetIndexBuffer(2,MdBuffer); //значение записываемое в 2 буфер равно переменной MdBuffer
//---- name for DataWindow and indicator subwindow label
short_name="PriceChannel("+Range+")"; //переменной short_name присваиваем строковое
//значение равное выражению
IndicatorShortName(short_name); //для отображения на графике присвоим индикатору краткое
//наименование
SetIndexLabel(0,"Up Channel"); //для отображения на графике присвоим метке отображающей
//значения 0 буфера имя Up Channel
SetIndexLabel(1,"Down Channel"); //для отображения на графике присвоим метке отображающей
//значения 1 буфера имя Down Channel
SetIndexLabel(2,"Middle Channel"); //для отображения на графике присвоим метке отображающей
//значения 2 буфера имя Middle Channel
//----
SetIndexDrawBegin(0,0); //установка начальной точки прорисовки для 0 буфера
SetIndexDrawBegin(1,0); //установка начальной точки прорисовки для 1 буфера
SetIndexDrawBegin(2,0); //установка начальной точки прорисовки для 2 буфера
//----
return(0); //возврат из секции инициализации
}
//+------------------------------------------------------------------+
//| PriceChannel |
//+------------------------------------------------------------------+
int start() //начало программы (расчета)
{
int i; //объявление целочисленной переменной i,k,sch

//----

for(i=Bars-1;i>=0;i--)
{
UpBuffer[i]=High[Highest(NULL,0,MODE_HIGH,Range,i)];
DnBuffer[i]=Low[Lowest(NULL,0,MODE_LOW,Range,i)];
MdBuffer[i]=(UpBuffer[i]+DnBuffer[i])/2;
}
return(0);
}
//+------------------------------------------------------------------+

#2 Vadmin

Vadmin

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 434 сообщений

Опубликовано 19 Октябрь 2005 - 08:37

//+------------------------------------------------------------------+
//| PriceChannel_Stop_v1.mq4 |
//| Copyright © 2005, TrendLaboratory Ltd. |
//| E-mail: igorad2004@list.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, TrendLaboratory Ltd."
#property link "E-mail: igorad2004@list.ru"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 Blue
#property indicator_color6 Red
//---- input parameters
extern int ChannelPeriod=5;
extern double Risk=0.10;
extern int Signal=1;
extern int Line=1;
extern int Nbars=1000;
//---- indicator buffers
double UpTrendBuffer[];
double DownTrendBuffer[];
double UpTrendSignal[];
double DownTrendSignal[];
double UpTrendLine[];
double DownTrendLine[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
SetIndexBuffer(0,UpTrendBuffer);
SetIndexBuffer(1,DownTrendBuffer);
SetIndexBuffer(2,UpTrendSignal);
SetIndexBuffer(3,DownTrendSignal);
SetIndexBuffer(4,UpTrendLine);
SetIndexBuffer(5,DownTrendLine);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexStyle(4,DRAW_LINE);
SetIndexStyle(5,DRAW_LINE);
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexArrow(2,241);
SetIndexArrow(3,242);
//---- name for DataWindow and indicator subwindow label
short_name="PriceChannel_Stop_v1("+ChannelPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"UpTrend Stop");
SetIndexLabel(1,"DownTrend Stop");
SetIndexLabel(2,"UpTrend Signal");
SetIndexLabel(3,"DownTrend Signal");
SetIndexLabel(4,"UpTrend Line");
SetIndexLabel(5,"DownTrend Line");
//----
SetIndexDrawBegin(0,ChannelPeriod);
SetIndexDrawBegin(1,ChannelPeriod);
SetIndexDrawBegin(2,ChannelPeriod);
SetIndexDrawBegin(3,ChannelPeriod);
SetIndexDrawBegin(4,ChannelPeriod);
SetIndexDrawBegin(5,ChannelPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| PriceChannel_Stop_v1 |
//+------------------------------------------------------------------+
int start()
{
int i,shift,trend;
double high, low, price;
double smax[5000],smin[5000],bsmax[5000],bsmin[5000];

for (shift=Nbars-1;shift>=0;shift--)
{
UpTrendBuffer[shift]=EMPTY_VALUE;
DownTrendBuffer[shift]=EMPTY_VALUE;
UpTrendSignal[shift]=EMPTY_VALUE;
DownTrendSignal[shift]=EMPTY_VALUE;
UpTrendLine[shift]=EMPTY_VALUE;
DownTrendLine[shift]=EMPTY_VALUE;
}
for (shift=Nbars-ChannelPeriod-1;shift>=0;shift--)
{
high=High[shift]; low=Low[shift]; i=shift-1+ChannelPeriod;
while(i>=shift)
{
price=High[i];
if(high<price) high=price;
price=Low[i];
if(low>price) low=price;
i--;
}
smax[shift]=high;
smin[shift]=low;

bsmax[shift]=smax[shift]-(smax[shift]-smin[shift])*Risk;
bsmin[shift]=smin[shift]+(smax[shift]-smin[shift])*Risk;

if (Close[shift]>bsmax[shift+1]) trend=1;
if (Close[shift]<bsmin[shift+1]) trend=-1;

if(trend>0 && bsmin[shift]<bsmin[shift+1]) bsmin[shift]=bsmin[shift+1];
if(trend<0 && bsmax[shift]>bsmax[shift+1]) bsmax[shift]=bsmax[shift+1];

if (trend>0)
{
if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)
{
UpTrendSignal[shift]=bsmin[shift];
if(Line>0) UpTrendLine[shift]=bsmin[shift];
}
else
{
UpTrendBuffer[shift]=bsmin[shift];
if(Line>0) UpTrendLine[shift]=bsmin[shift];
UpTrendSignal[shift]=-1;
}
if (Signal==2) UpTrendBuffer[shift]=0;
DownTrendBuffer[shift]=-1.0;
DownTrendLine[shift]=EMPTY_VALUE;
}
if (trend<0)
{
if (Signal>0 && DownTrendBuffer[shift+1]==-1.0)
{
DownTrendSignal[shift]=bsmax[shift];
if(Line>0) DownTrendLine[shift]=bsmax[shift];
}
else
{
DownTrendBuffer[shift]=bsmax[shift];
if(Line>0)DownTrendLine[shift]=bsmax[shift];
DownTrendSignal[shift]=-1;
}
if (Signal==2) DownTrendBuffer[shift]=0;
UpTrendBuffer[shift]=-1.0;
UpTrendLine[shift]=EMPTY_VALUE;
}


}
/*
Comment("UpTrendLine[] = ",UpTrendLine[0], " DownTrendLine[] = ",DownTrendLine[0],"n",
"UpTrendSignal[] = ",UpTrendSignal[0], " DownTrendSignal[] = ",DownTrendSignal[0],"n",
"UpTrendBuffer[] = ",UpTrendBuffer[0], " DownTrendBuffer[] = ",DownTrendBuffer[0],"n",
"EMPTY_VALUE = ",EMPTY_VALUE);*/
return(0);
}
//+------------------------------------------------------------------+

#3 Vadmin

Vadmin

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 434 сообщений

Опубликовано 19 Октябрь 2005 - 08:40

//+------------------------------------------------------------------+
//| ZZZ.mq4 |
//+------------------------------------------------------------------+
#property copyright "Istoniz"
#property link "http://www.kg/"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Aqua
//---- input parameters
extern int Length=6;

//---- buffers
double ExtMapBuffer1[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);


//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int barn=300;
/*
//--------------------------
int counted_bars=IndicatorCounted();
limit,barn=Bars-Length;
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;

limit=Bars-counted_bars+4*Length;
//Comment(" limit = ",limit, " Bars = ",Bars);
//--------------------------
*/
//--------------------------
int shift,Swing,Swing_n,i,zu,zd,uzl;
double LL,HH,BH,BL,NH,NL;

Swing_n=0; Swing=0; uzl=0;

BH =High[barn]; BL=Low[barn];
zu=barn; zd=barn;

for ( shift=barn; shift>0 ; shift--)
{
LL=10000000; HH=-100000000;
for ( i=shift+Length; i>shift+1 ; i--)
{
if ( Low[i]<LL ) LL=Low[i];
if ( High[i]>HH ) HH=High[i];
}
if ( Low[shift]<LL && High[shift]>HH )
{
Swing=2;
if ( Swing_n==1 ) zu=shift+1;
if ( Swing_n==-1 ) zd=shift+1;
} else
{
if ( Low[shift]<LL ) Swing=-1;
if ( High[shift]>HH ) Swing=1;
}

if ( Swing!=Swing_n && Swing_n!=0 )
{
if ( Swing==2 )
{
Swing=-Swing_n;
BH=High[shift];
BL=Low[shift];
}
uzl=uzl+1;
if ( Swing==1 )
{

ExtMapBuffer1[zd]=BL;
}
if ( Swing==-1 )
{

ExtMapBuffer1[zu]=BH;
}
BH=High[shift];
BL=Low[shift];
}

if ( Swing==1 )
{
if ( High[shift]>=BH )
{
BH=High[shift];
zu=shift;
}
}
if ( Swing==-1 )
{
if ( Low[shift]<=BL )
{
BL=Low[shift];
zd=shift;
}
}
Swing_n=Swing;
}

//----
return(0);
}
//+------------------------------------------------------------------+

#4 Vadmin

Vadmin

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 434 сообщений

Опубликовано 19 Октябрь 2005 - 08:41

//+------------------------------------------------------------------+
//| Custom Moving Average.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
//---- indicator buffers
double ExtMapBuffer[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(0,0.0);
ArraySetAsSeries(ExtMapBuffer,true);
ArraySetAsSeries(ExtMapBuffer2,true);
//---- indicator short name
IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int shift, back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;

for(shift=Bars-ExtDepth; shift>=0; shift--)
{
val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer[shift+back];
if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0;
}
}
}
ExtMapBuffer[shift]=val;
//--- high
val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer2[shift+back];
if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0;
}
}
}
ExtMapBuffer2[shift]=val;
}

// final cutting
lasthigh=-1; lasthighpos=-1;
lastlow=-1; lastlowpos=-1;

for(shift=Bars-ExtDepth; shift>=0; shift--)
{
curlow=ExtMapBuffer[shift];
curhigh=ExtMapBuffer2[shift];
// if((curlow==0.0)||(curhigh==0.0)) continue;
//---
if(curhigh!=0)
{
if(lasthigh>0)
{
if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0;
else ExtMapBuffer2[shift]=0;
};//я
//---
if(lasthigh<curhigh || lasthigh<0)
{
lasthigh=curhigh;
lasthighpos=shift;
};// я
lastlow=-1;
};//я
//----
if(curlow!=0)
{
if(lastlow>0)
{
if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0;
else ExtMapBuffer[shift]=0;
};//z
//---
if((curlow<lastlow)||(lastlow<0))
{
lastlow=curlow;
lastlowpos=shift;
};//z
lasthigh=-1;
};//
}

for(shift=Bars-1; shift>=0; shift--)
{
if(shift>=Bars-ExtDepth) ExtMapBuffer[shift]=0.0;
else
{
res=ExtMapBuffer2[shift];
if(res!=0.0) ExtMapBuffer[shift]=res;
//if(res>0.0) ExtMapBuffer[shift]=res;
}
}
}

#5 Demix

Demix

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 260 сообщений

Опубликовано 19 Октябрь 2005 - 08:41

а маленькое описание индикаторов можно? :roll:

#6 Vadmin

Vadmin

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 434 сообщений

Опубликовано 19 Октябрь 2005 - 08:42

//+------------------------------------------------------------------+
//| 3LineBreak.mq4 |
//| Copyright © 2004, Poul_Trade_Forum |
//| Aborigen |
//| http://forex.kbpauk.ru/ |
//+------------------------------------------------------------------+
#property copyright "Poul Trade Forum"
#property link "http://forex.kbpauk.ru/"
#property indicator_chart_window
#property indicator_buffers 2

//---- input parameters
extern int Lines_Break=3;
//---- buffers
double HighBuffer[];
double LowBuffer[];
double VALUE1,VALUE2,Swing=1,OLDSwing;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2,Blue);
SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2,Red);

SetIndexBuffer(0,HighBuffer);
SetIndexBuffer(1,LowBuffer);

SetIndexEmptyValue(0,0);
SetIndexEmptyValue(1,0);

//---- name for DataWindow and indicator subwindow label
short_name="3LineBreak";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);

//----
SetIndexDrawBegin(0,10);
SetIndexDrawBegin(1,10);
//----

return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),i,shift;


//---- TODO: add your code here
if (counted_bars==0) counted_bars=Lines_Break+1;
i=(Bars-counted_bars);

for (shift=i; shift>=0;shift--)
{

OLDSwing=Swing;

VALUE1=High[Highest(NULL,0,MODE_HIGH,Lines_Break,shift+1)];
VALUE2= Low[Lowest(NULL,0,MODE_LOW,Lines_Break,shift+1)];
if (OLDSwing==1 && Low[shift]<VALUE2) Swing=-1;
if (OLDSwing==-1 && High[shift]>VALUE1 ) Swing=1;

if (Swing==1)
{ HighBuffer[shift]=High[shift]; LowBuffer[shift]=Low[shift]; }

if (Swing==-1)
{ LowBuffer[shift]=High[shift]; HighBuffer[shift]=Low[shift]; }


//----
}
return(0);
}
//+------------------------------------------------------------------+

#7 Кислотный

Кислотный

    прописался

  • Пользователь
  • PipPipPip
  • 72 сообщений

Опубликовано 19 Октябрь 2005 - 08:48

Размещенное изображение
ТАК примерно выглядят?
Спасибо.

#8 Vadmin

Vadmin

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 434 сообщений

Опубликовано 19 Октябрь 2005 - 09:03

а маленькое описание индикаторов можно?  :roll:


Описания нет,но можно будет по ходу дела их обсуждать на практике.В принципе они интуитивно понятны .
Утром вырисовывается ценовой канал.По тактике МФ,смотрим направление на всех временых интервалах скользящих средних и открываемся ,в низ при пробитии синих кружков,в верх при пробитии красных.Ну и ещё какой нить осцилятор прицепить,для более уверенного входа.

#9 Prophet

Prophet

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 526 сообщений

Опубликовано 11 Июнь 2007 - 08:09

Спаисбо




Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Рейтинг брокеров форекс: кто лидер, кто аутсайдер и почему?




Masterforex-V NordFX

Rambler's Top100

Принимаем Z-Payment