Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

О сложных программах 2 страница




Buy -рыночный ордер, определяющий покупку активов по финансовому инструменту.

BuyLimit -отложенный ордер на покупку активов по финансовому инструменту по цене ниже текущей. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется ниже цены, заявленной в ордере.

BuyStop -отложенный ордер на покупку активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется выше цены, заявленной в ордере.

GV-переменная - то же, что глобальная переменная клиентского терминала.

Sell -рыночный ордер, определяющий продажу активов по финансовому инструменту.

SellLimit -отложенный ордер на продажу активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнет или окажется выше цены, заявленной в ордере.

SellStop -отложенный ордер на продажу активов по финансовому инструменту по цене ниже текущей. Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнет или окажется ниже цены, заявленной в ордере.

StopLoss -стоп-приказ; заявленная цена, по которой рыночный ордер будет закрыт при движении цены финансового инструмента в сторону убытков по ордеру.

TakeProfit -стоп-приказ; заявленная цена, по которой рыночный ордер будет закрыт при движении цены финансового инструмента в сторону прибыли по ордеру.

Типы торговых операций

 

Тип операции в функции OrderSend() может быть указан в виде предопределённой константы или её значения и в соответствии с типом торговой операции:

Константа Значение Торговая операция
OP_BUY   Покупка
OP_SELL   Продажа
OP_BUYLIMIT   Отложенный ордер BUY LIMIT
OP_SELLLIMIT   Отложенный ордер SELL LIMIT
OP_BUYSTOP   Отложенный ордер BUY STOP
OP_SELLSTOP   Отложенный ордер SELL STOP

Требования и ограничения при проведении торговых операций

 

В таблицах указаны расчётные значения, ограничивающие проведение торговых операций при открытии, закрытии, установке, удалении и модификации ордеров.

Для получения значения минимальной дистанции StopLevel и дистанции заморозки FreezeLevel необходимо вызвать функцию MarketInfo().

 

Требования.

Правильные цены, используемые при осуществлении торговых операций.

Тип ордера Цена открытия Цена закрытия Цена открытия для отложенного ордера Преобразование отложенного ордера в рыночный
Buy Ask Bid    
Sell Bid Ask    
BuyLimit     Ниже текущей цены Ask Ask достигает цены открытия
SellLimit     Выше текущей цены Bid Bid достигает цены открытия
BuyStop     Выше текущей цены Ask Ask достигает цены открытия
SellStop     Ниже текущей цены Bid Bid достигает цены открытия

Возможность удаления отложенного ордера регламентируется параметром FreezeLevel.

 

Ограничение по минимальной дистанции StopLevel.

Торговая операция не осуществляется, если нарушено любое из указанных требований.

Тип ордера Цена открытия ордера (OpenPrice) StopLoss (SL) TakeProfit (TP)
Buy Модификация запрещена Bid-SL ≥ StopLevel TP-Bid ≥ StopLevel
Sell Модификация запрещена SL-Ask ≥ StopLevel Ask-TP ≥ StopLevel
BuyLimit Ask-OpenPrice ≥ StopLevel OpenPrice-SL ≥ StopLevel TP-OpenPrice ≥ StopLevel
SellLimit Bid-OpenPrice ≥ StopLevel SL-OpenPrice ≥StopLevel OpenPrice-TP ≥ StopLevel
BuyStop OpenPrice-Ask ≥ StopLevel OpenPrice-SL ≥ StopLevel TP-OpenPrice ≥ StopLevel
SellStop Bid-OpenPrice ≥ StopLevel SL-OpenPrice ≥ StopLevel OpenPrice-TP ≥ StopLevel

 

Ограничение по дистанции заморозки FreezeLevel.

Закрытие рыночных ордеров не осуществляется, если значения StopLoss или TakeProfit нарушают требования по параметру FreezeLevel.
Модификация StopLoss или TakeProfit рыночных ордеров не осуществляется, если значения StopLoss или TakeProfit нарушают требования по параметру StopLevel.
Удаление и модификация отложенных ордеров не осуществляется, если заявленная цена открытия ордера нарушает требования по параметру Freezelevel.

