Как заработать деньги. Проект сам себе финансист.
май 2011
пн вт ср чт пт сб вс
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 31
Главная » » »

Торговые стратегии на рынке Форекс

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

  • Технические торговые стратегии Форекс
  • Аналитические торговые стратегии Форекс
  • Механические торговые стратегии Форекс
  • Анализ торговых систем Форекс
  • Создание своей торговой стратегии
  • Идеальная торговая стратегия существует?

Хомячковый рай. Уйти и потеряться:

OrderOpenPrice() - получение информации о цене открытии позиции или цене отложенного ордера

В данной статье будет рассмотрена функция OrderOpenPrice(). В качестве практического примера применения этой функции рассмотрим установку и управление трейлинг стопом.

Напомню, что Trailing Stop (трейлинг стоп) – это алгоритм управления уровнем Stop Loss ордера. После выставления трейлинг-стопа (например, на Х пипсов) происходит следующее:

  • MetaTrader не предпринимает никаких действий до того момента, пока по открытой позиции не образуется прибыль в Х пипсов. После этого MetaTrader выставляет Stop Loss ордер на расстоянии Х пипсов от текущей цены (в данном случае - на уровне безубыточности).
  • После выполнения первого шага MetaTrader посылает команду на изменение уровня Stop Loss ордера на расстояние Х пипсов от текущей котировки каждый раз, когда расстояние между ней и старым уровнем ордера превысит Х пипсов. В результате этого Stop Loss ордер "подтягивается" к текущей цене.

Реализуем этот принцип на языке MetaQuotes Language 4. Будем полагать, что открытая позиция уже выбрана и мы точно знаем, что эта позиция открыта по инструменту, к которому прикреплен эксперт. Также предположим, что значение трейлинг стопа в пипсах содержится в переменной TrailingStop.

 int err; if (OrderType() == OP_BUY) { // позиция на покупку if ((Bid-OrderOpenPrice())>=(TrailingStop*Point)) { // выставляем Stop Loss if (OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point, OrderTakeProfit(), 0)) Print("#", OrderTicket(),": trailing stop ", Bid-TrailingStop*Point); else { err = GetLastError(); Print("#", OrderTicket(),": trailing stop error ", err); } } } else { // позиция на продажу if ((OrderOpenPrice()-Ask)>=(TrailingStop*Point)) { // выставляем Stop Loss if (OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point, OrderTakeProfit(), 0)) Print("#", OrderTicket(),": trailing stop ", Ask+TrailingStop*Point); else { err = GetLastError(); Print("#", OrderTicket(),": trailing stop error ", err); } } } 

Прежде всего нас интересует новая функция OrderOpenPrice():

 double OrderOpenPrice() 

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

В этом коде Вам могут быть непонятны еще несколько функций:

  • OrderTicket() - возвращает тикер выделенного функцией OrderSelect() ордера или позиции;
  • Bid - Bid последней котировки по инструменту, к которому прикреплен эксперт;
  • Ask - Ask последней котировки по инструменту, к которому прикреплен советник;
  • Point - размер пункта текущего инструмента в валюте котировки (для EURUSD это 0.0001, для USDJPY - 0.01 и т. д.).

В следующей статье будет рассказано о функции OrderTicket().



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:

OrderCloseTime() - время закрытия позиции

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

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

 datetime OrderCloseTime() 

Функцию можно вызвать после того, как ордер или позиция были предварительно выбраны с помощью функции OrderSelect().

Возвращает дату и время закрытия позиции или ордера:

  • Если позиция открыта, то возвращает 0 (ноль).
  • Если позиция закрыта, то возвращает дату и время закрытия позиции.
  • Если отложенный ордер удален, то возвращает дату и время удаления ордера.
  • Если отложенный ордер еще не удален, то возвращает 0 (ноль).

Исходя из этих правил нам надо проверить время закрытия выделенной позиции. Если оно равно нулю, то это открытая позиция и нам надо сообщить об ошибке:

 
//---- выбираем ордер/позицию с тикером 77777 if ( OrderSelect (77777, SELECT_BY_TICKET) == true) { 
// это позиция, а не отложеный ордер? 
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL)) { 
// это закрытая позиция, а не открытая? 
if ( OrderCloseTime() != 0 ) { 
if ( ((OrderClosePrice() <= orderstoploss()) && (ordertype() == op_buy)) || ((ordercloseprice() >= OrderStopLoss()) && (OrderType() == OP_SELL)) ) { 
// позиция закрылась по Stop Loss 
// ... 
} else { 
// позиция закрылась по Take Profit 
// ... 
} } 
else Print("Ошибка: это не закрытая позиция, а открытая"); } 
else Print("Ошибка: это не закрытая позиция, а отложенный ордер"); } 
else Print("OrderSelect() вернул ошибку - ",GetLastError()); 

То, что это не может быть отложенный ордер, мы уже проверили (см. прошлый выпуск).

Теперь наш пример по определению типа ордера, по которому была закрыта позиция, стал содержать на одну ошибку меньше, но по-прежнему остается небезгрешным. Мы почему-то с первых строчек кода безусловно верим в тот факт, что позиция закрыта именно по Stop Loss или Take Profit ордера. А если нет?

Об этом мы поговорим в следующей статье, когда будем рассматривать функцию OrderTakeProfit().



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:


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






Последние статьи:

Выгодные «исламские счета» для трейдеров Форекс Выгодные «исламские счета» для трейдеров Форекс Таким образом, вне зависимости от стиля работы стоит использовать «исламские счета» и сотрудничать с компаниями, которые не берут с трейдеров swap-комиссии. ..
2014-09-29
Стоит ли покупать чужие торговые сигналы и прогнозы? Стоит ли покупать чужие торговые сигналы и прогнозы? И все же основным нашим советом станет отказ от покупки торговых сигналов и прогнозов. Куда лучше научиться анализировать валютный рынок и думать всегда только своей головой. ..
2015-02-12

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




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

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

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

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