Эта функция возвращает цену открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает цену открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
double r=0;
int 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=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
Эта функция возвращает цену открытия последней закрытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 03.06.2008 |//| Описание : Возвращает цену открытия последней закрытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenLastClosePos(string sy="", int op=-1, int mn=-1) {
datetime t;
double r=0;
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
Эта функция возвращает цену открытия ближайшей позиций. В качестве критерия "близости" позиции выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 04.06.2008 |//| Описание : Возвращает цену открытия ближайшей позиции. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenNearPos(string sy="", int op=-1, int mn=-1) {
double mi, oop=0, p;
int i, k=OrdersTotal(), pp=0;
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) {
if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
p=MarketInfo(OrderSymbol(), MODE_POINT);
if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
pp=MathAbs(OrderOpenPrice()-mi)/p;
oop=OrderOpenPrice();
}
}
}
}
}
}
return(oop);
}
Эта функция возвращает тикет ближайшей к рынку позиции. В качестве критерия "близости" позиции выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 05.06.2008 |//| Описание : Возвращает тикет ближайшей к рынку позиции по цене открытия. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int TicketNearPos(string sy="", int op=-1, int mn=-1) {
double mi, p;
int i, k=OrdersTotal(), pp=0, ti=0;
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) {
if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
p=MarketInfo(OrderSymbol(), MODE_POINT);
if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
pp=MathAbs(OrderOpenPrice()-mi)/p;
ti=OrderTicket();
}
}
}
}
}
}
return(ti);
}
Эта функция возвращает тип (0-Buy, 1-Sell) ближайшей к рынку позиции по цене открытия или -1. В качестве критерия "близости" позиции выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.06.2008 |//| Описание : Возвращает тип ближайшей к рынку позиции или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int TypeNearPos(string sy="", int op=-1, int mn=-1) {
double mi, p;
int i, k=OrdersTotal(), pp=0, ty=-1;
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) {
if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
p=MarketInfo(OrderSymbol(), MODE_POINT);
if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
pp=MathAbs(OrderOpenPrice()-mi)/p;
ty=OrderType();
}
}
}
}
}
}
return(ty);
}
Эта функция возвращает время открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает время открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime TimeOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int 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=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(t);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.06.2008 |//| Описание : Выполняет пузырьковую сортировку элементов массива. |//+----------------------------------------------------------------------------+//| Параметры: |//| a - массив элементов |//+----------------------------------------------------------------------------+void BubbleSort(double& a[]) {
double t;
int i, j, n=ArraySize(a);
for (i=n-1; i>0; i--) {
for (j=0; j<i; j++) {
if (a[j]>a[j+1]) {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
Эта функция возвращает количество баров между двумя последними фракталами или -1. Рыночный инструмент и таймфрейм, с которых нужно взять фракталы задаются параметрами:
sy - Наименование рыночного инструмента. Значение по умолчанию - "" или NULL означает текущий рыночный инструмент.
tf - Таймфрейм (количество минут в баре). Значение по умолчанию 0 - означает текущий таймфрейм.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.06.2008 |//| Описание : Возвращает количество баров между двумя последними фракталами. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//+----------------------------------------------------------------------------+int BarsBetweenLastFractals(string sy="", int tf=0) {
double fu=0, fd=0;
int i, nu=0, nd=0;
if (sy=="" || sy=="0") sy=Symbol();
for (i=2; i<100; i++) {
fu=iFractals(sy, tf, MODE_UPPER, i);
if (fu!=0) {
if (nu==0) nu=i;
}
fd=iFractals(sy, tf, MODE_LOWER, i);
if (fd!=0) {
if (nd==0) nd=i;
}
if (nu>0 && nd>0) return(MathAbs(nu-nd));
}
Print("BarsBetweenLastFractals(): Фракталы не найдены");
return(-1);
}
Функция SecondsAfterCloseLastPos().
Эта функция возвращает количество секунд после закрытия последней позиций. Отбор учитываемых позиций задаётся параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после закрытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterCloseLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return(TimeCurrent()-t);
}
Эта функция возвращает количество секунд после открытия последней позиций. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после открытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int 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=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(TimeCurrent()-t);
}
Функция DeleteOppositeOrders().
Эта функция удаляет один или несколько ордеров, противоположных позиции, тип которой указывается в параметре op. Например, позиции Buy противоположными будут ордера SellLimit и SellStop. Удаление противоположного ордера становится необходимым, например, при установке двух противоположных ордеров и при сработке одного из них.
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 16.06.2008 |//| Описание : Удаление ордеров, противоположных позиции |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+void DeleteOppositeOrders(string sy="", int op=-1, int mn=-1) {
bool eb, es;
switch (op) {
case OP_BUY : eb=ExistPositions(sy, OP_BUY , mn); break;
case OP_SELL: es=ExistPositions(sy, OP_SELL, mn); break;
default: eb=ExistPositions(sy, OP_BUY , mn);
es=ExistPositions(sy, OP_SELL, mn); break;
}
if (eb) {
DeleteOrders(sy, OP_SELLLIMIT, mn);
DeleteOrders(sy, OP_SELLSTOP , mn);
}
if (es) {
DeleteOrders(sy, OP_BUYLIMIT, mn);
DeleteOrders(sy, OP_BUYSTOP , mn);
}
}
Эта функция выполняет поиск элемента массива по значению типа double и возвращает индекс найденного элемента или -1. Функция находит только один элемент и при положительном результате прекращает поиск.
m - Массив, в котором выполняется поиск элемента.
e - Значение типа double, которое нужно найти в массиве m.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Выполняет поиск элемента массива по значению |//| и возвращает индекс найденного элемента или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| e - значение элемента |//+----------------------------------------------------------------------------+int ArraySearchDouble(double& m[], double e) {
for (int i=0; i<ArraySize(m); i++) {
if (m[i]==e) return(i);
}
return(-1);
}
Функция ArraySearchInt().
Эта функция выполняет поиск элемента массива по значению типа int и возвращает индекс найденного элемента или -1. Функция находит только один элемент и при положительном результате прекращает поиск.
m - Массив элементов типа int, в котором выполняется поиск.
e - Значение типа int, которое нужно найти в массиве m.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Выполняет поиск элемента массива по значению |//| и возвращает индекс найденного элемента или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| e - значение элемента |//+----------------------------------------------------------------------------+int ArraySearchInt(int& m[], int e) {
for (int i=0; i<ArraySize(m); i++) {
if (m[i]==e) return(i);
}
return(-1);
}
Функция ArraySearchString().
Эта функция выполняет поиск элемента массива по значению типа string и возвращает индекс найденного элемента или -1. Функция находит только один элемент и при положительном результате прекращает поиск.
m - Массив элементов типа string, в котором выполняется поиск.
e - Значение типа string, которое нужно найти в массиве m.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 04.03.2008 |//| Описание : Выполняет поиск элемента массива по значению |//| и возвращает индекс найденного элемента или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| e - значение элемента |//+----------------------------------------------------------------------------+int ArraySearchString(string& m[], string e) {
for (int i=0; i<ArraySize(m); i++) {
if (m[i]==e) return(i);
}
return(-1);
}
Эта функция возвращает размер лота последней закрытой позиции или -1. Отбор учитываемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 16.06.2008 |//| Описание : Возвращает размер лота последней закрытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double GetLotLastClosePos(string sy="", int op=-1, int mn=-1) {
datetime o;
double l=-1;
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (o<OrderCloseTime()) {
o=OrderCloseTime();
l=OrderLots();
}
}
}
}
}
}
}
return(l);
}
x - Массив элементов типа double, в котором выполняется поиск максимального по значению элемента.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 17.05.2008 |//| Описание : Возвращает значение максимального элемента массива. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив значений числового ряда |//+----------------------------------------------------------------------------+double ArrayMax(double& x[]) {
if (ArraySize(x)>0) return(x[ArrayMaximum(x)]);
else {
Print("ArrayMax(): Массив пуст!");
return(0);
}
}
Функция PriceOpenLastPos().
Эта функция возвращает цену открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
Функция PriceOpenLastClosePos().
Эта функция возвращает цену открытия последней закрытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
Функция PriceOpenNearPos().
Эта функция возвращает цену открытия ближайшей позиций. В качестве критерия "близости" позиции выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. Отбор учитываемых позиций задаётся внешними параметрами:
Функция TicketNearPos().
Эта функция возвращает тикет ближайшей к рынку позиции. В качестве критерия "близости" позиции выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. Отбор учитываемых позиций задаётся внешними параметрами:
Функция TypeNearPos().
Эта функция возвращает тип (0-Buy, 1-Sell) ближайшей к рынку позиции по цене открытия или -1. В качестве критерия "близости" позиции выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. Отбор учитываемых позиций задаётся внешними параметрами:
Функция TimeOpenLastPos().
Эта функция возвращает время открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
Функция BarsBetweenLastFractals().
Эта функция возвращает количество баров между двумя последними фракталами или -1. Рыночный инструмент и таймфрейм, с которых нужно взять фракталы задаются параметрами:
Функция SecondsAfterCloseLastPos().
Эта функция возвращает количество секунд после закрытия последней позиций. Отбор учитываемых позиций задаётся параметрами:
Функция SecondsAfterOpenLastPos().
Эта функция возвращает количество секунд после открытия последней позиций. Отбор учитываемых позиций задаётся внешними параметрами:
Функция DeleteOppositeOrders().
Эта функция удаляет один или несколько ордеров, противоположных позиции, тип которой указывается в параметре op. Например, позиции Buy противоположными будут ордера SellLimit и SellStop. Удаление противоположного ордера становится необходимым, например, при установке двух противоположных ордеров и при сработке одного из них.
Функция ArraySearchDouble().
Эта функция выполняет поиск элемента массива по значению типа double и возвращает индекс найденного элемента или -1. Функция находит только один элемент и при положительном результате прекращает поиск.
Функция ArraySearchInt().
Эта функция выполняет поиск элемента массива по значению типа int и возвращает индекс найденного элемента или -1. Функция находит только один элемент и при положительном результате прекращает поиск.
Функция ArraySearchString().
Эта функция выполняет поиск элемента массива по значению типа string и возвращает индекс найденного элемента или -1. Функция находит только один элемент и при положительном результате прекращает поиск.
Функция GetLotLastClosePos().
Эта функция возвращает размер лота последней закрытой позиции или -1. Отбор учитываемых позиций задаётся внешними параметрами:
Функция ArrayMax().
Эта функция возвращает значение максимального элемента массива.