Как заработать деньги. Проект сам себе финансист.
апрель 2024
пн вт ср чт пт сб вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

OrderSymbol() - инструмент выделенного ордера

OrderSymbol() - инструмент выделенного ордера Очень часто перед трейдером стоит задача перебрать все открытые позиции или отложенные ордера и что-то сделать с позициями или ордерами, которые выставлены по инструменту, к которому прикреплен советник. Предположим, что нас интересуют только отложенные ордера. Используя функцию OrderSymbol(), мы можем получить информация о выделенном с помощью функции OrderSelect() ордере или позиции. string OrderSymbol() Напишем кусочек кода, который просматривает все наши неудаленные отложенные ордера и производит какие-то действия с ордерами, которые выставлены по инструменту, к которому прикреплен советник. В этом коде Вам могут быть непонятны два момента. Во-первых, я как-то странно на первый взгляд провожу определение типа ордера: if (OrderType()>=OP_BUYLIMIT). в действительности условие OrderType()>=OP_BUYLIMIT будет истинно в тех случаях, когда выбран ордер, и ложно в тех случаях, когда выбрана позиция. Дело в том, что константы, определяющие тип ордера…
Полная версия статьи
Категория: Советники форекс


OrderTakeProfit() - уровень Take Profit ордера

OrderTakeProfit() - уровень Take Profit ордера В прошлых выпусках мы уже достаточно сильно продвинулись в вопросе, как определить, была ли позиция закрыта по Take Profit ордеру или по Stop Loss. Параллельно мы изучили следующие торговые функции советника: OrderSelect(), OrdersTotal(), HistoryTotal(), OrderClosePrice(), OrderStopLoss(), OrderType(), OrderCloseTime(). В данной статье мы изучим функцию OrderTakeProfit() и доработаем наш пример. Мы почему-то с первых строчек кода безусловно верим в тот факт, что позиция была закрыта именно по Stop Loss или Take Profit ордера. А если нет? Это легко проверить. Если для позиции на покупку цена закрытия находится не ниже уровня Take Profit, то позиция закрыта по Take Profit. Если для позиции на продажу цена закрытия находится не выше уровня Take Profit, то позиция закрыта по Take Profit. Мы знаем, что уровень Stop Loss ордера выделенной позиции или ордера можно определить с помощью функции OrderStopLoss().
Полная версия статьи
Категория: Советники форекс


Получение типа ордера с помощью OrderType()

В прошлых выпусках мы научились получать информацию о выделенном с помощью функции OrderSelect() ордере или позиции: Stop Loss ( функция OrderStopLoss ); Цену закрытия ( функция OrderClosePrice ). В данной статье будет рассказано о функции OrderType(). int OrderType() Функция OrderType() возвращает значение, которое определяет тип операции ордера, который предварительно выбран с помощью OrderSelect(): OP_BUY - позиция на покупку, OP_SELL - позиция на продажу, OP_BUYLIMIT - отложенный ордер Buy Limit, OP_BUYSTOP - отложенный ордер Buy Stop, OP_SELLLIMIT - отложенный ордер Sell Limit, OP_SELLSTOP - отложенный ордер Sell Stop. В предыдущем выпуске мы видели пример, который определял, как была закрыта позиция - по Stop Loss ордеру или по Take Profit. Вместе с тем в этом примере есть небольшая ошибка: если выделенный ордер является отложенным ордером, то этот кусочек кода будет ошибочно считать, что позиция закрылась по Take Profit.
Полная версия статьи
Категория: Советники форекс


Использование констант в эксперте