Тип ордера Цена открытия ордера(OpenPrice) StopLoss (SL) TakeProfit (TP)
Buy Модификация запрещена Bid-SL > FreezeLevel TP-Bid > FreezeLevel
Sell Модификация запрещена SL-Ask > FreezeLevel Ask-TP > FreezeLevel
BuyLimit Ask-OpenPrice > FreezeLevel Регламентируется параметром StopLevel Регламентируется параметром StopLevel
SellLimit OpenPrice-Bid > FreezeLevel Регламентируется параметром StopLevel Регламентируется параметром StopLevel
BuyStop OpenPrice-Ask > FreezeLevel Регламентируется параметром StopLevel Регламентируется параметром StopLevel
SellStop Bid-OpenPrice > FreezeLevel Регламентируется параметром StopLevel Регламентируется параметром StopLevel

Коды ошибок

 

GetLastError() - функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.

 

Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:

Константа Значение Описание
ERR_NO_ERROR   Нет ошибки
ERR_NO_RESULT   Нет ошибки, но результат неизвестен
ERR_COMMON_ERROR   Общая ошибка
ERR_INVALID_TRADE_PARAMETERS   Неправильные параметры
ERR_SERVER_BUSY   Торговый сервер занят
ERR_OLD_VERSION   Старая версия клиентского терминала
ERR_NO_CONNECTION   Нет связи с торговым сервером
ERR_NOT_ENOUGH_RIGHTS   Недостаточно прав
ERR_TOO_FREQUENT_REQUESTS   Слишком частые запросы
ERR_MALFUNCTIONAL_TRADE   Недопустимая операция нарушающая функционирование сервера
ERR_ACCOUNT_DISABLED   Счет заблокирован
ERR_INVALID_ACCOUNT   Неправильный номер счета
ERR_TRADE_TIMEOUT   Истек срок ожидания совершения сделки
ERR_INVALID_PRICE   Неправильная цена
ERR_INVALID_STOPS   Неправильные стопы
ERR_INVALID_TRADE_VOLUME   Неправильный объем
ERR_MARKET_CLOSED   Рынок закрыт
ERR_TRADE_DISABLED   Торговля запрещена
ERR_NOT_ENOUGH_MONEY   Недостаточно денег для совершения операции
ERR_PRICE_CHANGED   Цена изменилась
ERR_OFF_QUOTES   Нет цен
ERR_BROKER_BUSY   Брокер занят
ERR_REQUOTE   Новые цены
ERR_ORDER_LOCKED   Ордер заблокирован и уже обрабатывается
ERR_LONG_POSITIONS_ONLY_ALLOWED   Разрешена только покупка
ERR_TOO_MANY_REQUESTS   Слишком много запросов
ERR_TRADE_MODIFY_DENIED   Модификация запрещена, так как ордер слишком близок к рынку
ERR_TRADE_CONTEXT_BUSY   Подсистема торговли занята
ERR_TRADE_EXPIRATION_DENIED   Использование даты истечения ордера запрещено брокером
ERR_TRADE_TOO_MANY_ORDERS   Количество открытых и отложенных ордеров достигло предела, установленного брокером.

 

Коды ошибок выполнения MQL4 программы:

