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

 

Привет! Помогите с индикатором ,не показывает пеленг и выдает ошибки . Спасибо .

Файлы:
 
CaptureBeta:
Здравствуйте, проверьте, работает ли прикрепленный файл для вас. Я модифицировал код индикатора и проверил его в торговой платформе моего брокера (Alpari). Он не показывает никаких ошибок после компиляции. Я изменил название индикатора (добавив слово "новый" в скобках), чтобы избежать путаницы.

Здравствуйте,

Прежде всего, спасибо за вашу помощь.

пожалуйста, не могли бы вы приложить скрин вашего входа, чтобы увидеть Pentagon на, например, 1H графике eurusd?

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

Carbon

 
mladen:

Большой Бе

Проверю, что происходит на моем терминале.

Младен,

Как идут дела?

Это действительно важно для нас. (Я и те, кому нужна моя HeatMap).

Big Be

 

Привет,

Я новичок в mql4 и кодировании в целом, поэтому не мог бы кто-нибудь из экспертов помочь мне со следующими двумя дилеммами.

Мне нужно добавить стрелку и предупреждение, когда цена пробивает МА сверху, но она должна перерисовываться, когда цена не закрывается ниже МА, чтобы снова исчезнуть.

Он рисует стрелку и предупреждение для свечи 0, когда цена пробивает МА, но предупреждение не появляется все время, пока бар открыт.

Как я могу сделать так, чтобы он выдавал сигнал только тогда, когда рисуется стрелка, а не при каждом тике.

Я пробовал следующее.

if(i==1 && SoundAlert)Alert(_Symbol, _Period," Sell Alert"); или if(i==0 && SoundAlert)Alert(_Symbol, _Period," Sell Alert"); .... i = 0 в цикле for Но продолжает оповещать с каждым тиком. Тогда мой второй запрос: Я также хотел бы знать, как в примере выше, если цена закрывается выше MA и остается там, но через x баров снова закрывается ниже, чтобы дать мне оповещение. Я хотел бы получить помощь в том, как я могу указать x баров назад, когда цена снова закрылась ниже MA. Я хочу просматривать только 1-4 бара назад, когда цена была выше МА, а затем, когда текущий бар закрылся ниже МА, должен выдать сигнал тревоги. С чего мне начать, на что нужно обратить внимание? Я думаю, что логика должна быть примерно такой: if((Close[i+1] && Close[i+2]&&Close[i+3]) > MA && Close <MA), но вместо этого, как в этой строке с RED, мне нужно иметь возможность выбрать во входных данных, сколько баров назад нужно посмотреть, и он должен настроить эту логику соответствующим образом. т.е.: if(Close[диапазон выбран]>MA && Close<A) Любая помощь и указания будут приняты с благодарностью.

 
bokFX:
Привет,

Я новичок в mql4 и кодировании в целом, поэтому не мог бы кто-нибудь из экспертов помочь мне со следующими двумя дилеммами.

Мне нужно добавить стрелку и предупреждение, когда цена пробивает МА сверху, но она должна перерисовываться, когда цена не закрывается ниже МА, чтобы снова исчезнуть.

Он рисует стрелку и предупреждение для свечи 0, когда цена пробивает МА, но предупреждение не появляется все время, пока бар открыт.

Как я могу сделать так, чтобы он оповещал только тогда, когда рисуется стрелка, а не каждый тик.

Я пробовал следующее.

if(i==1 && SoundAlert)Alert(_Symbol, _Period," Sell Alert"); или if(i==0 && SoundAlert)Alert(_Symbol, _Period," Sell Alert"); .... i = 0 в цикле for Но продолжает предупреждать с каждым тиком. Тогда мой второй запрос: Я также хотел бы знать, как в примере выше, если цена закрывается выше MA и остается там, но через x баров снова закрывается ниже, чтобы дать мне оповещение. Я хотел бы получить помощь в том, как я могу указать x баров назад, когда цена снова закрылась ниже MA. Я хочу просматривать только 1-4 бара назад, когда цена была выше МА, а затем, когда текущий бар закрылся ниже МА, должен выдать сигнал тревоги. С чего мне начать, на что нужно обратить внимание? Я думаю, что логика должна быть примерно такой: if((Close[i+1] && Close[i+2]&&Close[i+3]) > MA && Close <MA), но вместо этого, как в этой строке с RED, мне нужно иметь возможность выбрать во входных данных, сколько баров назад нужно посмотреть, и он должен настроить эту логику соответствующим образом. т.е.: if(Close[диапазон выбран]>MA && Close<A) Любая помощь и указания будут приняты с благодарностью.

Используйте что-то вроде этого:

static datetime lastAlertedAt = 0;

if (Time[0]!=lastAlertedAt)

{

lastAlertedAt = Time[0];

...

остальной код оповещения

}

 

15-11-2015, 22:01

Привет! Помогите с индикатором, не показывает Пеленг и выдает ошибки. Спасибо. Вложения

 

Originally posted by mladen View Post

Big Be

Проверю, что происходит на моем терминале.

Big Be:

Младен,

Как дела?

Это действительно важно для нас. (Я и те, кому нужна моя HeatMap.)

Big Be

Я не мог оставить это без внимания. С помощью множества Comment statements, по одному за раз, и часами играя в детектива, я выяснил источник проблемы.

Оказалось, что с многомерными массивами все в порядке. Я установил размерность массива на количество пар, которые я использовал. Нужно было, чтобы это было количество пар и элементов, доступных брокеру . В первой установке, которую я использовал (сервер Metaquotes), было только 26 пар. Поэтому все работало. Но у других больше. У одного - 285. Массив должен это учитывать.

НОВАЯ ПРОБЛЕМА: каков правильный формат для изменения размера многомерного массива? Я знаю, что можно изменить размер только первого измерения. Но когда я использую это, программа просто останавливается, независимо от того, помещаю ли я это в start() или init(), хотя ArraySize дает правильный размер после изменения размера:

ArrayResize(AlertsFoundII, size);

или

ArrayResize(AlertsFoundII, 285);

Big Be

 

Я попробовал кое-что, по наитию. Если я инициализирую массив без первого значения следующим образом: bool AlertsFoundII[][4][4]; и затем изменяю размер массива позже, используя вычисленное значение (переменную), он работает нормально.

Big Be

 
Big Be:
Originally posted by mladen View Post

Big Be

Проверю, что происходит на моем терминале.

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

Оказалось, что с многомерными массивами все в порядке. Я установил размерность массива на количество пар, которые я использовал. Нужно было, чтобы это было количество пар и элементов, доступных брокеру . В первой установке, которую я использовал (сервер Metaquotes), было только 26 пар. Поэтому все работало. Но у других больше. У одного - 285. Массив должен это учитывать.

НОВАЯ ПРОБЛЕМА: каков правильный формат для изменения размера многомерного массива? Я знаю, что можно изменить размер только первого измерения. Но когда я использую это, программа просто останавливается, независимо от того, помещаю ли я это в start() или init(), хотя ArraySize дает правильный размер после изменения размера:

ArrayResize(AlertsFoundII, size);

или

ArrayResize(AlertsFoundII, 285);

Большой Бе

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

 
bokFX:
Привет,

Я новичок в mql4 и кодировании в целом, поэтому не мог бы кто-нибудь из экспертов помочь мне со следующими двумя дилеммами.

Мне нужно добавить стрелку и предупреждение, когда цена пробивает МА сверху, но она должна перерисовываться, когда цена не закрывается ниже МА, чтобы снова исчезнуть.

Он рисует стрелку и предупреждение для свечи 0, когда цена пробивает МА, но предупреждение не появляется все время, пока бар открыт.

Как я могу сделать так, чтобы он оповещал только тогда, когда рисуется стрелка, а не каждый тик.

Я пробовал следующее.

if(i==1 && SoundAlert)Alert(_Symbol, _Period," Sell Alert"); или if(i==0 && SoundAlert)Alert(_Symbol, _Period," Sell Alert"); .... i = 0 в цикле for Но продолжает предупреждать с каждым тиком. Тогда мой второй запрос: Я также хотел бы знать, как в примере выше, если цена закрывается выше MA и остается там, но через x баров снова закрывается ниже, чтобы дать мне оповещение. Я хотел бы получить помощь в том, как я могу указать x баров назад, когда цена снова закрылась ниже MA. Я хочу просматривать только 1-4 бара назад, когда цена была выше МА, а затем, когда текущий бар закрылся ниже МА, должен выдать сигнал тревоги. С чего мне начать, на что нужно обратить внимание? Я думаю, что логика должна быть примерно такой: if((Close[i+1] && Close[i+2]&&Close[i+3]) > MA && Close <MA), но вместо этого, как в этой строке с RED, мне нужно иметь возможность выбрать во входных данных, сколько баров назад нужно посмотреть, и он должен настроить эту логику соответствующим образом. т.е.: if(Close[диапазон выбран]>MA && Close<A) Любая помощь и указания будут приняты с благодарностью.

Спасибо за информацию, Младен, попробую с алертом.

Я также хотел бы знать, как в примере выше, если цена закрывается выше MA и остается там, но через x баров снова закрывается ниже, чтобы дать мне оповещение. Я хотел бы получить помощь в том, как мне указать x баров назад, когда цена снова закрылась ниже MA. Я хочу просматривать только 1-4 бара назад, когда цена была выше МА, а затем, когда текущий бар закрылся ниже МА, должен выдать сигнал тревоги. С чего мне начать, на что нужно обратить внимание? Я думаю, что логика должна быть примерно такой: if((Close[i+1] && Close[i+2]&&Close[i+3]) > MA && Close <MA), но вместо этого, как в этой строке с RED, я должен иметь возможность выбрать во входных данных, сколько баров назад нужно посмотреть, и он должен настроить эту логику соответственно. т.е.: if(Close[диапазон выбран]>MA && Close<A) Любая помощь и указания будут приняты с благодарностью.

Причина обращения: