Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1258
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый вечер. Как должен выглядеть код, который выбирает самый последний закрытый ордер. Неужели вот так: "OrderSelect(OrdersHistoryTotal, SELECT_BY_POS, MODE_HISTORY"?
Вот так должен примерно выглядеть ваш блок:
int a=-1;
for(int is=OrdersHistoryTotal(); is>=0; is--)
{
if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY))
{
if(OrderType()==OP_BUY) {a=OrderType(); break;}
if(OrderType()==OP_SELL){a=OrderType(); break;}
}
}
if(a==OP_BUY) Comment("Найден закрытый последний в списке ордер на покупку.");
if(a==OP_SELL) Comment("Найден закрытый последний в списке ордер на продажу.");
Читал давно, что нет гарантии в хронологическом расположении ордеров в OrdersHistoryTotal, и нужно проверять по дате закрытия.
@Valerius, вставить как код религия не позволяет? Или чего не хватает?
@Valerius, вставить как код религия не позволяет? Или чего не хватает?
А вот по человечески можно было сделать так, что бы можно было вставлять код как код в редакторе МТ?
Ни одна ваша кнопка у меня так не работает, как надо.
А вот по человечески можно было сделать так, что бы можно было вставлять код как код в редакторе МТ?
Ни одна ваша кнопка у меня так не работает, как надо.
Можно по хитрому. Скопировать из любого кода что угодно и вставить. И туда вставить свой код. Минус не работает подсветка при таком способе))))
По первому вопросу нужно сделать такую функцию:
{Print( "Error when order select ", GetLastError());}
По второму вопросу, должна быть такая запись:
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(nameSym,MODE_ASK)), 3, clrNONE);
Удачи.
Спасибо! по первому вопросу все сработало как надо
по второму - некорректное количество параметров. Исправил так - OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
только теперь не совсем понял редакцию с первого моего варианта (я его скопировал откуда то ) ...
Может кто-нибудь толково объяснить принцип работы trailing take profi? Про Трейлинг Стоп инфа имеется в справке по MT5, а про Трейлинг Профит инфы нет. Когда я выставляю в советнике "Stop Loss trailing level (in points)", например, равным 100, то понимаю, что трал активируется, когда цена пройдет в нужном направлении 100 пунктов. Но что значит, к примеру, "Take Profit trailing level (in points)" = 10?
Здравствуйте!
Может кто-нибудь толково объяснить принцип работы trailing take profi? Про Трейлинг Стоп инфа имеется в справке по MT5, а про Трейлинг Профит инфы нет. Когда я выставляю в советнике "Stop Loss trailing level (in points)", например, равным 100, то понимаю, что трал активируется, когда цена пройдет в нужном направлении 100 пунктов. Но что значит, к примеру, "Take Profit trailing level (in points)" = 10?
TakeProfit исчисляется в пунктах, а ТрейлингТейкПрофит в валюте депозита. ТрейлингТейкПрофит прибыль в валюте депозита с одного или нескольких ордеров и ставит стопы ордеров в определенной в настройках сумме, то есть на вычисленном расстоянии.
Например в настройках указан ТрейлингТейкПрофит в 100 баксов. Как только цена наберет профитов в 100 баксов и уйдет дальше, программа вычисляет расстояние, соответствующее 100 баксам и выставляет все стоплоссы ордеров в рассчитанном месте, если это позволяет. Как только цена откатит до стоплосов, то все ордера закроются. В принципе это тот же самый ТрейлинСтоп, только расчет в валюте депо и тралит прибыль. Возможно где-то ошибся, но принцип таков. Надеюсь разъяснил.