Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга по написанию робота под MT4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
484.02 Кб
Скачать

Оператор досрочного завершения цикла break

Как я уже сказал, оператор break используется для досрочного выхода из ближайшего вложенного внешнего оператора цикла while или for. Также оператор break используется для выхода из оператора switch (я расскажу о нем в следующих выпусках).

Пример использования этого оператора:

int i;

for ( i = 0; i<10; i++ )

{

...

if ( i == 5 ) break;

}

В нашем примере цикл исполнится не 10 раз, а только 6, т.к. в тот момент, когда переменная i будет равна 5, в операторе if-else условие i=5 станет истинным и будет выполнен оператор break, т.к. произойдет досрочный выход из цикла.

В следующем выпуске я расскажу об операторе досрочного завершения текущей итерации - об операторе continue.

Досрочное завершение очередной итерации цикла с помощью оператора continue

В прошлом выпуске я рассказал о том, как можно досрочно выйти из цикла с помощью оператора break. Однако иногда нам нужно не навсегда выйти из цикла, а просто завершить досрочно очередную его итерацию. Для этого используется оператор continue.

Оператор continue прерывает выполнение текущей итерации и передает управление на начало ближайшего внешнего оператора цикла for или while, запуская на исполнение следующую итерацию.

Пример использования оператора continue:

int i;

for ( i = 0; i < 10; i++)

{

...

continue;

Print ("Изучаем оператор continue"); // этот оператор никогда не будет выполнен

}

В следующем выпуске я расскажу об операторе-переключателе switch.

Оператор переключения switch

Ранее я рассказал об условном операторе if-else, с помощью которого можно изменить порядок выполнения операторов в эксперте. Достаточно часто возникают ситуации, когда нам надо заложить в эксперте не два, а больше варианта развития событий. Например, переменная i может принимать целочисленные значения от 1 до 5 и в зависимости от того, какое значение имеет эта переменная, возможны 5 различных последовательностей операторов. Такую задачу легко можно решить с использованием множества вложенных условных операторов if-else.

if (i == 1)

оператор1;

else

if (i == 2)

оператор2;

else

if (i == 3)

оператор3;

else

if (i == 4)

оператор4;

else

if (i == 5)

оператор5;

Такой код будет работать, но его очень тяжело читать и воспринимать. Для большей наглядности в таких случаях лучше использовать оператор переключения switch.

Формат оператора switch:

switch(выражение)

{

case константа1: операторы1

case константа2: операторы2

...

default: операторы_default

}

Принцип работы этого оператора: сначала вычисляется значение "выражения", потом среди констант "константа1", "константа2" и др. ищется константа, которая равна результату "выражения". Если такая константа найдена, то оправление передается на соответствующую группу операторов. После этого последовательно выполняются все операторы этой группы и всех последующих, пока не будет выполнен последний оператор в операторе switсh или не будет осуществлен досрочный выход из оператора switсh с помощью оператора break. Если же не было найдено подходящей константы, то управление передается на группу операторов "операторы_default".

Метка default и группа операторов "операторы_default" могут отсутствовать. В этом случае просто не будет выполняться никаких действий, если ни одна из констант не соответствует результату "выражения". Default не обязательно должен быть последним.

Каждый вариант case может быть помечен целой константой, символьной константой или константным выражением.

Теперь в качестве примере перепишем наш пример с переменной i и 5 вариантами действий с помощью оператора switch:

switch (i)

{

case 1: оператор1; break;

case 2: оператор2; break;

case 3: оператор3; break;

case 4: оператор4; break;

case 5: оператор5; break;

}

По-моему, выглядит гораздо более читаемо.

Я уверен, что Вам уже не терпиться научить Вашего эксперта торговать. Язык MetaQuotes Language 4 позволяет осуществлять ПОЛНЫЙ контроль над торговым счетом - открывать/закрывать позиции, размещать/модифицировать и удалять ордера, получать информацию об открытых позициях и уже закрытых сделках и многое-многое другое.

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

Учим эксперта торговать

Я уверен, что Вам уже не терпиться научить Вашего эксперта торговать. Язык MetaQuotes Language 4 позволяет осуществлять ПОЛНЫЙ контроль над торговым счетом - открывать/закрывать позиции, размещать/модифицировать и удалять ордера, получать информацию об открытых позициях и уже закрытых сделках и многое-многое другое.

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

Функция

Краткое описание

HistoryTotal

Количество закрытых позиций и удаленных ордеров

OrderClose

Закрывает позицию

OrderCloseBy

Закрывает позицию другой позицией (локированной)

OrderClosePrice

Цена закрытия выбранного функцией OrderSelect() ордера/позиции

OrderCloseTime

Дата и время закрытия выбранного функцией OrderSelect() ордера/позиции

OrderComment

Комментарий выбранного функцией OrderSelect() ордера/позиции

OrderCommission

Комиссия выбранного функцией OrderSelect() ордера/позиции

OrderDelete

Удаляет отложенный ордер

OrderExpiration

Дата истечения выбранного функцией OrderSelect() ордера/позиции

OrderLots

Количество лотов в выбранном функцией OrderSelect() ордере/позиции

OrderMagicNumber

"Магическое" число выбранного функцией OrderSelect() ордера/позиции

OrderModify

Изменяет уровень и дату эксперации отложенного ордера, уровни Stop Loss и Take Profit и "магическое" число открытой позиции или отложенного ордера

OrderOpenPrice

Цена открытия выбранного функцией OrderSelect() ордера/позиции

OrderOpenTime

Дата и время размещения/открытия выбранного функцией OrderSelect() ордера/позиции

OrderPrint

Выводит параметры ордера в журнал

OrderProfit

Прибыль/убыток выбранного функцией OrderSelect() ордера/позиции

OrderSelect

Выбрать ордер для получения информации по нему

OrderSend

Открытие позиции или установка отложенного ордера

OrderStopLoss

Stop Loss выбранного функцией OrderSelect() ордера/позиции

OrdersTotal

Количество открытых позиций и отложенных ордеров

OrderSwap

Величина сториджа выбранного функцией OrderSelect() ордера/позиции

OrderSymbol

Аббревиатура инструмента выбранного функцией OrderSelect() ордера/позиции

OrderTakeProfit

Take Profit выбранного функцией OrderSelect() ордера/позиции

OrderTicket

Тикет выбранного функцией OrderSelect() ордера/позиции

OrderType

Тип выбранного функцией OrderSelect() ордера/позиции

В следующих выпусках я рассмотрю эти функции более подробно.

Выбор ордера или позиции с помощью OrderSelect()

В прошлом выпуске я привел полный перечень торговых функций, которые можно использовать в эксперте. Как Вы уже, наверное, успели заметить, подавляющее большинство этих функций позволяет получить какую-то информацию об ордере или позиции, которые были предварительно выбраны с помощью функции OrderSelect().