Ответить
03.03.2014, 13:21
Регистрация: 13.03.2009 / Сообщений: 2,414
Поблагодарили 1,982 раз(а) / Репутация: 2059
Начал изучение MQL по видео на старых билдах, а сейчас в новых МТ4 сменили редактор метаэдитор и понять не могу того чего и не знал, Подскажите если раньше в советнике предупреждений не было, то сейчас в новом билде сразу 20 предупреждений. Подскажите что это означает и как это все исправлять. Советник прикладываю....
Да там же кишит ими. Функции которые ничего не возвращают, неиспользуемые переменные, переменные объявленные дважды на разных уровнях.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
03.03.2014, 13:42
Аватар для sochinik
sochinik sochinik вне форума Активный участник
Регистрация: 10.05.2012 / Адрес: Курск-Краснодар / Сообщений: 326
Поблагодарили 169 раз(а) / Репутация: 170
  • Отправить сообщение для sochinik с помощью ICQ Отправить сообщение для sochinik с помощью MSN
Да там же кишит ими. Функции которые ничего не возвращают, неиспользуемые переменные, переменные объявленные дважды на разных уровнях.
Да эта рабочая версия советника,( его ещё нужно довести до граля...) но в старых билдах он работал, без предупреждений, и резы были довольно приличные. Но я потерял связь с Павлом( программистом) и поэтому для доработки хочу разобраться с программированием, а сейчас разбираюсь с изменениями в новых билдах.так как изучаю MQL по видео на прежних билдах.
У меня сменился SKYPE!!! Ищу своих друзей!

Пишите в личку или в новый SKYPE: sochinik1
03.03.2014, 15:45
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Да эта рабочая версия советника,( его ещё нужно довести до граля...) но в старых билдах он работал, без предупреждений, и резы были довольно приличные. Но я потерял связь с Павлом( программистом) и поэтому для доработки хочу разобраться с программированием, а сейчас разбираюсь с изменениями в новых билдах.так как изучаю MQL по видео на прежних билдах.
Предупреждение это еще не ошибка, компилятор сообщает о неудачном использовании какой-то конструкции, или о подозрительной операции.
В этом коде предупреждения в основном из-за того что многие переменные описаны и на глобальном уровне, и как локальные внутри функций. Это не запрещено, но так делать не стоит, путаница гарантирована.
Кроме того, если написано int xyz() {...}, то функция должна заканчивать выполнение через return целого числа. И наоборот, написано void TradeStop(), не надо пытаться возвращать 0.
05.03.2014, 12:39
Аватар для sochinik
sochinik sochinik вне форума Активный участник
Регистрация: 10.05.2012 / Адрес: Курск-Краснодар / Сообщений: 326
Поблагодарили 169 раз(а) / Репутация: 170
  • Отправить сообщение для sochinik с помощью ICQ Отправить сообщение для sochinik с помощью MSN
Начал изучение MQL по видео на старых билдах, а сейчас в новых МТ4 сменили редактор метаэдитор и понять не могу того чего и не знал, Подскажите если раньше в советнике предупреждений не было, то сейчас в новом билде сразу 20 предупреждений. Подскажите что это означает и как это все исправлять. Советник прикладываю....
Спасибо за отзыв на мой вопрос- кое в чём разобрался, но этот вопрос решить не смог.
Что означает строчка:

declaration of 'col' hides global declaration at line 87 2Sides_v5.0c4_nik_2 (2).mq4 1159 48


И как убрать можно это предупреждение.
У меня сменился SKYPE!!! Ищу своих друзей!

Пишите в личку или в новый SKYPE: sochinik1
05.03.2014, 13:23
Аватар для DiZin
DiZin DiZin вне форума Почётный гражданин
Регистрация: 06.10.2009 / Адрес: то тут, то там / Сообщений: 731
Поблагодарили 459 раз(а) / Репутация: 464
Спасибо за отзыв на мой вопрос- кое в чём разобрался, но этот вопрос решить не смог.
Что означает строчка:

declaration of 'col' hides global declaration at line 87 2Sides_v5.0c4_nik_2 (2).mq4 1159 48


И как убрать можно это предупреждение.
Переименовать локальную переменную col, чтоб она не перекрывала глобальную с таким же именем
Добрею прямо на глазах
06.03.2014, 20:05
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 2,059
Поблагодарили 10,216 раз(а) / Репутация: 10229
Уважаемые программисты, нужна Ваша помощь: есть индюк ZigT, нужно добавить к нему ф-цию по-барного автообновления, подскажите, как это реализовать? В индюке есть ф-ция WindowRedraw, но что-то никакой разницы от нее совсем нет .
07.03.2014, 22:51
Аватар для _SERG_
_SERG_ _SERG_ вне форума Активный участник
Регистрация: 21.07.2009 / Сообщений: 289
Поблагодарили 96 раз(а) / Репутация: 96
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
08.03.2014, 04:49
Аватар для ansol
ansol ansol вне форума Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,075
Поблагодарили 898 раз(а) / Репутация: 884
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
Надо несколько повнятнее объяснять, желательно, с примером.
В массиве типа double никаких строк нет: там элементы массива - это числа с плавающей запятой
08.03.2014, 05:08
Регистрация: 16.10.2011 / Адрес: пуп земли / Сообщений: 1,054
Поблагодарили 3,193 раз(а) / Репутация: 3198
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
Да ну их, оставляют то что им удобно, пусть сами себе помогают, да и 610 уже вроде как старьё, попробуй в новом 616, может уже поправили.

