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

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

Функция ExistOPNearMarket().

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

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

  if (sy=="" || sy=="0") sy=Symbol();
  double p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if ((OrderSymbol()==sy) && (op<0 || ot==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (ot==OP_BUY || ot==OP_BUYLIMIT || ot==OP_BUYSTOP) {
            if (MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())<ds*p) return(True);
          }
          if (ot==OP_SELL || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
            if (MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))<ds*p) return(True);
          }
        }
      }
    }
  }
  return(False);
}
Категория: Все функции от KimIV | Добавил: xrust
Просмотров: 2566 | Загрузок: 426 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Используются технологии uCoz
Форма входа
Поиск
Друзья сайта
Локирующий пипсовщик
Статистика

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