Ответить
03.03.2014, 13:21
Регистрация: 13.03.2009 / Сообщений: 2,366
Поблагодарили 1,968 раз(а) / Репутация: 2045
Начал изучение 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 Отправить сообщение для sochinik с помощью Skype™
Да там же кишит ими. Функции которые ничего не возвращают, неиспользуемые переменные, переменные объявленные дважды на разных уровнях.
Да эта рабочая версия советника,( его ещё нужно довести до граля...) но в старых билдах он работал, без предупреждений, и резы были довольно приличные. Но я потерял связь с Павлом( программистом) и поэтому для доработки хочу разобраться с программированием, а сейчас разбираюсь с изменениями в новых билдах.так как изучаю 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 Отправить сообщение для sochinik с помощью Skype™
Начал изучение 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 / Адрес: то тут, то там / Сообщений: 734
Поблагодарили 460 раз(а) / Репутация: 465
Спасибо за отзыв на мой вопрос- кое в чём разобрался, но этот вопрос решить не смог.
Что означает строчка:

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 / Сообщений: 1,879
Поблагодарили 9,589 раз(а) / Репутация: 9594
Уважаемые программисты, нужна Ваша помощь: есть индюк ZigT, нужно добавить к нему ф-цию по-барного автообновления, подскажите, как это реализовать? В индюке есть ф-ция WindowRedraw, но что-то никакой разницы от нее совсем нет .
07.03.2014, 22:51
Аватар для _SERG_
_SERG_ _SERG_ вне форума Активный участник
Регистрация: 21.07.2009 / Сообщений: 271
Поблагодарили 86 раз(а) / Репутация: 86
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
08.03.2014, 04:49
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,044
Поблагодарили 878 раз(а) / Репутация: 864
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
Надо несколько повнятнее объяснять, желательно, с примером.
В массиве типа double никаких строк нет: там элементы массива - это числа с плавающей запятой
08.03.2014, 05:08
Аватар для tommy27
tommy27 tommy27 вне форума ◅ ♛ ♠ ♣ ♥ ♦ ♛ ▻
Регистрация: 16.10.2011 / Адрес: Новосибирск / Сообщений: 1,053
Поблагодарили 3,188 раз(а) / Репутация: 3193
  • Отправить сообщение для tommy27 с помощью Skype™
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
Да ну их, оставляют то что им удобно, пусть сами себе помогают, да и 610 уже вроде как старьё, попробуй в новом 616, может уже поправили.

пс. к выходу билда 666 думаю все косяки поправят.
Юла 
08.03.2014, 06:59
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Пацаны, стуканите Ренату, на метаквоте, что ArraySize() глючная на порядок.
А то они меня до 20 забанили, за "несознанку".
В массиве типа double, одна строка, а функция возвращет что 10.
МТ4 билд 610. Сам написать не могу, по вышеуказанной причине. Спасибо.
Если ты объявил массив arr[10]; и не записал туда ничего, то ArraySize() вернёт тебе обязательно 10. Потому что массив объявлен для 10-ти элементов. Выходит что ты не правильно понял написанное в документации.
08.03.2014, 10:07
Аватар для _SERG_
_SERG_ _SERG_ вне форума Активный участник
Регистрация: 21.07.2009 / Сообщений: 271
Поблагодарили 86 раз(а) / Репутация: 86
Если ты объявил массив 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,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
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 / Сообщений: 271
Поблагодарили 86 раз(а) / Репутация: 86
Вот именно ВЕСЬ МАССИВ...
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,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Т.е. теперь это выглядит гдето так: 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,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
как распознать в советнике свечу в заданном времени ?
по разнице цены открытия и закрытия. 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,366
Поблагодарили 1,968 раз(а) / Репутация: 2045
большое спасибо а как задать время
iBarShift найдёт по времени номер бара.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
08.03.2014, 22:40
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 601
Поблагодарили 708 раз(а) / Репутация: 711
Да ну их, оставляют то что им удобно, пусть сами себе помогают, да и 610 уже вроде как старьё, попробуй в новом 616, может уже поправили.

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

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


Опции темы

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

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



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


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