Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Занеси ветку в избранное. Отслеживай изменения еще быстрее!
Putevod
30
Putevod 2015.01.31 23:48 

Хотел было простецкий советник написать, но строчка:

ma0=iMA(0,0,13,0,MODE_SMA,PRICE_CLOSE,0);

мозг вынесла. Дает предупреждение неявного преобразования из "number" в "string" и указывает на первую скобку. 

Че это такое, может кто подскажет??? 

Sergey Sartakov
1286
Sergey Sartakov 2015.02.01 00:34  
Putevod:

Хотел было простецкий советник написать, но строчка:

ma0=iMA(0,0,13,0,MODE_SMA,PRICE_CLOSE,0);

мозг вынесла. Дает предупреждение неявного преобразования из "number" в "string" и указывает на первую скобку. 

Че это такое, может кто подскажет??? 

можно не обращать внимания, но если хотите, вот формат этой функции:

iMA(string Symbol,...)

поэтому указывая на текущий символ надо было бы указывать пустую строку таким вот макаром NULL.

NULL - собственно и есть нуль, но компилятор вас предупреждает, что тут надо бы вообще-то писать NULL,

а не нуль. 

Putevod
30
Putevod 2015.02.01 00:37  
Огроменное тебе СПАСИБО!!! Я так замучался, так нервничал, я даже ругался с ним... Выручил! Все заработало!!!!
Dmitriy Skub
11513
Dmitriy Skub 2015.02.01 08:22  
Putevod:
В следующий раз, прежде чем мучаться, попробуйте прочитать документацию)) Выделяете интересующее слово в редакторе и нажимаете F1.
Alexey Volchanskiy
16219
Alexey Volchanskiy 2015.02.03 02:35  
more:

можно не обращать внимания, но если хотите, вот формат этой функции:

iMA(string Symbol,...)

поэтому указывая на текущий символ надо было бы указывать пустую строку таким вот макаром NULL.

NULL - собственно и есть нуль, но компилятор вас предупреждает, что тут надо бы вообще-то писать NULL,

а не нуль. 

И мои 5 центов, NULL означает не арифметический ноль, а тип void. В случае со строкой пустая строка.
Eugeniy Lugovoy
1968
Eugeniy Lugovoy 2015.02.03 07:45  
VDev:
И мои 5 центов, NULL означает не арифметический ноль, а тип void. В случае со строкой пустая строка.

+мой 1 цент. NULL - это неопределенное значение (значение неизвестно, некорректно или неприемлемо). Тип void - это все таки тип данных, а не значение.

Также существует разница: пустая строка = "", не есть NULL, т.к. указатель на пустую строку может существовать, а NULL - это отсутствие указателя.

Alexander Efremovtsev
285
Alexander Efremovtsev 2015.02.03 10:11  
А разве не грамотнее например так: iMA(_Symbol,_Period,13,0,MODE_SMA,PRICE_CLOSE); ?
Alexey Volchanskiy
16219
Alexey Volchanskiy 2015.02.04 02:35  
elugovoy:

+мой 1 цент. NULL - это неопределенное значение (значение неизвестно, некорректно или неприемлемо). Тип void - это все таки тип данных, а не значение.

Также существует разница: пустая строка = "", не есть NULL, т.к. указатель на пустую строку может существовать, а NULL - это отсутствие указателя.

Ну тогда еще 100500 долларов - ну нет в MQL4 указателей, нет и все ))) Есть дескрипторы. И чтобы не спорить, читаем хелпы, они рулез ))

Тип void и константа NULL

Синтаксически тип void является фундаментальным типом наравне с типами char, uchar, bool, short, ushort, int, uint, color, long, ulong, datetime, float, double и string. Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.

Предопределенная константная переменная NULL имеет тип void. Она может быть присвоена переменным любых других фундаментальных типов без преобразования. Также допускается сравнение переменных фундаментальных типов со значением NULL

Пример:

//--- если строка не инициализирована, то присвоим ей наше предопределенное значение
if(some_string==NULL) some_string="empty";

Также NULL можно сравнивать с указателями на объекты, созданные при помощи оператора new

Sergey Gridnev
4907
Sergey Gridnev 2015.02.04 17:32  
VDev:


Предопределенная константная переменная NULL имеет тип void.

 

Из того, что константа NULL имеет  тип void абсолютно не следует, что:

 

VDev:
 NULL означает не арифметический ноль, а тип void.

 

---

 

Понимаете?  NULL не означает тип void, так же как 5 не означает тип int.

Vasiliy Sokolov
21142
Vasiliy Sokolov 2015.02.05 11:42  
... спор тупоконечников с остроконечниками...
Stefan Stoyanov
15512
Stefan Stoyanov 2015.02.07 20:14  

Putevod:

Хотел было простецкий советник написать, но строчка:

ma0=iMA(0,0,13,0,MODE_SMA,PRICE_CLOSE,0);

мозг вынесла. Дает предупреждение неявного преобразования из "number" в "string" и указывает на первую скобку. 

Че это такое, может кто подскажет??? 

 

ma0=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0);

 

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий