Пятница, 19.04.2024, 08:19
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Индикаторы [3]
Советники [0]
Книги и материалы по форексу [3]
Все функции от KimIV [21]
Здесь собраны функции от KimIV опубликованные на форуме МКЛ и на сайте KimIV
 Каталог файлов
Главная » Файлы » Из инета » Все функции от KimIV

Функция ExistPosByPrice().
[ Скачать с сервера (4.0 Kb) ] 12.08.2008, 04:41

Функция ExistPosByPrice().

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

  • sy - Наименование рыночного инструмента. Если задать этот параметр, то функция проверит позиции только заданного инструмента. Значение по умолчанию "" означает любой рыночный инструмент. NULL означает текущий инструмент.
  • op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
  • mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
  • pp - Цена открытия позиции. Значение по умолчанию 0 означает любую цену.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг существования позиций по цене открытия         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - торговая операция          (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    pp - цена                       ( 0   - любая цена)                     |
//+----------------------------------------------------------------------------+
bool ExistPosByPrice(string sy="", int op=-1, int mn=-1, double pp=0) {
  double px, py;
  int    d, i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            d=MarketInfo(OrderSymbol(), MODE_DIGITS);
            px=NormalizeDouble(pp, d);
            py=NormalizeDouble(OrderOpenPrice(), d);
            if (pp<=0 || px==py) return(True);
          }
        }
      }
    }
  }
  return(False);
}
Категория: Все функции от KimIV | Добавил: xrust
Просмотров: 2733 | Загрузок: 502 | Комментарии: 4 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Используются технологии uCoz
Форма входа
Поиск
Друзья сайта
Локирующий пипсовщик
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0