Константа Значение Описание
ERR_NO_MQLERROR   Нет ошибки
ERR_WRONG_FUNCTION_POINTER   Неправильный указатель функции
ERR_ARRAY_INDEX_OUT_OF_RANGE   Индекс массива - вне диапазона
ERR_NO_MEMORY_FOR_FUNCTION_CALL_STACK   Нет памяти для стека функций
ERR_RECURSIVE_STACK_OVERFLOW   Переполнение стека после рекурсивного вызова
ERR_NOT_ENOUGH_STACK_FOR_PARAMETER   На стеке нет памяти для передачи параметров
ERR_NO_MEMORY_FOR_PARAMETER_STRING   Нет памяти для строкового параметра
ERR_NO_MEMORY_FOR_TEMP_STRING   Нет памяти для временной строки
ERR_NOT_INITIALIZED_STRING   Неинициализированная строка
ERR_NOT_INITIALIZED_ARRAYSTRING   Неинициализированная строка в массиве
ERR_NO_MEMORY_FOR_ARRAYSTRING   Нет памяти для строкового массива
ERR_TOO_LONG_STRING   Слишком длинная строка
ERR_REMAINDER_FROM_ZERO_DIVIDE   Остаток от деления на ноль
ERR_ZERO_DIVIDE   Деление на ноль
ERR_UNKNOWN_COMMAND   Неизвестная команда
ERR_WRONG_JUMP   Неправильный переход
ERR_NOT_INITIALIZED_ARRAY   Неинициализированный массив
ERR_DLL_CALLS_NOT_ALLOWED   Вызовы DLL не разрешены
ERR_CANNOT_LOAD_LIBRARY   Невозможно загрузить библиотеку
ERR_CANNOT_CALL_FUNCTION   Невозможно вызвать функцию
ERR_EXTERNAL_EXPERT_CALLS_NOT_ALLOWED   Вызовы внешних библиотечных функций не разрешены
ERR_NOT_ENOUGH_MEMORY_FOR_RETURNED_STRING   Недостаточно памяти для строки, возвращаемой из функции
ERR_SYSTEM_BUSY   Система занята
ERR_INVALID_FUNCTION_PARAMETERS_COUNT   Неправильное количество параметров функции
ERR_INVALID_FUNCTION_PARAMETER_VALUE   Недопустимое значение параметра функции
ERR_STRING_FUNCTION_INTERNAL_ERROR   Внутренняя ошибка строковой функции
ERR_SOME_ARRAY_ERROR   Ошибка массива
ERR_INCORRECT_SERIES_ARRAY_USING   Неправильное использование массива-таймсерии
ERR_CUSTOM_INDICATOR_ERROR   Ошибка пользовательского индикатора
ERR_INCOMPATIBLE_ARRAYS   Массивы несовместимы
ERR_GLOBAL_VARIABLES_PROCESSING_ERROR   Ошибка обработки глобальныех переменных
ERR_GLOBAL_VARIABLE_NOT_FOUND   Глобальная переменная не обнаружена
ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE   Функция не разрешена в тестовом режиме
ERR_FUNCTION_NOT_CONFIRMED   Функция не подтверждена
ERR_SEND_MAIL_ERROR   Ошибка отправки почты
ERR_STRING_PARAMETER_EXPECTED   Ожидается параметр типа string
ERR_INTEGER_PARAMETER_EXPECTED   Ожидается параметр типа integer
ERR_DOUBLE_PARAMETER_EXPECTED   Ожидается параметр типа double
ERR_ARRAY_AS_PARAMETER_EXPECTED   В качестве параметра ожидается массив
ERR_HISTORY_WILL_UPDATED   Запрошенные исторические данные в состоянии обновления
ERR_TRADE_ERROR   Ошибка при выполнении торговой операции
ERR_END_OF_FILE   Конец файла
ERR_SOME_FILE_ERROR   Ошибка при работе с файлом
ERR_WRONG_FILE_NAME   Неправильное имя файла
ERR_TOO_MANY_OPENED_FILES   Слишком много открытых файлов
ERR_CANNOT_OPEN_FILE   Невозможно открыть файл
ERR_INCOMPATIBLE_ACCESS_TO_FILE   Несовместимый режим доступа к файлу
ERR_NO_ORDER_SELECTED   Ни один ордер не выбран
ERR_UNKNOWN_SYMBOL   Неизвестный символ
ERR_INVALID_PRICE_PARAM   Неправильный параметр цены для торговой функции
ERR_INVALID_TICKET   Неверный номер тикета
ERR_TRADE_NOT_ALLOWED   Торговля не разрешена
ERR_LONGS_NOT_ALLOWED   Длинные позиции не разрешены
ERR_SHORTS_NOT_ALLOWED   Короткие позиции не разрешены
ERR_OBJECT_ALREADY_EXISTS   Объект уже существует
ERR_UNKNOWN_OBJECT_PROPERTY   Запрошено неизвестное свойство объекта
ERR_OBJECT_DOES_NOT_EXIST   Объект не существует
ERR_UNKNOWN_OBJECT_TYPE   Неизвестный тип объекта
ERR_NO_OBJECT_NAME   Нет имени объекта
ERR_OBJECT_COORDINATES_ERROR   Ошибка координат объекта
ERR_NO_SPECIFIED_SUBWINDOW   Не найдено указанное подокно
ERR_SOME_OBJECT_ERROR   Ошибка при работе с объектом

 