Использование констант в эксперте В предыдущей статье, как вы помните, был выложен код нашего первого эксперта. Вначале разберем, что означают следующие строчки: #define STATE_SQUARE 0 #define STATE_LONG 1 #define STATE_SHORT 2 Эти строчки дают возможность вместо написания малоинформтивных чисел 0, 1 или 2 использовать более понятные имена STATE_SQUARE, STATE_LONG или STATE_SHORT. Результат будет абсолютно таким же - если программа встретит в тексте STATE_SQUARE, STATE_LONG или STATE_SHORT, она заменит их на 0, 1 и 2 соответственно. Такая программа будет более читаемой. Также константы используются в тех случаях, когда какое-то значение использует в нескольких местах программы и существует вероятность, что трейдеру может понадобиться изменить это значение в будущем. Если использовать константу, достаточно будет это сделать только в одном месте - в директиве #define. Для объявления константы используйте следующую конструкцию: #define имя значение Примеры констант: #define AUTHOR "Vedikhin Andrey" #define Lots 1.1
Полная версия статьи
Категория: Советники форекс


OrderClosePrice() - цена закрытия выделенного ордера или позиции

OrderClosePrice() - цена закрытия выделенного ордера или позиции После того, как мы выделим ордер или позицию с помощью функции OrderSelect(), мы можем получить об ордере саму различную информацию. В данной статье будет рассказано о функции OrderClosePrice(). Формат функции OrderClosePrice(): double OrderClosePrice() Функция OrderClosePrice() возвращает цену закрытия ордера или позиции, выделенной с помощью функции OrderSelect(). Рассмотрим пример использования функции OrderClosePrice(). Предположим, что мы знаем, что позиция закрылась по ордеру и нам надо определить по какому: по Stop Loss или Take Profit: К сожалению, наш пример будет работать только в тех случаях, когда Stop Loss сработал без проскальзывания. В следующих выпусках мы усложним пример и сделаем так, чтобы даже если ордера были сработаны с проскальзыванием, наш кусочек кода правильно это определял. В этом примере Вам незнакома функция OrderStopLoss(). Эта функция возвращает значение Stop Loss выделенного ордера или позиции.
Полная версия статьи
Категория: Советники форекс


OrderStopLoss() - цена закрытия выделенного ордера или позиции

В предыдущей статье, рассказывая о функции OrderClosePrice(), я рассмотрел пример, как определить по какому ордеру (Stop Loss или Take Profit) была закрыта позиция, если точно известно, что она была закрыта по ордеру. В этом примере была использована функция OrderStopLoss(). Из названия абсолютно понятно ее предназначение, но лучше все-таки остановиться на ней поподробнее. Для того, чтобы изучение функции OrderStopLoss() стало не просто скучным теоретическим описанием, попробуем слегка изменить прошлый пример, чтобы получить максимум практической пользы. Прошлый наш пример работал только в тех случаях, когда Stop Loss был сработан без проскальзывания. Изменим немного наш код: Этот пример базируется на том, что: Если позиция была на покупку (условие OrderType() == OP_BUY истинно), то Stop Loss сработает или по цене ордера, или хуже, т. е. ниже: (OrderClosePrice() <= orderstoploss()). Если позиция была на продажу (условие OrderType() == OP_SELL истинно), то Stop Loss сработает или по цене ордера, или хуже, т.
Полная версия статьи
Категория: Советники форекс


С чего начать при написании советника

С чего начать при написании советника Естественно, что первым делом Вы должны иметь представление, а в чем же заключается Ваша торговая тактика, и что Вы хотите запрограммировать. Принципы создания любой торговой тактики подробно описаны в разделе "Торговые тактики", поэтому примем за аксиому, что Вы знаете, что делаете, т. е. в Вашей голове уже сформировался торговый алгоритм, который Вы желаете запрограммировать в виде советника на языке MetaQuotes Language 4. Итак, начнем... Запустите терминал MetaTrader 4. Окно "Навигатор" позволяет быстро получить доступ к различным возможностям программы. Список возможностей представлен в виде дерева и содержит 5 групп: "Счета" – список счетов. "Индикаторы" - список доступных индикаторов технического анализа. "Советники" - список доступных советников. "Пользовательские индикаторы" - список всех доступных пользовательских индикаторов, т. е. программ, написанных на языке MetaQuotes Language 4 и реализующих функцию индикатора. "Скрипты" - библиотеки пользовательских функций, предназначенные для хранения часто используемых блоков пользовательских программ.
Полная версия статьи
Категория: Советники форекс


