Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо вам большое! Вы такие хорошие!
Здравствуйте,
Кто-нибудь знает индикатор, который строил бы на графике только точку свинга, как описано ниже (как в Pipware Dashboard):
Fractal Breakout Strategy
Как было сказано ранее, ценовое действие движется волнами. Направление тренда (вверх или вниз) определяется последовательными максимумами и минимумами.
Восходящий тренд - это когда волны достигают более высоких максимумов и более высоких минимумов.
Нисходящий тренд - это когда волны опускаются ниже минимумов и ниже максимумов.
Поскольку фракталы - это максимумы и минимумы, их можно использовать для определения направления тренда.
Рассмотрим график GU H4 (справа). До точки А тренд восходящий, т.е. второй фрактал минимума выше первого... второй фрактал максимума выше первого.
В точке А сформировался новый фрактал минимума, который выше двух предыдущих фракталов минимума (продолжение восходящего тренда). Свеча сразу после точки А сформировала новый фрактал максимума. Этот фрактал ниже, чем предыдущий фрактал максимума, что указывает на возможное изменение направления тренда. Свеча под точкой B "пробивает" фрактальный уровень точки A (зеленая линия). Рисуется красная стрелка, указывающая на то, что направление тренда изменилось на DOWN.
Стрелки могут быть отображены с помощью параметра ArrowsOn=true. Примечание: стрелки рисуются только тогда, когда фрактальный разрыв меняет направление тренда. Например, после точки B нижние фракталы продолжают ломаться (еще 2 раза).
После точки B тренд считается НИЗКИМ, пока не будет пробит высокий фрактал. Непосредственно перед точкой C формируется более высокий нижний фрактал. Направление тренда по-прежнему считается ВНИЗ... высокий фрактал еще не пробит.
В точке E пробивается высокий фрактал точки C. Несмотря на то, что это небольшой пробой, в точке D рисуется зеленая стрелка, указывающая на изменение направления тренда. Тренд теперь считается восходящим до следующего пробоя низкого фрактала.
Большое спасибо за помощь.
Всего наилучшего,
Gringoh
Спасибо Младен, это идеально!!! Если я хочу добавить еще одну строку к индикатору, как мне изменить код? Спасибо заранее....
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
double UpperBuf[];
double UpperBuf1[];
double UpperBufb[];
double UpperBuf1b[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
IndicatorBuffers(4);
SetIndexBuffer(0, UpperBuf1);
SetIndexBuffer(1, UpperBuf1b);
SetIndexBuffer(2, UpperBuf);
SetIndexBuffer(3, UpperBufb);
}
void deinit() {}
void start()
{
int counted = IndicatorCounted();
if(counted < 0) return (-1);
if(counted > 0) counted--;
int limit = Bars - counted;
for(int i = 0; i < limit; i++)
if (Close!=0)
UpperBuf= ((High/Close)-34)*Volume;
else UpperBuf= 0;
for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);
for( i = 0; i < limit; i++)
if (Close!=0)
UpperBufb= ((High/Close)-34)*Volume;
else UpperBufb= 0;
for( i = 0; i < limit; i++) UpperBuf1b= iMAOnArray(UpperBufb,0,33,0,MODE_EMA,i);
}
Спасибо Младен, это идеально!!! Если я хочу добавить еще одну линию к индикатору, как мне изменить код? Спасибо заранее....
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
double UpperBuf[];
double UpperBuf1[];
double UpperBufb[];
double UpperBuf1b[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
IndicatorBuffers(4);
SetIndexBuffer(0, UpperBuf1);
SetIndexBuffer(1, UpperBuf1b);
SetIndexBuffer(2, UpperBuf);
SetIndexBuffer(3, UpperBufb);
}
void deinit() {}
void start()
{
int counted = IndicatorCounted();
if(counted < 0) return (-1);
if(counted > 0) counted--;
int limit = Bars - counted;
for(int i = 0; i < limit; i++)
if (Close!=0)
UpperBuf= ((High/Close)-34)*Volume;
else UpperBuf= 0;
for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);
for( i = 0; i < limit; i++)
if (Close!=0)
UpperBufb= ((High/Close)-34)*Volume;
else UpperBufb= 0;
for( i = 0; i < limit; i++) UpperBuf1b= iMAOnArray(UpperBufb,0,33,0,MODE_EMA,i);
}
k3rn3l
Вы уже сделали это (на индикаторе 2 линии). Если вы хотите еще одну (чтобы было 3), просто сделайте то же самое, что и для второй линии.
уважаемые разработчики,
я нашел этот индикатор METASTOCK очень хорошим, не могли бы вы сделать его для mt4?
x:=Input("Consecutive Lower Closes - Entry",
0,21,5);
y:=Input("Последовательные более высокие закрытия - выход",
0,21,5);
delay:=Input("Entry and Exit delay",0,5,0);
plot:=Input("сигналы: [1]Чистые, [2]Все",
1,2,2);
In:=Sum(C<Ref(C,-1),x)=x;
Out:=Sum(C>Ref(C,-1),y)=y;
Init:=Cum(In+Out>-1)=1;
InInit:=Cum(In)=1;
flag:=BarsSince(Init OR In)
<BarsSince(Init OR Out)+InInInit;
сигналы:=(InInit AND Alert(InInit=0,2)
OR flag AND Alert(flag=0,2))
-(flag=0 AND Alert(flag,2));
0;Ref(If(plot=1,signals,In-Out),-delay)
уважаемые кодеры,
я нашел этот индикатор METASTOCK очень хорошим, не могли бы вы сделать его для mt4?
x:=Input("Consecutive Lower Closes - Entry",
0,21,5);
y:=Input("Последовательные более высокие закрытия - выход",
0,21,5);
delay:=Input("Entry and Exit delay",0,5,0);
plot:=Input("сигналы: [1]Чистые, [2]Все",
1,2,2);
In:=Sum(C<Ref(C,-1),x)=x;
Out:=Sum(C>Ref(C,-1),y)=y;
Init:=Cum(In+Out>-1)=1;
InInit:=Cum(In)=1;
flag:=BarsSince(Init OR In)
<BarsSince(Init OR Out)+InInInit;
сигналы:=(InInit AND Alert(InInit=0,2)
OR flag AND Alert(flag=0,2))
-(flag=0 AND Alert(flag,2));
0;Ref(If(plot=1,signals,In-Out),-delay)debashis
Как называется этот индикатор?
гуру
она называется "базовая система паттернов". http://www.metastocktools.com/MetaStock/Pattern01.txt
Привет, malden, спасибо за помощь с ASCTrend. Я хотел бы узнать, не могли бы вы помочь мне сделать ea для этого индикатора. Есть еще один индикатор под названием MaonMa. (Я прикреплю их) Я думаю, что когда ASCTrend стреляет вверх И бар находится выше желтой линии (60 MA), ставьте длинную сделку, стоп-лосс будет предыдущим минимумом, аналогично, когда ASCTrend стреляет вниз И бар находится под желтой линией (60 MA), ставьте короткую сделку, стоп-лосс будет предыдущим максимумом. Спасибо.
Здравствуйте, Младен,
Мне снова нужна ваша помощь. я установил следующий код для стрелочного индикатора, но он замораживает ПК. если это предотвратит отставание, можете ли вы написать код снова, используя оригинальные коды rsi, cci и cmo в индикаторе без функции icustom.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Crimson
#property indicator_color2 RoyalBlue
//---- входные параметры
extern int barsToProcess=100;
//---- буферы
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),
предел;
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars;
if(limit>barsToProcess)
limit=barsToProcess;
for(int i=0;i<limit;i++)
{
double rsi=iCustom(NULL,0, "rsi",barsToProcess,0,i);
double cci=iCustom(NULL,0, "cci",barsToProcess,0,i);
double cmo=iCustom(NULL,0, "cmo",barsToProcess,0,i);
if(rsi>60.0 && cci>150.0&&cmo>30.0)
ExtMapBuffer1=High+5*Point;
else
ExtMapBuffer1=0.0;
if(rsi<10.0 && cci<-150.0&&cmo<-30.0)
ExtMapBuffer2=Low-5*Point;
else
ExtMapBuffer2=0.0;
}
return(0);
}
Здравствуйте, Младен,
мне снова нужна ваша помощь. я установил следующий код для стрелочного индикатора, но он замораживает компьютер. если это предотвратит отставание, можете ли вы написать код снова, используя оригинальные коды rsi, cci и cmo в индикаторе без функции icustom.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Crimson
#property indicator_color2 RoyalBlue
//---- входные параметры
extern int barsToProcess=100;
//---- буферы
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),
предел;
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars;
if(limit>barsToProcess)
limit=barsToProcess;
for(int i=0;i<limit;i++)
{
double rsi=iCustom(NULL,0, "rsi",barsToProcess,0,i);
double cci=iCustom(NULL,0, "cci",barsToProcess,0,i);
double cmo=iCustom(NULL,0, "cmo",barsToProcess,0,i);
if(rsi>60.0 && cci>150.0&&cmo>30.0)
ExtMapBuffer1=High+5*Point;
else
ExtMapBuffer1=0.0;
if(rsi<10.0 && cci<-150.0&&cmo<-30.0)
ExtMapBuffer2=Low-5*Point;
else
ExtMapBuffer2=0.0;
}
return(0);
}Вместо использования iCustom() для rsi и cci используйте встроенные функции.
Параметры, необходимые для RSI :
[/TR] [/TR]
[/TABLE]
Параметры, необходимые для CCI :
[TABLE="class:docvar"]
[TR]
[TD]doubleА для CMO первый параметр - LastBarOnly, а второй - CMO_Range, поэтому вызов iCustom() должен быть примерно таким :
iCustom(NULL,0, "cmo",false,CMORange,0,i);
где CMORange будет некоторым параметром