Стили отображения индикаторных линий

 

Стили рисования индикаторных линий для функций SetIndexStyle() и SetLevelStyle():

Константа Значение Описание
DRAW_LINE   Простая линия
DRAW_SECTION   Отрезки между непустыми значениями линии
DRAW_HISTOGRAM   Гистограмма
DRAW_ARROW   Стрелки (символы)
DRAW_ZIGZAG   Отрезки между непустыми значениями чётной и нечётной линий (зигзаг)
DRAW_NONE   Отсутствие какого-либо рисования

 

Стиль линии. Используется только при толщине линии 0 или 1:

Константа Значение Описание
STYLE_SOLID   Сплошная линия
STYLE_DASH   Штриховая линия
STYLE_DOT   Пунктирная линия
STYLE_DASHDOT   Штрих-пунктирная линия
STYLE_DASHDOTDOT   Штрих-пунктирная линия с двойными точками

Типы и свойства графических объектов

 

Идентификаторы типов графических объектов используются в функциях ObjectCreate(), ObjectsDeleteAll() и ObjectType() и могут принимать следующие значения:

Тип объекта Значение Описание
OBJ_VLINE   Вертикальная линия. Использует время в качестве первой координаты, цена игнорируется.
OBJ_HLINE   Горизонтальная линия. Использует цену в качестве первой координаты, время игнорируется.
OBJ_TREND   Трендовая линия. Использует 2 координаты.
OBJ_TRENDBYANGLE   Трендовая линия по углу. Использует 2 координаты, либо первую координату и угол. Для установки угла линии (свойство OBJPROP_ANGLE) используется функция ObjectSet().
OBJ_REGRESSION   Канал линейной регрессии. Использует временные составляющие 2 координат, ценовые составляющие игнорируются.
OBJ_CHANNEL   Равноудаленный канал. Использует 3 координаты.
OBJ_STDDEVCHANNEL   Канал стандартных отклонений. Использует временные составляющие 2 координат, ценовые составляющие игнорируются.
OBJ_GANNLINE   Линия Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_GANNFAN   Веер Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_GANNGRID   Сетка Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_FIBO   Уровни Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOTIMES   Временные зоны Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOFAN   Веер Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOARC   Дуги Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_EXPANSION   Расширение Фибоначчи. Использует 3 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOCHANNEL   Канал Фибоначчи. Использует 3 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_RECTANGLE   Прямоугольник. Использует 2 координаты.
OBJ_TRIANGLE   Треугольник. Использует 3 координаты.
OBJ_ELLIPSE   Эллипс. Использует 2 координаты. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_PITCHFORK   Вилы Эндрюса. Использует 3 координаты.
OBJ_CYCLES   Временные ряды (циклические линии). Использует 2 координаты.
OBJ_TEXT   Текст. Использует 1 координату. Для установки угла выводимого текста (свойство OBJPROP_ANGLE) используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText().
OBJ_ARROW   Стрелки (символы). Использует 1 координату. Для установки кода символа (свойство OBJPROP_ARROWCODE) используется функция ObjectSet().
OBJ_LABEL   Текстовая метка. Для установки координат, задаваемых в пикселях относительно угла привязки (свойства OBJPROP_CORNER, OBJPROP_XDISTANCE, OBJPROP_YDISTANCE), используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText().

 

Идентификаторы свойств графических объектов используются в функциях ObjectGet() и ObjectSet(), могут принимать следующие значения:

