[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1050
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
подскажите как написат условие- if(ordershistorytotal()"пополнилос на один ордер")???
подскажите как написат условие- if(ordershistorytotal()"пополнилос на один ордер")???
Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.
спасибо!!!
Помогите пожалуйста. Советник выставляет два отложенника BuyStop и SellStop по сигналам. Появляется еще сигнал на открытие отложенника на покупку. Нужно сделать так, чтобы старый ордер на покупку был модифицирован по условиям последнего сигнала. Сделал через функцию OrderModify(). Ничего не вышло. Выдает ошибку 4051. Как выбрать нужный ордер. Я понимаю что по тикету, но как определить тикет именно нужного ордера (в данном случае BuyStop). Обьясните хотя бы логику действий. Спасибо!
int ticket = -1;
...
OrderSelect(...);
if (OrderType() == OP_BuyStop) {
ticket = OrderTicket();
OrderModify(...);
return(0);
}
Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.
подскажиещё как его сделат прежним??
1 - это, конечно, мало. Много зависит от брокера на его скорость исполнения Ваших приказов, зависит от скорости (от инета) отдачи Вами Ваших приказов брокеру, возможно, еще от "чего-либо" на реал счету, о чем мы (я) и не догадываемся. Вон Слава писал, как его пипсаря резал брокер (посредством т.н. "индивидуального подхода" к клиенту) увеличивая мин дист от 2,3 пп до 18 - 20 пп посмотрите ветку здесь https://forum.mql4.com/ru/37451/page10...
подскажиещё как его сделат прежним??
static prevhitorytotal = 0;
...
if (OrderHistoryTotal() != prevhistorytotal) {
// пополнилос на один ордер
}
prevhistorytotal = OrderHistoryTotal();
Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.
static int totalh=OrdersHistoryTotal();
if(OrdersHistoryTotal()>totalh)
я правилно понял или нет?
static prevhitorytotal = 0;
...
if (OrderHistoryTotal() != prevhistorytotal) {
// пополнилос на один ордер
}
prevhistorytotal = OrderHistoryTotal();
понял пасибо?
static int totalh=OrdersHistoryTotal();
Неправильно.
static int totalh=0; // статические переменные объявляются перед вызовами start(), init() и deinit()
...
int start() {
...
if (OrderHistoryTotal() != totalh) {
// пополнилос на один ордер
}
totalh = OrderHistoryTotal();
...
}