Вопросы оператора цикла "для - страница 7

 

Саймон,

Итак, если функция OrdersTotal() возвращает 10, какова последняя и первая позиция заказа?

Я использовал функцию OrdersTotal() в качестве условия перед использованием функции OrderSend(). Насколько я понимаю, я использовал функцию OrdersTotal() следующим образом:

if(OrdersTotal()<1) OrderSend(...);

// I have also used the function like this...

if(OrdersTotal()==0) OrderSend(...);

Обе приведенные выше строки кода представляют собой что-то вроде: если в настоящий момент нет ордеров, то отправьте ордер.

Функция OrdersTotal() Возвращает количество рыночных и отложенных ордеров (это также может быть написано: Возвращает общее количество текущих рыночных ордеров и общее количество отложенных ордеров).

Я предполагаю, что функция 'Order ticket position' работает аналогичным образом. Она начинается с 1 и заканчивается 10 (лично я не стал бы делать такой вывод на основании представления значения функции OrdersTotal(), но прогресс должен быть достигнут).

Если OrdersTotal() возвращает 10, то первая позиция - 1, а последняя - 10. Таким образом, текущая позиция для последнего заказа - 10, а первый размещенный заказ (10-й по счету) - 1.

Спасибо.

 

@WhooDoo22:если OrdersTotal() возвращает 10, то первая позиция - 1, а последняя - 10. = false.
- Следовательно, правильным ответом будет 0 и 9 соответственно
- Первая позиция=0 && Последняя позиция = OrderTotal - 1
- Почему вы продолжаете говорить "Позиция билета заказа"?
- Это либо "Билет заказа", либо "Позиция заказа".
- Пожалуйста, воздержитесь от названия "Позиция билета заказа".
- Первая позиция в пуле всегда равна нулю

 

ubzen,

@WhooDoo22:если OrdersTotal() возвращает 10, то первая позиция - 1, а последняя - 10. = false.

Думаю, я был близок к тому, чтобы указать 1 как первую позицию и 10 как последнюю позицию, потому что я думал, что это похоже на представление значений в OrdersTotal().

Один как первый и ноль как первый - это очень близко. Десять как последний и девять как последний очень близки. Ошибка была в представлении значения.


- Первая позиция = 0 && Последняя позиция = OrderTotal - 1.

Я понимаю, что значение 1-й позиции представлено как ноль, потому что значения номера позиции заказа представлены аналогично массиву (пример: 0,1,2,3,4 и т.д.).

Я не понимаю, почему последняя позиция равна OrdersTotal() -1. Это потому, что функция OrdersTotal() имеет дело только с текущими ордерами, поэтому любые ордера в истории считаются минус один?


- Почему вы продолжаете говорить "Позиция билета заказа".

Потому что этот "Order ticket" представляет билет на рынке, а "Order ticket Position" представляет позицию билета.


- Это либо "Билет заказа", либо "Позиция заказа".

Я считаю, что лучше называть "Order Ticket" "номером билета заказа", а "Order Position" - "номером позиции заказа". Важно быть описательным, поскольку эти два понятия могут вызвать путаницу, если не понимать разницу.


- Первая позиция в пуле всегда нулевая.

Если это действительно так, то это возвращается к представлению значений. Представление значения похоже на массив (пример: 0,1,2,3,4 и т.д.).


Спасибо.

 

@WhooDoo22: Я не понимаю, почему Последняя позиция равна OrdersTotal() -1.

Это как если бы у вас были бегуны на дорожке. Дорожки показаны ниже.

|0|1|2|3|4|5|6|7|8|9|

Обратите внимание, что дорожки обозначены 0->9, потому что парень, который рисовал дорожки, решил их пронумеровать. [О, Господи, пожалуйста, не спрашивайте меня, почему он нарисовал их именно так :)].

В любом случае, трасса полна бегунов для этого события. У всех этих бегунов на спинах номера. Если вы когда-нибудь смотрели гонки, вы понимаете, о чем я говорю. Но эти бегуны выбирают свои личные номера. Может быть, первый парень думает, что 7 - его счастливое число, и наносит его на свою форму. А у последнего парня покойный отец носил 23 на спине, поэтому, чтобы почтить память отца, сегодня он носит номер 23. В общем, бегуны выстраиваются следующим образом.

|7|93|41|68|17|45|22|6|16|23|

Кто-то только что спросил девушку по имени OrdersTotal, сколько Бегунов участвует в забеге. OrdersTotal ответила 10[10] (потому что она такая умная).

Кто-то только что спросил девушку по имени "i", она же "index", о позиции 1-го Бегуна. На что она быстро ответила 0 (потому что она такая умная). Ее также спросили о позиции последнего бегуна, и она ответила Nine[9], глядя на дорожку выше.

Кто-то только что спросил девушку по имени OrderTicket, каков номер Runner_Number в 1-й_позиции. И она ответила 7. (потому что она такая умная). А для Runner_Number в Last_Position она отвечает 23 "потому что он сегодня чествует своего папу".

Теперь о том, кто из бегунов выиграет забег, я оставлю этот сценарий на другой день. Однако я надеюсь, что мой пример поможет вам понять.

Если вы посмотрите на номера позиций, то все они отличаются на 1. Просто потому, что художник решил начать счет с нуля. Если бы он начал считать с 1, то да, это было бы 1>10. При этом каждое число может быть представлено относительно OrdersTotal. Даже 1st_Position можно представить как (OrdersTotal - OrdersTotal), что дает 0.

 

ubzen,

Какую увлекательную иллюстрацию вы мне представили. Большое спасибо за то, что нашли время выразить ее так подробно!

Что касается того, какой бегун выиграет забег, то обычно это бегун, находящийся на самой внутренней полосе дорожки, при условии, что все бегуны бегут с одинаковой скоростью. Я не знаю, соотносится ли это с вашей иллюстрацией, но если да, то это может быть (индекс ноль или индекс девять) или (бегун семь или бегун двадцать три).

Спасибо.

 
Добро пожаловать.
 
RaptorUK:
Первая позиция в пуле ... как и в массиве, первый элемент находится на позиции 0, второй - на 1, третий - на 2 и т.д.

Мне кажется странным, что вы пытаетесь использовать эту функцию, но не знаете, как ее использовать... разве вы не смотрели на другой код и не видели цикл, отсчитывающий от OrdersTotal() - 1? Почему вы думаете, что там -1?

Вы читали этот пост ... так что вы знали, что первая позиция в пуле была 0, но теперь вы говорите, что это 1, я в замешательстве, почему вы так говорите?
 

Саймон,

Честно говоря, Саймон, день был таким длинным, и я тоже чувствую себя немного растерянным в отношении некоторых вещей. ;) Может быть, мне лучше поесть, хорошо выпить и поспать, чтобы зарядиться энергией на предстоящий день, чтобы снова иметь четкие аргументы для обсуждения. Я доволен прогрессом этого дня.

Спасибо.

 
WhooDoo22:

Саймон,

Честно говоря, Саймон, день был таким длинным, и я тоже чувствую себя немного растерянным в отношении некоторых вещей. ;) Может быть, мне лучше поесть, хорошо выпить и поспать, чтобы зарядиться энергией на предстоящий день, чтобы снова иметь четкие аргументы для обсуждения. Я доволен прогрессом этого дня.

Спасибо.

Хорошая идея, тогда приступайте к работе над основами.
 

Саймон,

Вы читали это сообщение ... так что вы знали, что первая позиция в пуле была 0, но теперь вы говорите, что это 1, я в замешательстве, почему вы так говорите?

Я понимаю представление значения для пула ордеров. Знаете, в чем главная разгадка понимания представления значений для пула ордеров? Я вам все равно скажу :) индекс . Разве индекс не считается тем же самым, что и...

массив: 0,1,2,3 и т.д. Каждое значение заполняется одной/комбинацией цифр.

и...

сдвигзначений: 0,1,2,3 и т.д. Каждое значение - сдвиг текущего или предыдущего тика таймфрейма (пример: тайм-фрейм M5. Текущий индекс для таймфрейма M5 равен нулю (0). Самый последний или самый последний сдвиг для таймфрейма M5 индексируется как единица (1) или его местоположение - индекс 1).


Существует множество кодов MQL4, представляющих значения 0, 1, 2, 3 и т.д. "Волшебное" слово, на которое следует обратить внимание, - это индекс.

Итак ;), давайте заглянем в словарь MetaEditor и посмотрим, что он предлагает нам для определения функции OrderSelect()?

bool OrderSelect( int index, int select, int pool=MODE_TRADES)

Хм ;), и вот он индекс, как и ожидалось. Это должно отбросить все неясности от мысли о представлении значения первого значения, содержащегося в функции OrderSelect() :)

Подождите, также важно понимать, что индекс применяется только к функции OrderSelect() ТОЛЬКО если функция находит ордера в пуле ордеров. На этом все.


Написав это, я перемотаю настройки к проблеме, к которой я пришел не так давно.

ошибка недействительного билета

Вышеуказанная ошибка в снапшоте является текущей проблемой, требующей решения. Что вы посоветуете для решения этой проблемы?

Спасибо.

Файлы:
Причина обращения: