Эта функция возвращает время открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
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 - любой магик) |//+----------------------------------------------------------------------------+datetimeTimeOpenLastPos(stringsy="", intop=-1, intmn=-1){datetimet;
inti, 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);
}
ЗЫ. Во вложении скрипт для тестирования функции TimeOpenLastPos().
Prival: Есть ли в закромах функция пузырьковой сортировки
Нету, но забацал за 10 минут
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.06.2008 |//| Описание : Выполняет пузырьковую сортировку элементов массива. |//+----------------------------------------------------------------------------+//| Параметры: |//| a - массив элементов |//+----------------------------------------------------------------------------+voidBubbleSort(double& a[]){doublet;
inti, 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;
}}}}
ЗЫ. Во вложении скрипт для тестирования функции BubbleSort().
Эта функция возвращает количество баров между двумя последними фракталами или -1. Рыночный инструмент и таймфрейм, с которых нужно взять фракталы задаются параметрами:
sy - Наименование рыночного инструмента. Значение по умолчанию - "" или NULL означает текущий рыночный инструмент.
tf - Таймфрейм (количество минут в баре). Значение по умолчанию 0 - означает текущий таймфрейм.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.06.2008 |//| Описание : Возвращает количество баров между двумя последними фракталами. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//+----------------------------------------------------------------------------+intBarsBetweenLastFractals(stringsy="", inttf=0){doublefu=0, fd=0;
inti, 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);
}
ЗЫ. Во вложении скрипт для тестирования функции BarsBetweenLastFractals().
Эта функция возвращает количество секунд после закрытия последней позиций. Отбор учитываемых позиций задаётся параметрами:
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 - любой магик) |//+----------------------------------------------------------------------------+datetimeSecondsAfterCloseLastPos(stringsy="", intop=-1, intmn=-1){datetimet;
inti, 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);
}
P.S. Во вложении скрипт для тестирования функции SecondsAfterCloseLastPos().
Сначала возьми в этой ветке функцию количества ордеров, а потом, если она вернет "== 1", "< 2" или "== нечетное число", то вызови функцию из этой ветки "закрыть ордера".
Сначала возьми в этой ветке функцию количества ордеров, а потом, если она вернет "== 1", "< 2" или "== нечетное число", то вызови функцию из этой ветки "закрыть ордера".
Функция количества ордеров не подойдет, т.к. для каждой пары тотже советник настроен по своему. И ставит ордера бывает по разным парам одновременно. Тогда получится если по двум парам поставлено четыре ордера, и один сработал, три удалятся. а надо чтоб удалялся противоположный для каждой
Функция TimeOpenLastPos().
Эта функция возвращает время открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
- sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
- op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
- mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
ЗЫ. Во вложении скрипт для тестирования функции TimeOpenLastPos().Есть ли в закромах функция пузырьковой сортировки
Нету, но забацал за 10 минут
ЗЫ. Во вложении скрипт для тестирования функции BubbleSort().Функция BarsBetweenLastFractals().
Эта функция возвращает количество баров между двумя последними фракталами или -1. Рыночный инструмент и таймфрейм, с которых нужно взять фракталы задаются параметрами:
- sy - Наименование рыночного инструмента. Значение по умолчанию - "" или NULL означает текущий рыночный инструмент.
- tf - Таймфрейм (количество минут в баре). Значение по умолчанию 0 - означает текущий таймфрейм.
ЗЫ. Во вложении скрипт для тестирования функции BarsBetweenLastFractals().Функция SecondsAfterCloseLastPos().
Эта функция возвращает количество секунд после закрытия последней позиций. Отбор учитываемых позиций задаётся параметрами:
- sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
- op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
- mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
P.S. Во вложении скрипт для тестирования функции SecondsAfterCloseLastPos().Здраствуйте
Помогите советом.
Есть советник который выставляет ордера в обе стороны в определенное время
Обьясните на пальцах как сделать чтоб при срабатывании первого, автоматически удалялся второй
Или подправте советник
Спасибо
Здраствуйте
Помогите советом.
Есть советник который выставляет ордера в обе стороны в определенное время
Обьясните на пальцах как сделать чтоб при срабатывании первого, автоматически удалялся второй
Или подправте советник
Спасибо
KimIV
Игорь. А у тебя пальцев хватит?
Здраствуйте
Помогите советом.
Есть советник который выставляет ордера в обе стороны в определенное время
Обьясните на пальцах как сделать чтоб при срабатывании первого, автоматически удалялся второй
Или подправте советник
Спасибо
Сначала возьми в этой ветке функцию количества ордеров, а потом, если она вернет "== 1", "< 2" или "== нечетное число", то вызови функцию из этой ветки "закрыть ордера".
KimIV
Игорь. А у тебя пальцев хватит?
Наверно, нет... у мну токо два: указательный и хватательный... гы
Сначала возьми в этой ветке функцию количества ордеров, а потом, если она вернет "== 1", "< 2" или "== нечетное число", то вызови функцию из этой ветки "закрыть ордера".
Функция количества ордеров не подойдет, т.к. для каждой пары тотже советник настроен по своему. И ставит ордера бывает по разным парам одновременно. Тогда получится если по двум парам поставлено четыре ордера, и один сработал, три удалятся. а надо чтоб удалялся противоположный для каждой