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

 
WhooDoo22:

Саймон,

Я не понимаю, что именно вы видите, но ;) Я немедленно включу функцию GetLastOrder(), чтобы пролить свет на этот вопрос. Прошу прощения за то, что задал вопрос, не включив в код функцию GetLastOrder().

Спасибо.

Какой номер тикета показывает функция OrderPrint()? Какая ошибка отображается?
 

Саймон,


какая ошибка отображается?

неизвестный тикет 2 для функции OrderClose


Какой номер тикета показывает функция OrderPrint()?

#20526942 2012.12.24 13:43 купить 0.01 USDJPY 84.466 0.000 0.000 86.105 0.00 0.00 19.03 0


Спасибо.

 
Итак, номер вашего тикета USDJPY - 20526942, и все же вы пытаетесь закрыть тикет ЧИСЛО (не позицию)2? Вы видите проблему?
 

Саймон,

Номер билета USDJPY - 20526942.

Функция OrderClose() пытается закрыть билет номер 2.

Номер билета USDJPY - 20526942, а номер позиции в пуле - 2.


Если я правильно понимаю, функция OrderClose() не может закрыть ордер USDJPY, потому что первый параметр функции OrderClose() использует номер позиции 2 вместо "уникального номера билета ордера" (20526942). Если вы подтвердите это утверждение, тогда я, похоже, должен найти способ выделить номер билета 20526942 ордера USDJPY, а затем поместить этот номер в первый параметр функции OrderClose().

Что вы скажете на это? ;)

Спасибо.

 
WhooDoo22:


Если я правильно понимаю, функция OrderClose() не может закрыть ордер USDJPY, потому что первый параметр функции OrderClose() использует номер позиции 2 вместо "уникального номера билета ордера" (20526942). Если вы подтвердите это утверждение, тогда я, похоже, должен найти способ выделить номер билета 20526942 ордера USDJPY, а затем поместить этот номер в первый параметр функции OrderClose().

Что вы на это скажете? ;)

Да, и есть функция для этого...
 

Саймон,

Да что вы говорите? ;)

Это же не может быть неприметная функция OrderTicket()? Хахаха.

Спасибо.
 
WhooDoo22:

Саймон,

Я не сказал? ;)

Это же не может быть неприметная функция OrderTicket()? Хахаха.

Спасибо.
LOL :-) ваш код должен работать сейчас ... ... далее посмотрим, сможете ли вы модифицировать его для обработки нескольких ордеров USDJPY ... ;-)
 

Саймон,

И снова, я так, так обильно благословлен получить еще один более чем щедрый вклад от вкладки "Эксперты" в моем MetaTrader, который я приветствую с распростертыми объятиями и чрезвычайно радостным проявлением. ;)


Описание ошибки:

Ошибка цены USDJPY (функция OrderClose())


Спасибо.

Файлы:
 
WhooDoo22:

Саймон,

И снова, я очень, очень благословлен получить еще один щедрый вклад от вкладки "Эксперты" в моем MetaTrader, который я приветствую с распростертыми объятиями и чрезвычайно радостным проявлением. ;)

Теперь вам нужен отчет об ошибках, чтобы вы точно знали, какая ошибка возникла... вероятно, цена слишком близка к SL или TP, чтобы закрыть ордер. Каков ваш FreezeLevel?
 

Саймон,

УРОВЕНЬ_ЗАМОРОЗКИ33Уровень заморозки ордера в пунктах. Если цена исполнения находится в диапазоне, определенном уровнем заморозки, ордер не может быть изменен, отменен или закрыт.


Я не знаю, каков уровень заморозки у брокера MetaTrader, которого я использую для проведения тестов. Я предполагаю, что уровень заморозки зависит от брокера.

Знаете ли вы способ, с помощью которого я могу узнать уровень заморозки MetaEditor, используя функцию MarketInfo()?

Я уже использовал функцию GetLastError(), но безрезультатно. Я пытаюсь поместить ее в правильное место на данный момент.

Кроме того, текущая цена ордера должна значительно превышать уровень заморозки.

Вот снимок, показывающий ее состояние:

Состояние ордера USDJPY


Спасибо.