[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1050

 

подскажите как написат условие-   if(ordershistorytotal()"пополнилос на один ордер")???

 
Stasjan:

подскажите как написат условие- if(ordershistorytotal()"пополнилос на один ордер")???

Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.
 
Reshetov:
Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.

спасибо!!!
 
prom18:
Помогите пожалуйста. Советник выставляет два отложенника BuyStop и SellStop по сигналам. Появляется еще сигнал на открытие отложенника на покупку. Нужно сделать так, чтобы старый ордер на покупку был модифицирован по условиям последнего сигнала. Сделал через функцию OrderModify(). Ничего не вышло. Выдает ошибку 4051. Как выбрать нужный ордер. Я понимаю что по тикету, но как определить тикет именно нужного ордера (в данном случае BuyStop). Обьясните хотя бы логику действий. Спасибо!

int ticket = -1;

...

OrderSelect(...);

if (OrderType() == OP_BuyStop) {

ticket = OrderTicket();

OrderModify(...);

return(0);

}

 
Reshetov:
Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.

подскажиещё как его сделат прежним??
 
Roman.:

1 - это, конечно, мало. Много зависит от брокера на его скорость исполнения Ваших приказов, зависит от скорости (от инета) отдачи Вами Ваших приказов брокеру, возможно, еще от "чего-либо" на реал счету, о чем мы (я) и не догадываемся. Вон Слава писал, как его пипсаря резал брокер (посредством т.н. "индивидуального подхода" к клиенту) увеличивая мин дист от 2,3 пп до 18 - 20 пп посмотрите ветку здесь https://forum.mql4.com/ru/37451/page10...
Поставил для "буфера" 2 пункта - теперь все сделки открывает ) Ещё раз спасибо.
 
Stasjan:

подскажиещё как его сделат прежним??

static prevhitorytotal = 0;

...

if (OrderHistoryTotal() != prevhistorytotal) {

// пополнилос на один ордер

}

prevhistorytotal = OrderHistoryTotal();

 
Reshetov:
Для этого прежнее значение OrdersHistoryTotal() нужно запоминать в статической переменной, а в условии предыдущее и текущее сравнивать. Если изменилось, то пополнилось, т.к. там в меньшую сторону значения не меняются.


static int totalh=OrdersHistoryTotal();

if(OrdersHistoryTotal()>totalh)

я правилно понял или нет?

 
Reshetov:

static prevhitorytotal = 0;

...

if (OrderHistoryTotal() != prevhistorytotal) {

// пополнилос на один ордер

}

prevhistorytotal = OrderHistoryTotal();


понял пасибо?

 
Stasjan:


static int totalh=OrdersHistoryTotal();

Неправильно.

static int totalh=0; // статические переменные объявляются перед вызовами start(), init() и deinit()

...

int start() {

...

if (OrderHistoryTotal() != totalh) {

// пополнилос на один ордер

}

totalh = OrderHistoryTotal();

...

}

Причина обращения: