[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 825
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В общих чертах понятно, а что значит if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))break; если не выбран такой-то ордер, то прервать или как?
OrderSelect (см. https://docs.mql4.com/ru/trading/OrderSelect) возвращает FALSE при неудачном завершении функции. Оператор break см. https://docs.mql4.com/ru/basis/operators/break.
Можно упростить до
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
главное ордер выбрать.
А для меня это выглядит, как абсолютно разные вещи. Скажите, а можно в Ваш код вот это вставить if(Tip==OP_BUYSTOP||Tip==OP_SELLSTOP&&Minute()<59&&Minute()>57) OrderDelete(Ticket);
и если да, то в какую часть?
Не видя вашего кода, могу предположить, что вместо (всё зависит от вашего алгоритма):
if(OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket());
if(OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());
if(OrderType()==OP_BUYLIMIT) OrderDelete(OrderTicket());
if(OrderType()==OP_SELLLIMIT) OrderDelete(OrderTicket());
только порядок в переменных надо навести и скобки в условии с || и && правильно расставить.
Условие Minute()<59&&Minute()>57 можно сократить до Minute()==58 или используйте >= или <=
Для принудительного закрытия отложенного ордера в конце периода или в определённое время при его установке можно задавать параметр expiration (срок истечения ордера) - см. https://docs.mql4.com/ru/trading/OrderSend. В этом случае не надо возиться с программированием его закрытия. И закрыт ордер будет однозначно без поправки на отсутствие связи
Да, много полезностей. Я бы и без халявы обошёлся, но уж очень учебник мудрёно написан.
Халява, чуваки! Ёу! Комон эври боди!!!
Наверное, если бы ТАК учебник СК был написан было бы на 6+
Сорри за оффтоп...
Нет, вместо не нужно, нужно в дополнение, я по графику посмотрел: иногда цена не выходит из канала High-Low и отложенные ордера остаются. Только нужно, закрыть отложенные до появления новых, если экспирацией можно это решить - я только за. На счёт книги 1986г Вы серьёзно? Я хоть сам древний, но по моему это перебор.
В дополнение, так надо дополнительный аналогичный код и писать. Мне почему-то кажется, что у Вас с кодом какой-то ералаш получается.
Насчёт книги 1986 года я не пошутил. Повторюсь, если Вы желаете постигнуть азы программирования, то их надо постигать не засоряя себе голову современными языковыми конструкциями. Вам нужны основы. Учебники по информатике для средней школы, особенно первый, методично грамотно составлены для "тупых". Как, кем, для кого и зачем пишутся современные учебники - это отдельная тема
дата время лотов прайс
26 2010.01.05 12:24 sell 12 0.10 1.44026 1.44907 1.43526 0.00 3200.09
28 2010.01.05 13:21 buy 13 0.26 1.44326 1.43445 1.44826 0.00 3200.09
30 2010.01.05 15:34 sell 14 0.43 1.44026 1.44907 1.43526 0.00 3200.09
32 2010.01.05 16:27 buy 15 0.72 1.44326 1.43445 1.44826 0.00 3200.09
34 2010.01.05 17:18 sell 16 1.19 1.44026 1.44907 1.43526 0.00 3200.09
Вот открыто 5 ордеров в соответствующих направлениях.
Как посчитать суммарную маржу по всем открытым ордерам?
Пара: ЕВРОДОЛЛАР, контракт 100000, плечо 100.
дата время лотов прайс
26 2010.01.05 12:24 sell 12 0.10 1.44026 1.44907 1.43526 0.00 3200.09
28 2010.01.05 13:21 buy 13 0.26 1.44326 1.43445 1.44826 0.00 3200.09
30 2010.01.05 15:34 sell 14 0.43 1.44026 1.44907 1.43526 0.00 3200.09
32 2010.01.05 16:27 buy 15 0.72 1.44326 1.43445 1.44826 0.00 3200.09
34 2010.01.05 17:18 sell 16 1.19 1.44026 1.44907 1.43526 0.00 3200.09
Вот открыто 5 ордеров в соответствующих направлениях.
Как посчитать суммарную маржу по всем открытым ордерам?
Пара: ЕВРОДОЛЛАР, контракт 100000, плечо 100.
MarketInfo(Symbol(),MODE_MARGINREQUIRED);
Возвращает размер свободных средств, необходимых для открытия 1 лота на покупку, ну и поглядите иже с ними, в зависимости от вашей необходимости.
Ещё может быть вот это пригодится:
double AccountFreeMarginCheck( string symbol, int cmd, double volume)
Возвращает размер свободных средств, которые останутся после открытия указанной позиции по текущей цене на текущем счете. Если свободных средств не хватает, то будет сгенерирована ошибка 134 (ERR_NOT_ENOUGH_MONEY).Спасибо за быстрый ответ, но я хочу посчитать маржу ДО ТОГО, до того как откроются эти позиции! Стратегия - лавина, необходимо знатьне наступит ли Стоп Аут после открытия соответствующих позиций? Резмеры лотов на все предстоящие лоты известны заранее. Хочется знать: сколько ордеров (с заранее известными нарастающими лотами) можно будет открыть?
Попробуйте что-нибудь высмотреть для себя... :)
И, опять-таки
double AccountFreeMarginCheck( string symbol, int cmd, double volume)
Данную функцию использовал в советнике на заказ, который тоже использует голимый мартингейл.
Для более стабильной его работы перед открытием любой позы писал строчку:
Артем, мне надо самому рассчитать маржу, то есть знасть формулу расчета. Мне не нужен ответ терминала о текущих возможностях. Формулу расчета я собственно знаю, но есть какая-то особенность расчета маржи по перекрываемым позициям.!!! А я не знаю даже, что такое перекрываемые позиции! Специально привел пример, где видно, что позиции каждая последующая открывается в противоположном к предыдущему направлении. Если посчитать маржу по открытым позициям путем суммирования всех лотов (и вставить эту сумму в формулу), то это не совпадает с фактической реакцией ДЦ, когда он применяет СтопАут. Хотел бы считать так как считает ДЦ
Перекрываемые позиции не равно ли локированные? Это маржа требуемая для поддержания двух открытых позиций равного объема, но противоположного направления. Обычно она в два раза меньше, чем маржа, требуемая для поддержания одной открытой позиции того же объема, что и одна из двух локированных.
Я обратил внимание сразу же, но не думал, что это может ввести вас в замешательство...
Для того же советника я считал маржу так, не знаю теперь, может и неверно??? :
Вот это всё, что вам возвращает ДЦ: