Вопрос по MT Language!!! - страница 4

 
Ещё вопрос, можно ли будет как-нибудь отслеживать версии скомпилированных библиотек или придётся в каждую из них вставлять функцию GetLibVersion()?

Иначе две распространяемые в виде ex4-файлов библиотеки с одинаковым названием файлов будет трудно отличить и тогда мы столкнёмся с теми же проблемами версий что и пользователи программ Windows, когда более старая dll могла была быть использована с новыми программами, которые, собственно, рассчитывали иметь дело с функциями существующими только в новых версиях dll.
 
Roman> А зачем Вы так дико мучаетесь в поисках максимумов и минимумов?

Век живи, век учись, от недостатка знаний :(

Не нашел, на сайте возможность посмотреть открытые для просмотра данные форумян, а это полезно, не захламляешь форум, всегда есть возможность поблагодарить, да и побеседовать с интересными людьми в привате. А это мои координаты: <a href="&#109;a&#105;&#76;&#84;o&#58;rvm_fam&#64;fromru&#46;com?Subject=forex">e-mail: microsoft&#46;com</a>
ICQ 321-144-937
 
белеберда, а не адрес получился поэтому воспользуюсь дедушкиным способом
rvm_fam у деревни fromru.com
 
Роману

Не могли бы вы, написАть следующие индикаторы:
PriceChanel и fAMA (filtered AMA)

для прайс-чанел код вы почти дали полный, но хотелось бы ввести еще один параметр - таймфрейм на основе которых он строится (например я хочу чтоб на графике M30 у меня отображался этот индикатор построенный на основе графика D1)
вышесказанное относится и к AMA (в формуме приведен пример АМА + сигнал, но что-то больно заумный код получился), да к тому же хочется чтоб можно было задавать параметр фильтра (основан на среднем приращении адаптивной средней)
 

а можно описательные синонимы ошибок добавить в stdlib.mqh?
добавив "#define ERR_NOT_ENOUGH_MONEY 134"


Попытаюсь облегчить вам работу -- уж очень хоется это увидеть в следующем билде:
#define ERR_NO_ERROR							0
#define ERR_NO_ERROR							1
#define ERR_COMMON_ERROR						2
#define ERR_INVALID_TRADE_PARAMETERS			3
#define ERR_TRADE_SERVER_IS_BUSY				4
#define ERR_OLD_TERMINAL_VERSION				5
#define ERR_NO_CONNECTION_WITH_SERVER			6
#define ERR_NOT_ENOUGH_RIGHTS					7
#define ERR_TOO_FREQUENT_REQUESTS				8
#define ERR_MALFUNCTIONAL_TRADE					9
#define ERR_ACCOUNT_DISABLED					64
#define ERR_INVALID_ACCOUNT						65
#define ERR_TRADE_TIMEOUT						128
#define ERR_INVALID_PRICE						129
#define ERR_INVALID_STOPS						130
#define ERR_INVALID_TRADE_VOLUME				131
#define ERR_MARKET_IS_CLOSED					132
#define ERR_TRADE_IS_DISABLED					133
#define ERR_NOT_ENOUGH_MONEY					134
#define ERR_PRICE_CHANGED						135
#define ERR_OFF_QUOTES							136
#define ERR_BROKER_IS_BUSY						137
#define ERR_REQUOTE								138
#define ERR_ORDER_IS_LOCKED						139
#define ERR_LONG_POSITIONS_ONLY_ALLOWED			140
#define ERR_TOO_MANY_REQUESTS					141
      //---- mql4 errors							 
#define ERR_NO_ERROR							4000
#define ERR_WRONG_FUNCTION_POINTER				4001
#define ERR_ARRAY_INDEX_IS_OUT_OF_RANGE			4002
#define ERR_NO_MEMORY_FOR_FUNCTION_CALL_STACK	4003
#define ERR_RECURSIVE_STACK_OVERFLOW			4004
#define ERR_NOT_ENOUGH_STACK_FOR_PARAMETER		4005
#define ERR_NO_MEMORY_FOR_PARAMETER_STRING		4006
#define ERR_NO_MEMORY_FOR_TEMP_STRING			4007
#define ERR_NOT_INITIALIZED_STRING				4008
#define ERR_NOT_INITIALIZED_STRING_IN_ARRAY		4009
#define ERR_NO_MEMORY_FOR_ARRAY_STRING			4010
#define ERR_TOO_LONG_STRING						4011
#define ERR_REMAINDER_FROM_ZERO_DIVIDE			4012
#define ERR_ZERO_DIVIDE							4013
#define ERR_UNKNOWN_COMMAND						4014
#define ERR_WRONG_JUMP							4015
#define ERR_NOT_INITIALIZED_ARRAY				4016
#define ERR_DLL_CALLS_ARE_NOT_ALLOWED			4017
#define ERR_CANNOT_LOAD_LIBRARY					4018
#define ERR_CANNOT_CALL_FUNCTION				4019
#define ERR_EXPERT_FUNCTION_CALLS_ARE_NOT_ALLOWED	4020
#define ERR_NOT_ENOUGH_MEMORY_FOR_TEMP_STRING_RETURNED_FROM_FUNCTION	4021
#define ERR_SYSTEM_IS_BUSY						4022
#define ERR_INVALID_FUNCTION_PARAMETERS_COUNT	4050
#define ERR_INVALID_FUNCTION_PARAMETER_VALUE	4051
#define ERR_STRING_FUNCTION_INTERNAL_ERROR		4052
#define ERR_SOME_ARRAY_ERROR					4053
#define ERR_INCORRECT_SERIES_ARRAY_USING		4054
#define ERR_CUSTOM_INDICATOR_ERROR				4055
#define ERR_ARRAYS_ARE_INCOMPATIBLE				4056
#define ERR_GLOBAL_VARIABLES_PROCESSING_ERROR	4057
#define ERR_GLOBAL_VARIABLE_NOT_FOUND			4058
#define ERR_FUNCTION_IS_NOT_ALLOWED_IN_TESTING_MODE	4059
#define ERR_FUNCTION_IS_NOT_CONFIRMED			4060
#define ERR_SEND_MAIL_ERROR						4061
#define ERR_STRING_PARAMETER_EXPECTED			4062
#define ERR_INTEGER_PARAMETER_EXPECTED			4063
#define ERR_DOUBLE_PARAMETER_EXPECTED			4064
#define ERR_ARRAY_AS_PARAMETER_EXPECTED			4065
#define ERR_END_OF_FILE							4099
#define ERR_SOME_FILE_ERROR						4100
#define ERR_WRONG_FILE_NAME						4101
#define ERR_TOO_MANY_OPENED_FILES				4102
#define ERR_CANNOT_OPEN_FILE					4103
#define ERR_INCOMPATIBLE_ACCESS_TO_A_FILE		4104
#define ERR_NO_ORDER_SELECTED					4105
#define ERR_UNKNOWN_SYMBOL						4106
#define ERR_INVALID_PRICE						4107
#define ERR_INVALID_TICKET						4108
#define ERR_TRADE_IS_NOT_ALLOWED				4109
#define ERR_LONGS_ARE_NOT_ALLOWED				4110
#define ERR_SHORTS_ARE_NOT_ALLOWED				4111
#define ERR_OBJECT_IS_ALREADY_EXIST				4200
#define ERR_UNKNOWN_OBJECT_PROPERTY				4201
#define ERR_OBJECT_IS_NOT_EXIST					4202
#define ERR_UNKNOWN_OBJECT_TYPE					4203
#define ERR_NO_OBJECT_NAME						4204
#define ERR_OBJECT_COORDINATES_ERROR			4205
#define ERR_NO_SPECIFIED_SUBWINDOW				4206

#define ERR_USER_DEFINED_ERROR					9999

 
Horn, спасибо
 
To Slawa.

Можно ли в справку MQL кроме описания добавить еще и значения стандартных констант? Типа: OP_BUY = 0, OP_SELL = 1, ..., OP_SELLSTOP = 5. Кстати, не совсем удачный пример, этих констант среди стандартных вообще не нашел. PERIOD_D1 =1440, PERIOD_W1 = 10080 и т.д. Это я к тому, что в тройке часто фигурировала строка типа: "если тип ордера <=OP_SELL то...", да и теперь такая строка есть в советнике MACD. А кто знает, сколько это OP_SELL? Да и что там все остальное, больше или меньше? Опять приходится через принт ловить.
 

добавить еще и значения стандартных констант

поддерживаю. Вчера как раз с OrderType-ами мучался....
правда придумал другой вариант расшифровки - в эксперте вставлял
extern int ord_type = OP_SELL;


а потом в свойствах эксперта смотрел, какая циферка по умолчанию появуится

 
При делении целого числа на целое результат всегда получается целым (дробная часть, если есть, отбрасывается). Например строка Print(23/6); выводит в лог результат 3. Результат становится нормальным, если после любой из цифр добавить дробную часть, например 23.0 или 6.0. Если же параметры формальные, т.е. целочисленные переменные, приходится изголяться через функцию NormalizeDouble. Если так и должно быть, то явного описания этого я не нашел ни в справке, ни на сайте. Прокомментируйте, пожалуйста.
 
Это абсолютно правильное поведение. Результатом мат.операций над целочисленными значениями является целое число. Это язык С.
Причина обращения: