Каков вопрос ....
=============
NumberOfOrders - Возвращает количество ордеров.
https://www.mql5.com/ru/forum/131859
if ( (наступило некое событие) && NumberOfOrders(NULL,OP_BUYLIMIT, -1)<N ) { //если наступило событие // и число выставленных бай-лим. ордеров всё ещё меньше заданнОго значения N, - //то выставляем еще один ордер: OrderSend( .... .... .... ); //выставляем ордер функцией OrderSend }
Каков вопрос ....
=============
NumberOfOrders - Возвращает количество ордеров.
Каков вопрос ....
=============
NumberOfOrders - Возвращает количество ордеров.
спасибо.
но у меня эдитор не подсвечивает NumberOfOrders... как будто это просто текст, а не функция... что я делаю неправильно?
изложу конкретней, что хочу:
if(Bid==price)
{
OrderClose(ticket,lot,price,3,CLR_NONE); //закрыть открытый ордер SELL
OrderSend(Symbol(),OP_SELLLIMIT,lot_new,price_tp,3,NULL,NULL,NULL,0,0,Blue); //установить n ордеров OP_SELLLIMIT c объемом lot/n по цене price_tp
OrderSend(Symbol(),OP_SELLSTOP,lot_new,price_sl,3,NULL,NULL,NULL,0,0,Red); //установить n ордеров OP_SELLSTOP c объемом lot/n по цене price_sl
}
при рыночном открытии одних n ордеров - другие удаляются
прошу прощения за то, что напрягаю, но только постигаю mql...:)
спасибо.
но у меня эдитор не подсвечивает NumberOfOrders... как будто это просто текст, а не функция... что я делаю неправильно?
изложу конкретней, что хочу:
if(Bid==price)
{
OrderClose(ticket,lot,price,3,CLR_NONE); //закрыть открытый ордер SELL
OrderSend(Symbol(),OP_SELLLIMIT,lot_new,price_tp,3,NULL,NULL,NULL,0,0,Blue); //установить n ордеров OP_SELLLIMIT c объемом lot/n по цене price_tp
OrderSend(Symbol(),OP_SELLSTOP,lot_new,price_sl,3,NULL,NULL,NULL,0,0,Red); //установить n ордеров OP_SELLSTOP c объемом lot/n по цене price_sl
}
при рыночном открытии одних n ордеров - другие удаляются
прошу прощения за то, что напрягаю, но только постигаю mql...:)
NumberOfOrders() - эту функцию возьмите из ветки "Полезные функции" . Это не встроенная, это пользовательская функция.
if(Bid==price) - такое условие не всегда будет работать, так как Bid может меняться дискретно и если допустим что предыдущее значение Bid меньше price, то следущее может быть больше price.
Примерно так:
int start() {
//------------------ установка ордеров селл-лимит ---------
if (Bid >= price) {// если текущая цена >= заданной
if ( NumberOfOrders(NULL,OP_SELLLIMIT, -1)< N ) {
// и число выставленных бай-лим. ордеров всё ещё меньше заданнОго значения N, -
//то выставляем еще ордера:
OrderSend(Symbol(),OP_SELLLIMIT,lot_new,price_tp,15,0,0,"хи-хи",0,0,Blue);
}// если число выставленных ....
}//если текущая цена >= заданной
//--------------------- конец блока установки селл/лимит ------
... ... ... ...
return(0);
} // конец функции СТАРТ
//====== Пользовательcкие функции ==================
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 28.11.2006 |
//| Описание : Возвращает количество ордеров. |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любой ордер) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ko=0, ot;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if (ot>1 && ot<6) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
if (mn<0 || OrderMagicNumber()==mn) ko++;
} }}} return(ko);}
Аналогично в ф-и СТАРТ распишите и часть кода для установки СЕлл-стопов.
А сама Функция NumberOfPositions() - установлена вне функции СТАРТ
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите пожалуйста, какой функцией мне воспользоваться, чтоб при наступлении события выставлялось несколько отложенников по одной цене и с одним объемом?
Нужно ли создавать массив?