Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я ищу решение для применения алгоритмики индикаторов на массиве цен.
В MQL4 некоторые индикаторы имеют такую функцию, например: iCCIOnArray, iBandsOnArray....
Но у таких индикаторов, как ADX, такой функции нет.
У кого-нибудь есть идея, как я могу применить расчет индикатора над заранее определенным массивом (не с сервера котировок)?[lang=pl]Если знать, как калибруется данный индикатор, то можно сделать все:)
Пожалуйста, объясните более точно, что именно вам нужно.
Будьте здоровы,
Grzesiek[/lang]
...
ADX использует то, что называетсяatrue range(Max(High,PreviousClose)-Min(Low,PreviousClose) и это основа расчета ADX.
Из-за требуемых значений High, Low и Close он не может быть применен к массиву, В общем, если вы видите, что требуется цена, то индикатор должен быть применим к массиву. Если параметра цены нет, то почти наверняка он не может быть применен к массиву (предполагая, что индикатор в первую очередь оперирует ценами).
[lang=pl]Если вы знаете, как калибруется данный индикатор, вы можете сделать все:)
Пожалуйста, объясните более точно, что именно вам нужно.
Ваше здоровье,
Grzesiek[/lang]Спасибо, Гжешек.
Я искал хорошее решение. В конце концов, лучшее решение - это встроить код indi в код эксперта.
В любом случае, если никто не покажет мне другой способ, я буду применять его таким образом.
Есть ли у вас исходный файл? Файл *.ex4 скомпилирован, поэтому у вас нет доступа к исходному коду.
С уважением,
запрос
star821
Попробуйте вот это
________________________
Некоторые пояснения : Я не использовал те, которые вы выложили, а сделал эти (индикатор, прикрепленный в вашем посте, имеет мое имя, но эта версия сделана не мной, но это не единственная причина, по которой я не использовал этот индикатор). ...
с уважением
Младенпривет Младен
возможно ли адаптировать советника stc для HMA цвета nrp-indi и High-low trend indi? ...
Я написал псевдокод (* не умею кодить вообще... *):
************************************************************
внешние данные:
Lot#
период для HMA
???.
.....................
повторить:
получите цвет зигзаг-точки (закрытие бара);
получить цвет тренда HMA (закрытие бара);
----------------------------------------------------------------
// открываем продажу
если последняя точка зигзага = синяя && HMA тренд = красный -> открываем тикет SELL (только один раз для каждого цвета HMA тренда)
если не удалось открыть продажу -> повторите попытку 3 раза
если нет успеха, предупреждение и письмо: не удалось открыть продажу для символа, ТФ, времени;
else
// открываем покупку
если последняя точка зигзага = красная && HMA тренд = синий -> открываем тикет BUY (только один раз на цвет HMA тренда)
если не удалось открыть покупку -> повторите попытку 3 раза
если нет успеха, предупреждение и письмо: не удалось открыть покупку для символа, ТФ, времени;
-------------------------------------------------------------------
если HMA тренд (красный) меняется на синий -> закрываем продажу, ждем 10 сек. ;
если HMA тренд (синий) меняется на красный -> закрываем покупку, ждем 10 сек;
-------------------------------------------------------------------
закрытие всех сделок в пятницу в 12:00 часов утра (GMT)...
****************************************************************
Я знаю, что будут некоторые потери, но меня это не беспокоит...
мне не нужны никакие SL...
с уважением
Кадо
hma_color_nrp.ex4high_-_low_trend.mq4
ATR + MA & Bandwidth + MA
[lang=it]Здравствуйте, мне нужен пользовательский индикатор, который в отдельном окне вычисляет ATR и скользящую среднюю, и то же самое для полосы пропускания. Я сделал код в mql4 и использовал IMAONARRAY для расчета MA, но индикатор не работает... кто-нибудь может мне помочь?
Это один из кодов teo.
Спасибо
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int AtrPeriod=14;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
double MaBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 1 additional buffer used for counting.
IndicatorBuffers(2);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,AtrBuffer);
SetIndexBuffer(1,TempBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,MaBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="ATR("+AtrPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AtrPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=AtrPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high=High;
double low =Low;
if(i==Bars-1) TempBuffer=high-low;
else
{
double prevclose=Close;
TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);
}
i--;
}
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(i=0; i<limit; i++)
AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
double MyArray[];
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize( MyArray, limit);
ArraySetAsSeries(MyArray,true);
for(i=0; i<limit; i++)
{
MyArray = AtrBuffer;
}
for(i=0; i<limit; i++)
{
MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);
}
//----
return(0);
}
//+------------------------------------------------------------------+[/lang]
...
Попробуйте прямо сейчас
[lang=it]Здравствуйте, мне нужен пользовательский индикатор, который в отдельном окне пишет atr, рассчитывает скользящую среднюю и то же самое для полосы пропускания. Я сделал код в mql4 и использовал IMAONARRAY для расчета MA, но индикатор не работает... кто-нибудь может мне помочь?
Это один из кодов Teo...
Спасибо
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int AtrPeriod=14;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
double MaBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 1 additional buffer used for counting.
IndicatorBuffers(2);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,AtrBuffer);
SetIndexBuffer(1,TempBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,MaBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="ATR("+AtrPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AtrPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=AtrPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high=High;
double low =Low;
if(i==Bars-1) TempBuffer=high-low;
else
{
double prevclose=Close;
TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);
}
i--;
}
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(i=0; i<limit; i++)
AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
double MyArray[];
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize( MyArray, limit);
ArraySetAsSeries(MyArray,true);
for(i=0; i<limit; i++)
{
MyArray = AtrBuffer;
}
for(i=0; i<limit; i++)
{
MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);
}
//----
return(0);
}
//+------------------------------------------------------------------+[lang=tr]Здравствуйте, может ли кто-нибудь помочь мне построить эту формулу в коде метатрейдера?
(это в метатрейдере формула:)
Q1:=Input("PERIOD",1,1000,3);
Q2:=Input("PERIOD",0.001,100,1);
Q3:=Q2/100;
Q4:=Mov( Typical(),Q1,E) ;
Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Q5
[/lang]
...
Интересно.
Единственное, что вам нужно настроить для разных таймфреймов - это процент. 1% кажется хорошим выбором для 4-часового графика, но вот пример 15-минутного графика с 0,5% вместо 1% по умолчанию.
PS: Я понятия не имею, как он назывался изначально, поэтому назвал его так, как есть.
с уважением
mladen
[lang=tr]Здравствуйте, может ли кто-нибудь помочь мне построить эту формулу в коде metatrader?
(это в формуле метастока:)
Q1:=Input("PERIOD",1,1000,3);
Q2:=Input("PERIOD",0.001,100,1);
Q3:=Q2/100;
Q4:=Mov( Typical(),Q1,E) ;
Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Q5
[/lang]Интересно
Единственное, что вам нужно настроить для разных временных рамок, - это процент. 1% кажется хорошим выбором для 4-часового графика, но вот пример 15-минутного графика с 0,5% вместо 1% по умолчанию
PS: Я понятия не имею, как она называлась изначально, поэтому назвал ее так, как есть
с уважением
mladen[lang=tr]спасибо mladen я попробую это, я думаю это сработает [/lang].