Cвойства объекта Значение Тип Описание
OBJPROP_TIME1   datetime Получает/устанавливает первую координату времени.
OBJPROP_PRICE1   double Получает/устанавливает первую координату цены.
OBJPROP_TIME2   datetime Получает/устанавливает вторую координату времени.
OBJPROP_PRICE2   double Получает/устанавливает вторую координату цены.
OBJPROP_TIME3   datetime Получает/устанавливает третью координату времени.
OBJPROP_PRICE3   double Получает/устанавливает третью координату цены.
OBJPROP_COLOR   color Получает/устанавливает цвет объекта.
OBJPROP_STYLE   int Получает/устанавливает стиль линии объекта.
OBJPROP_WIDTH   int Получает/устанавливает ширину линии объекта.
OBJPROP_BACK   bool Получает/устанавливает флаг фонового отображения объекта.
OBJPROP_RAY   bool Получает/устанавливает флаг свойства луч для объектов типа OBJ_TREND и ему подобных.
OBJPROP_ELLIPSE   bool Получает/устанавливает флаг отображения полного эллипса для объекта OBJ_FIBOARC.
OBJPROP_SCALE   double Получает/устанавливает значение масштаба объекта.
OBJPROP_ANGLE   double Получает/устанавливает значение угла в градусах объекта OBJ_TRENDBYANGLE.
OBJPROP_ARROWCODE   int Получает/устанавливает код стрелки объекта OBJ_ARROW. Может быть одним из символов wingdings или один из предопределенных кодов стрелок.
OBJPROP_TIMEFRAMES   int Получает/устанавливает свойство отображения объекта на различных периодах. Может быть одним или комбинацией нескольких из констант видимости объекта.
OBJPROP_DEVIATION   double Получает/устанавливает размер отклонения для объекта OBJ_STDDEVCHANNEL.
OBJPROP_FONTSIZE   int Получает/устанавливает размер шрифта для объектов OBJ_TEXT и OBJ_LABEL.
OBJPROP_CORNER   int Получает/устанавливает номер угла привязки для объекта OBJ_LABEL. Принимает значения 0-3.
OBJPROP_XDISTANCE   int Получает/устанавливает расстояние X-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL.
OBJPROP_YDISTANCE   int Получает/устанавливает расстояние Y-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL.
OBJPROP_FIBOLEVELS   int Получает/устанавливает число уровней объекта Fibonacci. Может быть от 1 до 32.
OBJPROP_LEVELCOLOR   color Получает/устанавливает цвет линии уровня объекта
OBJPROP_LEVELSTYLE   int Получает/устанавливает стиль линии уровня объекта.
OBJPROP_LEVELWIDTH   int Получает/устанавливает ширину линии уровня объекта.
OBJPROP_FIRSTLEVEL+n 210+n int Получает/устанавливает номер уровня объекта, где n - индекс устанавливаемого/получаемого уровня. Может быть от 0 до 31.

Звуковые файлы

 

Набор звуковых файлов, рекомендуемых для использования в практической работе в экспертах, скриптах и индикаторах:

Название файла Рекомендуемое условие использования
Close_order.wav Закрытие рыночного ордера
Ok.wav Удачное завершение торговой операции
Transform.wav Преобразование отложенного ордера в рыночный
Bulk.wav Незначительные события
Inform.wav Различная информация (изменение условий торговли и пр.)
Oops.wav Критическая информация (не хватает средств и пр.) или недопустимое действие
Expert.wav Отдан торговый приказ
Error.wav Неудачное завершение торговой операции
Bzrrr.wav Другие ошибки
Wait.wav Пауза
Work.wav Установлены необходимые программы и файлы
Tick.wav Новый тик
W1.wav Другие условия
W2.wav Другие условия
W3.wav Другие условия

 

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

Коды возврата функции MessageBox()

 

Если окно сообщения имеет кнопку Отмена (Cancel), то функция возвращает значение IDCANCEL при нажатой клавише ESC или кнопке Отмена (Cancel). Если окно сообщения не имеет кнопки Отмена (Cancel), нажатие ESC не приводит ни к какому результату.

Константа Значение Описание
IDOK   Выбрана кнопка OK
IDCANCEL   Выбрана кнопка Отмена(Cancel)
IDABORT   Выбрана кнопка Прервать (Abort)
IDRETRY   Выбрана кнопка Повтор (Retry)
IDIGNORE   Выбрана кнопка Пропустить (Ignore)
IDYES   Выбрана кнопка Да (Yes)
IDNO   Выбрана кнопка Нет (No)
IDTRYAGAIN   Выбрана кнопка Повторить (Try Again)
IDCONTINUE   Выбрана кнопка Продолжить (Continue)

 




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 442; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.024 сек.