пс. к выходу билда 666 думаю все косяки поправят.
Юла 
08.03.2014, 06:59
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,681
Поблагодарили 3,805 раз(а) / Репутация: 3797
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
Если ты объявил массив arr[10]; и не записал туда ничего, то ArraySize() вернёт тебе обязательно 10. Потому что массив объявлен для 10-ти элементов. Выходит что ты не правильно понял написанное в документации.
08.03.2014, 10:07
Аватар для _SERG_
_SERG_ _SERG_ вне форума Активный участник
Регистрация: 21.07.2009 / Сообщений: 289
Поблагодарили 96 раз(а) / Репутация: 96
Если ты объявил массив arr[10]; и не записал туда ничего, то ArraySize() вернёт тебе обязательно 10. Потому что массив объявлен для 10-ти элементов. Выходит что ты не правильно понял написанное в документации.

Уточняю, массив arr [][10], двухмерный, на что я в начале не обратил внимания, но тем не менее в старой версии языка, ArraySize(arr); возвращала значение первого, как в справке написано, измерения массива.
ArrayResize(arr, 2); тоже возвращает значение с учётом второго измерения массива.
Трёхмерные массивы не проверял пока, но перспектива пресказуемая. О! Проверил, arr[][10][10] возвращает 100!

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

Пару строк для любопытных:

//+------------------------------------------------------------------+
//| Глюк_ArraySize.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| _http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
double arr[][10];
int Rec = 1;
string MSG = "";
int deinit(){
Sleep (5000);
Comment("");
return(0);
}
void OnStart(){
int TEST_AR = ArrayResize( arr, Rec );
MSG = DoubleToStr( TEST_AR, Digits ) + "\n";
MSG = MSG + DoubleToStr( ArraySize( arr ), Digits );
Comment ( MSG );
}
//+------------------------------------------------------------------+

P.S. AlexeyVik, я внимательно прочитал, и правильно понял. ПЕРВОЕ ИЗМЕРЕНИЕ, А НЕ ВЕСЬ МАССИВ.

Последний раз редактировалось NSerega; 08.03.2014 в 11:04.
08.03.2014, 10:18
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,681
Поблагодарили 3,805 раз(а) / Репутация: 3797
P.S. AlexeyVik, я внимательно прочитал, и правильно понял. ПЕРВОЕ ИЗМЕРЕНИЕ, А НЕ ВЕСЬ МАССИВ.
Вот именно ВЕСЬ МАССИВ...
ArraySize
Возвращает количество элементов указанного массива.



Если массив arr[1][10] то он содержит 10 элементов...
А про первое измерение массива сказано в



ArrayResize
Устанавливает новый размер в первом измерении массива


И если в коде будет ArrayResize(arr, 3); то массив будет содержать уже 30 элементов.

Вот тебе справка по старому языку. Где написано про первое измерение?

Последний раз редактировалось AlexeyVik; 08.03.2014 в 10:21.
08.03.2014, 11:06
Аватар для _SERG_
_SERG_ _SERG_ вне форума Активный участник
Регистрация: 21.07.2009 / Сообщений: 289
Поблагодарили 96 раз(а) / Репутация: 96
Вот именно ВЕСЬ МАССИВ...
ArraySize
Возвращает количество элементов указанного массива.



Если массив arr[1][10] то он содержит 10 элементов...
А про первое измерение массива сказано в



ArrayResize
Устанавливает новый размер в первом измерении массива


И если в коде будет ArrayResize(arr, 3); то массив будет содержать уже 30 элементов.

Вот тебе справка по старому языку. Где написано про первое измерение?
Т.е. теперь это выглядит гдето так: ArrayRange( arr, 0 );
Спасибо.
08.03.2014, 11:49
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,681
Поблагодарили 3,805 раз(а) / Репутация: 3797
Т.е. теперь это выглядит гдето так: ArrayRange( arr, 0 );
Спасибо.
Не теперь, а всегда было так...
08.03.2014, 13:07
Аватар для abuuuuuu
abuuuuuu abuuuuuu вне форума Местный знаток
Регистрация: 08.08.2013 / Сообщений: 287
Поблагодарили 716 раз(а) / Репутация: 717
как распознать в советнике свечу в заданном времени ?

Последний раз редактировалось abuuuuuu; 08.03.2014 в 13:10.
08.03.2014, 13:20
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,681
Поблагодарили 3,805 раз(а) / Репутация: 3797
как распознать в советнике свечу в заданном времени ?
по разнице цены открытия и закрытия. Open[] - Close[]
08.03.2014, 16:45
Аватар для abuuuuuu
abuuuuuu abuuuuuu вне форума Местный знаток
Регистрация: 08.08.2013 / Сообщений: 287
Поблагодарили 716 раз(а) / Репутация: 717
по разнице цены открытия и закрытия. Open[] - Close[]
большое спасибо а как задать время
08.03.2014, 17:37
Регистрация: 13.03.2009 / Сообщений: 2,414
Поблагодарили 1,982 раз(а) / Репутация: 2059
большое спасибо а как задать время
iBarShift найдёт по времени номер бара.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
08.03.2014, 22:40
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 603
Поблагодарили 708 раз(а) / Репутация: 711
Да ну их, оставляют то что им удобно, пусть сами себе помогают, да и 610 уже вроде как старьё, попробуй в новом 616, может уже поправили.

пс. к выходу билда 666 думаю все косяки поправят.
или к выходу 10000 билда)))))
че вы хотите с тупых и наглых разрабов...помешались на деньгах и славе...банят всех кто повторил свой вопрос несколько раз, хотя сами же игнорят вопросы.. .
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
10.03.2014, 15:48
Аватар для gince
gince gince вне форума Местный знаток
Регистрация: 09.09.2008 / Адрес: Литва / Сообщений: 489
Поблагодарили 857 раз(а) / Репутация: 857
Помогите в теме http://forexsystemsru.com/yazyk-prog...-sovetnik.html
Гинтарас
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 19:26. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO