![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Этой бедной душе нужна твоя помощь
Хорошо. Я добавил обратно часть с условиями закрытия (прилагается). Ошибки, которые появляются при компиляции оригинала, совпадают с моими корректировками. Теперь вернемся к первоначальным вопросам: удалось ли мне написать код таким образом, чтобы выполнить условия, которые я поставил, когда я впервые написал, когда я начал свой запрос по этому вопросу. А именно: покупать на RSI 6 Stoch 16.3.3 EMA 5 выше уровня ema50 выше 70 и продавать, когда
rsi 6 stoch16.3.3 ema5below ema50 level below 30. Также не могли бы вы интерпретировать условия закрытия для меня. Что я сделал, чтобы исправить файл, я открыл файлы в мета-редакторе, а затем сделал так, чтобы на экране отображался с одной стороны один файл и другой файл, в виде плитки, рядом с ним и просто переходил строка за строкой, чтобы увидеть, какие строки отсутствуют или отличаются. Я не умею кодировать, но я могу попытаться расшифровать то, что кто-то сделал, и по здравому размышлению изменить кое-что или два. Вы - звезда Младен.
Хорошо. Я добавил обратно часть условий закрытия (прилагается). Ошибки, которые появляются при компиляции оригинала, такие же, как и в моем варианте. Теперь вернемся к первоначальным вопросам: удалось ли мне написать код таким образом, чтобы выполнить условия, которые я поставил, когда я впервые написал, когда я начал свой запрос на это. Это покупка на RSI 6 Stoch 16.3.3 EMA 5 выше уровня ema50 выше 70 и продажа, когда RSI 6 stoch16.3.3 ema5below ema50 level below 30. Также не могли бы вы интерпретировать условия закрытия для меня. Что я сделал, чтобы исправить файл, я открыл файлы в мета-редакторе, а затем сделал экран, чтобы показать одну сторону одного файла и другой файл, в плиточной моде, рядом с ним и просто пошел строка за строкой, чтобы увидеть, какие строки отсутствуют или отличаются. Я не умею кодировать, но я могу попытаться расшифровать то, что кто-то сделал, и по здравому размышлению изменить кое-что или два. Вы - звезда Младен.
candyman752
Протестируйте советника. Это предупреждения компилятора, а не ошибки. Независимо от этих предупреждений советник должен работать.
candyman752 Протестируйте советник. Это предупреждения компилятора, а не ошибки. Независимо от этих предупреждений советник должен работать
Я так понимаю, ваше молчание о подтверждении является подтверждением того, что мне удалось закодировать его для выполнения следующих действий:RSI 6 stoch 16-3-3 / 5EMA 50EMA.уровень перекупленности 70 уровень перепроданности 30. Он должен покупать, когда 5ema движется выше 50 ema и rsi и stoch выше 70 и должен продавать, когда 5 ema ниже 50ema и rsi и stoch ниже 30.
Здравствуйте, madlen, позвольте мне сформулировать мою просьбу по-другому
в оригинальном советнике условия для покупки или продажи были следующими
if(EMA5aEMA10&&RSI1>RSILevel&&STOS<STOM&&STOS<Overbought&&STOM<Overbought)SBUY="true";
if(EMA5a>EMA10a&&EMA5<EMA10&&RSI1STOM&&STOS>Oversold&&STOM>Oversold)SSEL="true";
Затем я изменил код следующим образом:
if(EMA5aEMA50&&RSI1>RSILevelb&&STOSOverbought&&STOM>Overbought)SBUY="true";
if(EMA5a>EMA50a&&EMA5<EMA50&&RSI1STOM&&STOS<Oversold&&STOM<Oversold)SSEL="true";
RSI levelb=70 RSI levels=30 перекупленность=70 перепроданность=30.
Соответствует ли изменение, которое я внес в код, условиям, которые я указал ранее. покупка, когда 5ema выше 5ema rsi выше 70 stochastic выше 70 и наоборот.
Я так понимаю, ваше молчание о подтверждении является подтверждением того, что мне удалось закодировать его, чтобы сделать следующее:RSI 6 stoch 16-3-3 / 5EMA 50EMA.уровень перекупленности 70 уровень перепроданности 30. Он должен покупать, когда 5ema движется выше 50 ema и rsi и stoch выше 70 и должен продавать, когда 5 ema ниже 50ema и rsi и stoch ниже 30.
candyman752
Я сказал, что список, который компилятор показывает после компиляции, содержит только предупреждения, которые не влияют на выполнение советника (любого советника). Я не проверял логику и не тестировал советника. Поэтому я сказал, что вы должны его протестировать.
Что касается кода, то он будет работать. Это зависит от вашей работы, чтобы точно настроить его и отрегулировать там, где это необходимо.
удачного кодирования![](https://c.mql5.com/forextsd/smiles/smile.png)
Кодеры,
У меня возникли некоторые проблемы со следующим кодом.
В качестве фильтра я давно использую 2 индикатора. Они отображают тренд в виде гистограммы во втором окне.
Я попытался создать третий индикатор, который объединяет оба индикатора в одну гистограмму.
К сожалению, это не работает, я вызываю оба индикатора с помощью функции iCustom и использую правильный буфер. Но гистограмма остается пустой.
Чтобы найти проблему, я заменил функцию iCustom на функцию iMA. В этот момент код работал, и гистограмма показывала правильные цвета
. Значит, это как-то связано с функциями iCustom или операторами if.
Надеюсь, кто-нибудь сможет мне помочь.
Заранее спасибо
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_width1 3
#property indicator_width2 3
#property indicator_minimum 0
#property indicator_maximum 1
double Groen[];
double Rood[];
double zibo1g[],zibo1r[],zibo2g[],zibo2r[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0,Groen);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexLabel(0,"Groen");
SetIndexBuffer(1,Rood);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1,"Rood");
IndicatorShortName("Zibo Combo");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
double dResult = 1;
for(int i=0; i<limit; i++){
zibo1g=iCustom(NULL,0,"zibo1",0,i); //green histogram
zibo1r=iCustom(NULL,0,"zibo1",1,i); //red histogram
zibo2g=iCustom(NULL,0,"zibo2",0,i); //green histogram
zibo2r=iCustom(NULL,0,"zibo2",1,i); //red histogram
if(zibo1g != EMPTY_VALUE && zibo2g != EMPTY_VALUE)
Groen = dResult;
else if(zibo1r != EMPTY_VALUE && zibo2r != EMPTY_VALUE)
Rood = dResult;
}
return(rates_total);
}m1-red.mq4
Привет всем. Мне нужна помощь в исправлении этого индикатора... на практике нужно добавить (20-периодную MA) с той же функцией, что и существующий, и устранить цветовые коробки, не используемые
Я всегда прошу прощения за мой плохой английский.![](https://c.mql5.com/forextsd/smiles/sad_smile.png)
Кодеры,
У меня возникли некоторые проблемы со следующим кодом.
В качестве фильтра я давно использую 2 индикатора. Они отображают тренд в виде гистограммы во втором окне.
Я попытался создать третий индикатор, который объединяет оба индикатора в одну гистограмму.
К сожалению, это не работает, я вызываю оба индикатора с помощью функции iCustom и использую правильный буфер. Но гистограмма остается пустой.
Чтобы найти проблему, я заменил функцию iCustom на функцию iMA. В этот момент код работал, и гистограмма показывала правильные цвета
. Значит, это как-то связано с функциями iCustom или операторами if.
Надеюсь, кто-нибудь сможет мне помочь.
Заранее спасибо
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_width1 3
#property indicator_width2 3
#property indicator_minimum 0
#property indicator_maximum 1
double Groen[];
double Rood[];
double zibo1g[],zibo1r[],zibo2g[],zibo2r[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0,Groen);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexLabel(0,"Groen");
SetIndexBuffer(1,Rood);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1,"Rood");
IndicatorShortName("Zibo Combo");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
double dResult = 1;
for(int i=0; i<limit; i++){
zibo1g=iCustom(NULL,0,"zibo1",0,i); //green histogram
zibo1r=iCustom(NULL,0,"zibo1",1,i); //red histogram
zibo2g=iCustom(NULL,0,"zibo2",0,i); //green histogram
zibo2r=iCustom(NULL,0,"zibo2",1,i); //red histogram
if(zibo1g != EMPTY_VALUE && zibo2g != EMPTY_VALUE)
Groen = dResult;
else if(zibo1r != EMPTY_VALUE && zibo2r != EMPTY_VALUE)
Rood = dResult;
}
return(rates_total);
}Ваши массивы zibo1g[], zibo1r[], zibo2g[] и zibo2r[] всегда имеют нулевой размер (они никогда не инициализируются - изменяется размер до элементов столбика).
Лучше всего объявить их как дополнительные буферы, если вы не знаете, как работать с массивами в mql
m1-red.mq4
Привет всем. Мне нужна помощь в исправлении этого индикатора ... на практике нужно добавить (20-периодную MA) с той же функцией, что и существующий, и устранить цветовые коробки, не используемые
Я всегда прошу прощения за мой плохой английскийВ том, что вы прикрепили, нет цветовых рамок. В любом случае попробуйте это: m1-red_1.mq4
Спасибо Младену, что всегда на связи.
В предыдущем сообщении я хотел спросить, можно ли добавить еще одну МА на 20 периодов с той же формулой?