OrdersTotal(): количество открытых позиций и неудаленных отложенных ордеров

OrdersTotal(): количество открытых позиций и неудаленных отложенных ордеров В предыдущей статье мы узнали о функции OrderSelect(), с помощью которой можно выбрать ордер или позицию для получения в дальнейшем дополнительной информации об этом ордере или позиции. Мы увидели, что выбрать ордер можно двумя способами: По номеру тикера; По порядковому номеру ордера/позиции в списке. Если мы выбираем ордер или позицию по порядковому номеру ордера/позиции в списке открытых позиций и неудаленных отложенных ордеров, то бывает очень полезно знать общее количество открытых позиций и неудаленных ордеров. В этом нам поможет функция OrdersTotal(). Формат функции OrdersTotal(): int OrdersTotal() Функция возвращает количество открытых позиций и неудаленных ордеров. Пример использования этой функции мы возьмем из предыдущего выпуска, когда мы "пробежались" по всем открытым позициям и неудаленным отлоежнным ордерам: int pos; int total = OrdersTotal(); for ( pos = 0; pos«total; pos++ ) { if (OrderSelect(pos…
Полная версия статьи
Категория: Советники форекс


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

HistoryTotal(): количество закрытых позиций и удаленных ордеров В выпуске про OrderSelect() - функцию выбора ордера или позиции - мы узнали, что можно также выбрать закрытую позицию или удаленный отложенный ордер, указав в качестве параметра select значение SELECT_BY_POS, а в качестве pool - MODE_HISTORY. В качестве первого параметра (index) функции OrderSelect() в этом случае указывается номер позиции/ордера в этом списке. Зачастую, чтобы найти нужную нам позицию, приходится "пробежаться" по всему списку. Для этого нам нужно знать общее количество позиций и ордеров в списке закрытых позиций и удаленных отложенных ордеров. В этом нам поможет функция HistoryTotal(). Формат функции HistoryTotal(): int HistoryTotal () Эта функция возвращает количество закрытых позиций или удаленных отложенных ордеров, которые загруженны в клиентском терминале MetaTrader 4 в соответствии с текущими настройками вкладки "История счета". Пример использования HistoryTotal(): В следующих выпусках будет рассказано, какую информацию мы можем получить после выделения позиции или ордера с помощью функции OrderSelect().
Полная версия статьи
Категория: Советники форекс


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

Выбор ордера или позиции с помощью OrderSelect() В предыдущей статье был приведен полный перечень торговых функций, которые можно использовать в эксперте. Как Вы уже, наверное, успели заметить, подавляющее большинство этих функций позволяет получить какую-то информацию об ордере или позиции, которые были предварительно выбраны с помощью функции OrderSelect(). Формат функции OrderSelect(): Как мы видим, функция возвращает значение логического типа: true - когда ордер или позиция были успешно выбраны, false - в случае какой-то ошибки. Код этой ошибки можно получить впоследствии с помощью функции GetLastError(). Ордер/позицию можно выбрать двумя способами: По номеру тикера; По порядковому номеру ордера/позиции в списке. Если Вы знаете тикер ордера или позиции, то в качестве параметра select надо передать значение SELECT_BY_TICKET, а в качестве параметра index - номер тикера ордера или позиции. Третий параметр в этом случае не используется и его можно опустить.
Полная версия статьи
Категория: Советники форекс


Прыг: 02 03 04 05 06 07 08 09 10 11
Скок: 10

Есть что сказать? Не стесняйтесь!






Видео по теме:




В мире больших денег

  • Самые богатые люди
    планеты. Ежегодные рейтинги FORBS. Истории успеха признаных финансовых гуру
  • Самые дорогие вещи:
    Часы, автомобили, ноутбуки стоимотью в десятки и сотни тысяч долларов. Рубрика "Чтоб я так жил"
  • Денежные прогнозы
    Что покупать и что продавать? Периодические прогнозы цен на иностранные валюты, акции крупнейших компаний и драгоценные металлы

ВКонтакте с деньгами

УГОЛОК АДМИНИСТРАТОРА