Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 988

 
borilunad:
Eсли бы такими скрупулёзными, как Вы, были ДЦешники в своём сервисе!
Поверьте, это не важно. :)
 

Возможно ли програмно запросить у ДЦ допустимый лимит количества сделок?

Есть такая ошибка:

148

ERR_TRADE_TOO_MANY_ORDERS

Количество открытых и отложенных ордеров достигло предела, установленного брокером


и есть:

ACCOUNT_LIMIT_ORDERS

Максимально допустимое количество действующих отложенных ордеров (0-ограничений нет)


Это не совсем то, что нужно.

Нужен первый вариант, но не в виде ошибки.

Ошибку, конечно, по факту ДЦ пришлёт, но хотелось бы как-то заранее учесть. Можно руками выставлять, но напрягать пользователя выяснять и выставлять - это не самый удобный вариант.

Честно говоря, я даже в пятой версии не нашёл нужного параметра.

 
mt4trade:
Допустим, есть уже установленный отложенный ордер.
По индикатору двигаем его цену.
В один прекрасный момент ордер не может быть модифицирован, т.к. новая расчетная цена для него попала в запретный диапазон из-за стоплевелов, типа Ask/Bid +/- MarketInfo(Symbol(), MODE_STOPLEVEL / MODE_FREEZELEVEL) .

Но ордер непременно нужно открыть, уже "по рынку".

Что в этом случае можно сделать?

Удалить отложенный и открыть по рынку новый?

Или можно как-то отложенник превратить в открытый?

Отложенник в открытый "превратить" нельзя. Можно только войти по рынку.

Вы всё верно описали: нужно удалить отложенный (или лимитный) и войти в сделку по рынку.

Кому что близко - можете на это внимание не обращать. Если лично Вам необходимо через "правое ухо" что-то сделать, делайте. Каждый трейдер получает прибыль от своих решений.

 
Chiripaha:

Возможно ли програмно запросить у ДЦ допустимый лимит количества сделок?

...

Попробуйте AccountInfoInteger(). Для примера скрипт:

#property strict

void OnStart()
  {
   long amount=AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
   Print("Максимальное кол-во отложенных ордеров (0-ограничений нет) = ",IntegerToString(amount));
  }
 
digital:

Почему при отладке индикатора отладчик "падает" (т.к. идет доступ за границы массива), но в то же время на графике все рисуется нормально?

МТ4 билд 950, Альпари демка.

Индикатор во вложении. 

Юрий, Вы не по адресу задаёте данный вопрос, т.к. у данного индикатора есть конкретный автор, у которого, видимо, Вы его и скачали: https://www.mql5.com/en/code/7116

Будет абсолютно корректно и более верно задать именно ему эти уточняющие вопросы. Он Вам более оперативно и точно ответит. На английский свой вопрос можете через Гугл перевести: https://translate.google.ru/

 
paladin80:

Попробуйте AccountInfoInteger(). Для примера скрипт:

Я уже пробовал - он выдает лимит количества отложенных ордеров, но никак не лимит количества сделок. А мне нужно именно количество сделок. У разных брокеров это разное кол-во на разных типах счетов, поэтому возникает необходимость запрашивать лимиты.
 
Chiripaha:
Я уже пробовал - он выдает лимит количества отложенных ордеров, но никак не лимит количества сделок. А мне нужно именно количество сделок. У разных брокеров это разное кол-во на разных счетах, поэтому возникает необходимость запрашивать лимиты.
Понятно. Т.е. надо узнать сколько максимально можно иметь открытых позиций?
 
paladin80:
Понятно. Т.е. надо узнать сколько максимально можно иметь открытых позиций?
Да. Именно сделок. Правда, как я понял из описания 148-й ошибки, брокер учитывает и сделки и отложенные (лимитные) ордера. Но в моем случае отложек нет, т.к. вхожу по рынку, поэтому речь о сделках.
 
Chiripaha:
Да. Именно сделок. Правда, как я понял из описания 148-й ошибки, брокер учитывает и сделки и отложенные (лимитные) ордера. Но в моем случае отложек нет, т.к. вхожу по рынку, поэтому речь о сделках.

1) Меня эта тема очень сильно тоже заинтересовала и провёл эсперимент. Есть у меня демка на MetaQuotes-Demo, с помощью скрипта, который я написла выше, нашёл, что макс. кол-во ордеров (как я понимаю и открытых и отложенных, их сумма) на этом сервере = 200. Руками открыл 200 позиций, а вот при попытке открыть 201 позицию выскочила ошибка: 2015.12.29 08:27:02.029    '7363947': order #0 sell 0.01 EURUSD at 1.09650 failed [Too many open orders].

2) Из 200 отрытых позиций закрыл 2. Создал 2 отложенника, и 3-ий отложенник не удалось открыть. Также не смог открыть новую позицию. Т.е. 198 открытых позиций + 2 отложенника = лимит на любого типа ордера.

Так что прихожу к выводу, что ACCOUNT_LIMIT_ORDERS показывает макс. кол-во всех ордеров на данном сервере, в том числе и для позиций.
 
paladin80:

1) Меня эта тема очень сильно тоже заинтересовала и провёл эсперимент. Есть у меня демка на MetaQuotes-Demo, с помощью скрипта, который я написла выше, нашёл, что макс. кол-во ордеров (как я понимаю и открытых и отложенных, их сумма) на этом сервере = 200. Руками открыл 200 позиций, а вот при попытке открыть 201 позицию выскочила ошибка: 2015.12.29 08:27:02.029    '7363947': order #0 sell 0.01 EURUSD at 1.09650 failed [Too many open orders].

2) Из 200 отрытых позиций закрыл 2. Создал 2 отложенника, и 3-ий отложенник не удалось открыть. Также не смог открыть новую позицию. Т.е. 198 открытых позиций + 2 отложенника = лимит на любого типа ордера.

Так что прихожу к выводу, что ACCOUNT_LIMIT_ORDERS показывает макс. кол-во всех ордеров на данном сервере, в том числе и для позиций.

Возможно, что у Метаквотов лимит отложек и сделок совпадают по кол-ву. Но реально это разные параметры. ACCOUNT_LIMIT_ORDERS показывает (по моим экспериментам) кол-во отложек. Я задавал запросы программно и не пробовал достичь лимита. Делал на примере Альпари нано-счет. У них лимит сделок 100 штук. А ACCOUNT_LIMIT_ORDERS - показывает лимит 47. Как я понял, - это именно отложенные ордера, поскольку абсолютно точно можно открыть 100 сделок (спецификация нано-счета). На стандартном счёте в Альпари можно открывать 500 сделок. А с большими деньгами (не помню кол-во) лимита нет. Но! на кол-во сделок, а не отложек, что правильно, т.к. иначе можно ДДОС атаку делать - забомбить брокера отложками - у него сервер свалится 1 млн отложек обрабатывать.

Кстати, в тестере стратегий лимит не срабатывает. Поэтому пробовать либо на демке, либо на реале.