В моем коде выражение 2 - j >= 0 означает ... while ( j >= 0 ), поэтому цикл выполняется, пока j равно 0 или больше, т.е. от OrdersTotal() - 1 до 0 включительно.
Если вы используете j = 0 (возможно, это должно быть написано j == 0), это означает while (j == 0), и цикл выполняется только тогда, когда j равно 0.
Первая позиция ордера равна 0, поэтому если у вас 5 ордеров, то позиции будут 0, 1, 2, 3, 4 ... поэтому последняя - OrdersTotal() - 1 ... поэтому для обратного отсчета вы начинаете с OrdersTotal()-1 и заканчиваете на 0.
Означает ли это, что OrdersTotal() -1 - нет заказов, затем 0 - первый заказ, 1 - 2 заказа и так далее до 4, что равно 5 заказам.
Не мог бы кто-нибудь сообщить мне, если мое понимание того, что -1 равно No orders, является правильным?
Мне также нужна помощь по тому же вопросу. Я начинающий кодер и я пытался ввести код, который я видел здесь, но он не работает вообще, можете ли вы мне помочь. Orderselect был использован
чтобы заменить OrdersTotal и контролировать количество сделок каждого советника, но теперь другие не хотят размещать сделки.
In МТ3, management of open positions was rather time-taking. Traders had at their disposal a rather limited tool set to work with the list of open and closed positions. The problem of distinguishing between "own" and "someone else's" positions was solved in rather complicated ways. In МТ4, the situation has cardinally changed. Now, trader can...
int b;int bM;int s;int sM;
bool res = (OrderSelect(b,SELECT_BY_POS));
bool resM = (OrderSelect(bM,SELECT_BY_POS));
bool ses = (OrderSelect(s,SELECT_BY_POS));
bool sesM = (OrderSelect(sM,SELECT_BY_POS));
b - нет значения, OrderSelect не работает. bM - нет значения, OrderSelect не работает. s - нет значения, OrderSelect не работает. sM - нет значения, OrderSelect не работает.
В чем смысл выбора нескольких заказов? Результатом является последний успешный выбор.
b и bM - локальные переменные. Номера билетов теряются при возврате.
Почему вы пытаетесь выбрать по позиции, но пытаетесь сохранить номера билетов? Если вы выбираете по действительному номеру билета, это не значит, что ордер открыт.
Вы покупаете по Ask и продаете по Bid.
TP/SL вашего ордера на покупку (или Sell Stop's/Sell Limit's entry) срабатывают, когда Bid / OrderClosePrice достигает его. Использование Ask±n делает ваш SL короче, а TP длиннее, на величину спреда. Разве вы не хотите, чтобы указанная сумма использовалась в любом направлении?
На графиках показаны только цены Bid. Включите линию Ask, чтобы увидеть, насколько велик спред(Tools → Options (control+O) → charts → Show ask line). Большинство брокеров с переменным спредом значительно расширяются в конце дня (5 PM ET) ± 30 минут. Мой GBPJPY (OANDA) показывает средний спред = 26 пунктов, но средний максимальный спред = 134.
Вы глубоко ошибаетесь. Ваш код никогда не будет выполнен!!! Используйте код RaptorUK.
Хорошо :)
Я просто запутался в этом:
"закончить, когда j = 0"
спасибо!
Так что это должно выглядеть следующим образом:
потому что вы это написали:
или я ошибаюсь?
Вы ошибаетесь ... посмотрите на это: for
В моем коде выражение 2 - j >= 0 означает ... while ( j >= 0 ), поэтому цикл выполняется, пока j равно 0 или больше, т.е. от OrdersTotal() - 1 до 0 включительно.
Если вы используете j = 0 (возможно, это должно быть написано j == 0), это означает while (j == 0), и цикл выполняется только тогда, когда j равно 0.
Нет, сделайте так...
Первая позиция ордера равна 0, поэтому если у вас 5 ордеров, то позиции будут 0, 1, 2, 3, 4 ... поэтому последняя - OrdersTotal() - 1 ... поэтому для обратного отсчета вы начинаете с OrdersTotal()-1 и заканчиваете на 0.
Означает ли это, что OrdersTotal() -1 - нет заказов, затем 0 - первый заказ, 1 - 2 заказа и так далее до 4, что равно 5 заказам.
Не мог бы кто-нибудь сообщить мне, если мое понимание того, что -1 равно No orders, является правильным?
Спасибо
Означает ли это, что OrdersTotal () -1 - нет заказов, затем 0 - 1 заказ, 1 - 2 заказа и так далее до 4, что равно 5 заказам.
Мне также нужна помощь по тому же вопросу. Я начинающий кодер и я пытался ввести код, который я видел здесь, но он не работает вообще, можете ли вы мне помочь. Orderselect был использован
чтобы заменить OrdersTotal и контролировать количество сделок каждого советника, но теперь другие не хотят размещать сделки.
&& res == falseOrderselect вернет true, если выбран заказ.
Возможно, вы можете использовать магическое число в сочетании с именем символа.
Вот пример в статье, которую вы можете изучить:https://www.mql5.com/en/articles/1359.
b - нет значения, OrderSelect не работает. bM - нет значения, OrderSelect не работает. s - нет значения, OrderSelect не работает. sM - нет значения, OrderSelect не работает.
Вы покупаете по Ask и продаете по Bid.
TP/SL вашего ордера на покупку (или Sell Stop's/Sell Limit's entry) срабатывают, когда Bid / OrderClosePrice достигает его. Использование Ask±n делает ваш SL короче, а TP длиннее, на величину спреда. Разве вы не хотите, чтобы указанная сумма использовалась в любом направлении?
TP/SL вашего ордера на продажу (или вход по Buy Stop/Buy Limit) сработает, когда цена Ask / OrderClosePrice достигнет ее. Чтобы сработать по определенной цене Bid, добавьте средний спред.
MODE_SPREAD (Павел) - Форум по программированию MQL4 - Страница 3 #25.
На графиках показаны только цены Bid. Включите линию Ask, чтобы увидеть, насколько велик спред(Tools → Options (control+O) → charts → Show ask line).
Большинство брокеров с переменным спредом значительно расширяются в конце дня (5 PM ET) ± 30 минут. Мой GBPJPY (OANDA) показывает средний спред = 26 пунктов, но средний максимальный спред = 134.