Помощь в кодировании - страница 504

 
candyman752:
Этой бедной душе нужна твоя помощь

Хорошо. Я добавил обратно часть с условиями закрытия (прилагается). Ошибки, которые появляются при компиляции оригинала, совпадают с моими корректировками. Теперь вернемся к первоначальным вопросам: удалось ли мне написать код таким образом, чтобы выполнить условия, которые я поставил, когда я впервые написал, когда я начал свой запрос по этому вопросу. А именно: покупать на RSI 6 Stoch 16.3.3 EMA 5 выше уровня ema50 выше 70 и продавать, когда

rsi 6 stoch16.3.3 ema5below ema50 level below 30. Также не могли бы вы интерпретировать условия закрытия для меня. Что я сделал, чтобы исправить файл, я открыл файлы в мета-редакторе, а затем сделал так, чтобы на экране отображался с одной стороны один файл и другой файл, в виде плитки, рядом с ним и просто переходил строка за строкой, чтобы увидеть, какие строки отсутствуют или отличаются. Я не умею кодировать, но я могу попытаться расшифровать то, что кто-то сделал, и по здравому размышлению изменить кое-что или два. Вы - звезда Младен.

Файлы:
 
candyman752:
Хорошо. Я добавил обратно часть условий закрытия (прилагается). Ошибки, которые появляются при компиляции оригинала, такие же, как и в моем варианте. Теперь вернемся к первоначальным вопросам: удалось ли мне написать код таким образом, чтобы выполнить условия, которые я поставил, когда я впервые написал, когда я начал свой запрос на это. Это покупка на RSI 6 Stoch 16.3.3 EMA 5 выше уровня ema50 выше 70 и продажа, когда RSI 6 stoch16.3.3 ema5below ema50 level below 30. Также не могли бы вы интерпретировать условия закрытия для меня. Что я сделал, чтобы исправить файл, я открыл файлы в мета-редакторе, а затем сделал экран, чтобы показать одну сторону одного файла и другой файл, в плиточной моде, рядом с ним и просто пошел строка за строкой, чтобы увидеть, какие строки отсутствуют или отличаются. Я не умею кодировать, но я могу попытаться расшифровать то, что кто-то сделал, и по здравому размышлению изменить кое-что или два. Вы - звезда Младен.

candyman752

Протестируйте советника. Это предупреждения компилятора, а не ошибки. Независимо от этих предупреждений советник должен работать.

 
mladen:
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 и наоборот.

 
candyman752:
Я так понимаю, ваше молчание о подтверждении является подтверждением того, что мне удалось закодировать его, чтобы сделать следующее:RSI 6 stoch 16-3-3 / 5EMA 50EMA.уровень перекупленности 70 уровень перепроданности 30. Он должен покупать, когда 5ema движется выше 50 ema и rsi и stoch выше 70 и должен продавать, когда 5 ema ниже 50ema и rsi и stoch ниже 30.

candyman752

Я сказал, что список, который компилятор показывает после компиляции, содержит только предупреждения, которые не влияют на выполнение советника (любого советника). Я не проверял логику и не тестировал советника. Поэтому я сказал, что вы должны его протестировать.

Что касается кода, то он будет работать. Это зависит от вашей работы, чтобы точно настроить его и отрегулировать там, где это необходимо.

удачного кодирования

 

Кодеры,

У меня возникли некоторые проблемы со следующим кодом.

В качестве фильтра я давно использую 2 индикатора. Они отображают тренд в виде гистограммы во втором окне.

Я попытался создать третий индикатор, который объединяет оба индикатора в одну гистограмму.

К сожалению, это не работает, я вызываю оба индикатора с помощью функции iCustom и использую правильный буфер. Но гистограмма остается пустой.

Чтобы найти проблему, я заменил функцию iCustom на функцию iMA. В этот момент код работал, и гистограмма показывала правильные цвета . Значит, это как-то связано с функциями iCustom или операторами if.

Надеюсь, кто-нибудь сможет мне помочь.

Заранее спасибо

#property copyright ""#property link ""

#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) с той же функцией, что и существующий, и устранить цветовые коробки, не используемые

Я всегда прошу прощения за мой плохой английский.

Файлы:
m1-red.mq4  3 kb
 
xtractalpha:
Кодеры,

У меня возникли некоторые проблемы со следующим кодом.

В качестве фильтра я давно использую 2 индикатора. Они отображают тренд в виде гистограммы во втором окне.

Я попытался создать третий индикатор, который объединяет оба индикатора в одну гистограмму.

К сожалению, это не работает, я вызываю оба индикатора с помощью функции iCustom и использую правильный буфер. Но гистограмма остается пустой.

Чтобы найти проблему, я заменил функцию iCustom на функцию iMA. В этот момент код работал, и гистограмма показывала правильные цвета . Значит, это как-то связано с функциями iCustom или операторами if.

Надеюсь, кто-нибудь сможет мне помочь.

Заранее спасибо

#property copyright ""#property link ""

#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

 
morenokosta:
m1-red.mq4

Привет всем. Мне нужна помощь в исправлении этого индикатора ... на практике нужно добавить (20-периодную MA) с той же функцией, что и существующий, и устранить цветовые коробки, не используемые

Я всегда прошу прощения за мой плохой английский

В том, что вы прикрепили, нет цветовых рамок. В любом случае попробуйте это: m1-red_1.mq4

Файлы:
m1-red_1.mq4  3 kb
 

Спасибо Младену, что всегда на связи.

В предыдущем сообщении я хотел спросить, можно ли добавить еще одну МА на 20 периодов с той же формулой?