![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я скачал этот индикатор из одной из тем, и он намного лучше, чем индикаторы CCI-zones или Ma-zones.
Можно ли адаптировать его для отображения на экране, как в индикаторе зон?
Он установлен на настройку CCI 13, но если его можно легко сделать индикатором с переменной настройкой, то это было бы бонусом - но очень второстепенным запросом.
Это индикатор Forex-TSD, но папки mq4 с ним не было.
Спасибо
TEAMTRADERНасколько я понимаю, это не cci, а thv t3 trix. Вам следует поискать некоторые вариации thv trix.
младен, у меня есть индикатор, который строит линию для максимума и минимума предыдущего дня. но мне нужен такой же индикатор, который строит 3 дневных предыдущих максимума и минимума, не могли бы вы мне помочь? спасибо заранее![](https://c.mql5.com/forextsd/smiles/smile.png)
//+------------------------------------------------------------------+
//| Copyright © 2008, ledxep |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, ledzep"
#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
//---- input parameters
double DayHigh,DayLow,DayHigh1,DayLow1;
int ObjectIdx;
int DayIdx;
int k;
string ObjName;
datetime StartTime;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll();
return(0);
}
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
int start()
{
static bool first=true;
int i,counted_bars=IndicatorCounted();
double BarHour,BarMinute;
int WeekDay;
if(Bars<3) return(0);
i=Bars-3;
if(counted_bars==0 || first)
{
first=false;
while(i>=0)
{
TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);
TrendLine(StartTime,DayLow1,Time,DayLow1,Red);
if(High > DayHigh) DayHigh = High;
if(Low < DayLow) DayLow = Low;
if(TimeDay(Time) != TimeDay(Time))
{
DayHigh1=DayHigh;
DayLow1=DayLow;
DayHigh=Open;
DayLow=Open;
StartTime=Time;
}
i--;
}//while close
}
return(0);
}//start close
//+------------------------------------------------------------------+
void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)
{
ObjectIdx++;
ObjName="Line" + DoubleToStr(ObjectIdx,0);
ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);
ObjectSet(ObjName,OBJPROP_COLOR,col);
ObjectSet(ObjName,OBJPROP_RAY,0);
}
Младен, у меня есть индикатор, который строит линию для максимума и минимума предыдущего дня... но мне нужен такой же индикатор, который строит 3 дневных предыдущих максимума и минимума, не могли бы вы мне помочь? Спасибо заранее
//+------------------------------------------------------------------+
//| Copyright © 2008, ledxep |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, ledzep"
#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
//---- input parameters
double DayHigh,DayLow,DayHigh1,DayLow1;
int ObjectIdx;
int DayIdx;
int k;
string ObjName;
datetime StartTime;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll();
return(0);
}
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
int start()
{
static bool first=true;
int i,counted_bars=IndicatorCounted();
double BarHour,BarMinute;
int WeekDay;
if(Bars<3) return(0);
i=Bars-3;
if(counted_bars==0 || first)
{
first=false;
while(i>=0)
{
TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);
TrendLine(StartTime,DayLow1,Time,DayLow1,Red);
if(High > DayHigh) DayHigh = High;
if(Low < DayLow) DayLow = Low;
if(TimeDay(Time) != TimeDay(Time))
{
DayHigh1=DayHigh;
DayLow1=DayLow;
DayHigh=Open;
DayLow=Open;
StartTime=Time;
}
i--;
}//while close
}
return(0);
}//start close
//+------------------------------------------------------------------+
void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)
{
ObjectIdx++;
ObjName="Line" + DoubleToStr(ObjectIdx,0);
ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);
ObjectSet(ObjName,OBJPROP_COLOR,col);
ObjectSet(ObjName,OBJPROP_RAY,0);
}
Боюсь, я не понимаю.
Этот индикатор строит максимум и минимум предыдущего дня за всю историю (столько дней, сколько есть на графике). Что именно означает "рисует 3 дневных предыдущих максимума и минимума"?
Боюсь, я не понимаю, что индикатор рисует максимум и минимум предыдущего дня за всю историю (столько дней, сколько есть на графике). Что именно означает "рисует 3 дневных предыдущих максимума и минимума"?
Позвольте мне объяснить, я хочу, чтобы индикатор рисовал каждый день максимумы и минимумы предыдущих 3 дней.
Позвольте мне объяснить, я хочу, чтобы индикатор рисовал каждый день максимумы и минимумы за предыдущие 3 дня.
Попробуйте что-то вроде этого (здесь используются не объекты, а буферы, и вы можете установить количество дней, которые вы хотите использовать для максимума и минимума).
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
extern int DaysForHighLow = 3;
double buffh[];
double buffl[];
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int init()
{
SetIndexBuffer(0,buffh);
SetIndexBuffer(1,buffl);
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,PERIOD_D1,Time);
buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));
buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));
}
return(0);
}Попробуйте сделать что-то вроде этого (здесь используются не объекты, а буферы, и вы можете установить количество дней, которые вы хотите использовать для максимального максимума и минимального минимума)
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
extern int DaysForHighLow = 3;
double buffh[];
double buffl[];
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int init()
{
SetIndexBuffer(0,buffh);
SetIndexBuffer(1,buffl);
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,PERIOD_D1,Time);
buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));
buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));
}
return(0);
}спасибо mladen, извините за плохое объяснение...я имел ввиду максимум и минимум за каждые 3 дня предыдущих...например PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] и тоже самое для минимума....
спасибо mladen, извините за плохое объяснение...я имел ввиду максимум и минимум за каждые 3 предыдущих дня...например PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] и тоже самое для минимума....
Его проще найти, чем предыдущий (меньше вызовов функций ).
Вы можете сделать это следующим образом:
#property indicator_buffers 6
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_color3 LimeGreen
#property indicator_color4 Red
#property indicator_color5 LimeGreen
#property indicator_color6 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_style5 STYLE_DOT
#property indicator_style6 STYLE_DOT
double buffh1[];
double buffl1[];
double buffh2[];
double buffl2[];
double buffh3[];
double buffl3[];
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int init()
{
SetIndexBuffer(0,buffh1);
SetIndexBuffer(1,buffl1);
SetIndexBuffer(2,buffh2);
SetIndexBuffer(3,buffl2);
SetIndexBuffer(4,buffh3);
SetIndexBuffer(5,buffl3);
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,PERIOD_D1,Time);
buffh1 = iHigh(NULL,PERIOD_D1,y+1);
buffl1 = iLow(NULL,PERIOD_D1,y+1);
buffh2 = iHigh(NULL,PERIOD_D1,y+2);
buffl2 = iLow(NULL,PERIOD_D1,y+2);
buffh3 = iHigh(NULL,PERIOD_D1,y+3);
buffl3 = iLow(NULL,PERIOD_D1,y+3);
}
return(0);
}PS: самая толстая линия - 1 день назад, более тонкая - 2 дня назад, пунктирная - 3 дня назад.
Помогите с кодированием pls...........
Здравствуйте все эксперты здесь, может ли кто-нибудь помочь мне закодировать простой советник, который будет автоматически изменять TP последнего рабочего ордера так же, как текущий только что открытый ордер? Допустим, у меня есть 1 или более рабочих ордеров и несколько отложенных ордеров, когда отложенный ордер становится рабочим ордером, я надеюсь, что советник будет автоматически изменять TP (целевую цену) предыдущего рабочего ордера на текущий только что активный ордер. спасибо .....
Coding help pls........... привет всем экспертам здесь, может ли кто-нибудь помочь мне закодировать простой советник, который будет автоматически изменять TP последнего рабочего ордера так же, как текущий ордер только что открыт? Допустим, у меня есть 1 или более рабочих ордеров и несколько отложенных ордеров, когда отложенный ордер становится рабочим ордером, я надеюсь, что советник будет автоматически изменять TP (целевую цену) предыдущего рабочего ордера на текущий только что активный ордер... спасибо ....
Почему бы вам просто не использовать обычный трейлинг-стоп для всех ордеров? Таким образом, они будут выровнены в конечном итоге (если у вас несколько ордеров) без необходимости открывать новый ордер.
Привет, Младен,
если я хочу считать бары между двумя минимумами, как я могу избежать бара воскресенья 23.00 вечера до 00.00?
потому что на 4h графике есть этот бар и длится он только один час..... и он появляется также на дневном графике.
заранее спасибо