Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я говорю об устанавливаемых пользователем уровнем профита и стопа при работе с советниками, а вы о закрытии цены
(но ведь OrderSend открывает позу, а не закрывает ее!)
Причем мною был приведен конкретный пример, когда пользователь задает необходимые значения прибыли и убытка, которые при использовании примера учебника приводят к неправильному закрытию.
И так считаю не один я. Из-за чего бы весь этот сыр-бор с delyus разгорелся? Человек понял так, как там и написано.
А именно: захотели мы выставить стоп и профит по 15 пунктов. Для этого к биду прибавляем 15 для выставления профита и
отнимаем 15 для выставления стопа. В результате получим разницу в два спрэда.
То есть я веду к тому, что уровни должны отсчитыватья от цены открытия позы, а не от закрытия.
Хотя может вы имеете в виду, что вам интересен сам проход цены, а не полученные в результате значения прибыли или убытка?
В этом случае все верно. Но рядовых пользователей такой подход будет сбивать с толку. Ведь если ему нужно получить прибыль
или убыток в фиксированное число пунктов, то с использованием примера учебника он получит убыток+спрэд, а прибыль уменьшенную на тот же спрэд.
Я говорю о предельно допустимых (самых приближенных) значениях, которые в принципе можно указать в функции открытия и при этом быть уверенным, что торговый приказ будет расцениваться как корректный.
OrderSend действительно открывает позицию. При этом правило остаётся тем же: базовой ценой для расчёта SL и ТР является цена закрытия ордера. И это правильно. Просто потому, что SL и ТР это такие штуки, которые имеют отношение к финансовой операции закрытия ордера (хоть на этапе открытия, хоть если ордер ранее уже открыт).
Обратите внимание, речь идёт о предельно допустимых значениях, которые будут признаны корректными клиентским терминалом и сервером. Если указанные требования соблюдаются, то SL и ТР могут стоять где угодно, хоть симметрично относительно цены открытия, хоть не симметрично (лишь бы не ближе к текущей правильной цене, принятой для закрытия ордера определённого типа, чем на величину MODE_STOPLEVEL пунктов).
Я говорю о предельно допустимых (самых приближенных) значениях, которые в принципе можно указать в функции открытия и при этом быть уверенным, что торговый приказ будет расцениваться как корректный.
OrderSend действительно открывает позицию. При этом правило остаётся тем же: базовой ценой для расчёта SL и ТР является цена закрытия ордера. И это правильно. Просто потому, что SL и ТР это такие штуки, которые имеют отношение к финансовой операции закрытия ордера (хоть на этапе открытия, хоть если ордер ранее уже открыт).
Только вот причем здесь оно? Когда нужно будет закрыть позу, тогда я и буду руководствоваться ценами Bid для Buy и Ask для Sell. А сейчас то мы только открываем ее.
Предлагаю компромис, если уж вы не хотите принять то, что большинство людей принимают. Было бы неплохо дополнить в указанной главе, что 15 - это проход цены, а не уровень стопа и профита. И в результате получается 13 пунктов профита и 17 - стопа. Это мы с вами понимаем, что так оно и будет, а человек, который только учится такие тонкости сам и сразу понять не в силах.
Вобщем, вам удобнее считать так, а вот мне сразу от Ask. По крайней мере, заказчики не задают лишних вопросов, когда выставляют по 15 пунктов стопа и профита в написанных мною советниках, получая при этом совсем другие значения.
Вобщем, вам удобнее считать так, а вот мне сразу от Ask.
Ну это уже..
Что значит удобно???:) (типа, потерял ключи в кустах, а ищу под фонарём, т.к. тут светлее)
Считать можно хоть от фонаря. Лишь бы торговый приказ соответствовал Требованиям и орграничениям при проведении торговых операций.
Смотрите Учебник по MQL4 Приложения Требования и ограничения при проведении торговых операций .
Что значит удобно???:) (типа, потерял ключи в кустах, а ищу под фонарём, т.к. тут светлее)
Я просто исхожу из практики применения языка, а не из академических соображений.
В ТЗ заказчик указывает: параметр профит и параметр стоп должны быть 100 пунктов.
Укажите плз как вы будете считать их. При этом учтите, что нужно, чтобы заказчик при закрытии позы увидел либо +100, либо -100.
Иначе - некорректно выполненное задание. Заказчику ведь по барабану, что там считается базовой ценой.
То есть, заполните пустые места:
Как об стенку горохом..
Вы ожидаете, что я подставлю в эти пустые места расчёт от цены открытия?:) Дудки!
Вы лучше возьмите свой код, подставьте туда то, что Вам кажется "удобным", а после этого просчитайте как будут исполняться торговые приказы на открытие ордеров, если Ваш незадачливый заказчик поставит (а ведь непременно) вместо 100 и 100, например, 3 и 3 при MODE_STOPLEVEL=2 и MODE_SPRED=2 (обычных условиях Альпари для EURUSD). Получится, что профит пройдёт нормально, а стоплосс уже не пройдёт - терминал выдаст ошибку ( о которой заказчик даже не узнает) и фактически торговый приказ не исполнится.
Вот и придётся объяснять заказчику, что под фонарём светлее.
Придирайтесь, хотя сути спора та ошибка не меняла. Просто покажите, как вы будете рассчитывать профит и стоп, если я такой балбес и делаю все неправильно. Научите!!!
P. S. Я не из тех людей, которые не могут признать свои ошибки. Так что если вы мне опишите как правильно выставлять профит и стоп согласно приведенному мною ТЗ, то охотно признаю, что был неправ. Но пока, кроме разговоров про StopLevel я ничего не услышал.
Вы не хотите услышать простую вещь.
Значения заявленных цен в программе могут вычисляться на основе любых побуждений автора (в том числе, в соответствии с требованиями заказчика, от фонаря, с поля ветер, я так хочу, а почему бы и нет и т.д.)
Но последней проверкой значения, указываемого в торговом приказе, должна быть такая:
где Var = значение цены тэйкпрофита на Бае
А внутри фигурных скобок нужно выполнить одно из двух:
- либо обнулить это значение (как в Вашем коде)
- либо увеличить значение Var до величины Bid + StopLevel * Point
Ну, либо отказаться от торгового приказа.
Началось с того, что переписал некоторые "старые" скрипты...
Почему тогда использовали MarketInfo(Symbol(),MODE_BID) вместо преопределённой Bid пока загадка,
однако всё вроде работает как надо... Вопрос!
Чем это грозит или всё паралельно?
Закончилось тем, что скупо написана справка по Ф1, поход на книгу закончился ничем,
в навигаторе нужное не обнаружилось, поиск не юзал... по той простой причине это должно быть ближе.
Библиотеки пользуются переменными вызвавшего их модуля.
Для безопасного и быстрого доступа к этим данным клиентский терминал обеспечивает локальные копии предопределенных переменных для каждой запущенной программы отдельно. Эти данные обновляются при каждом новом запуске прикрепленного эксперта или пользовательского индикатора автоматически, либо при помощи вызова функции RefreshRates().
Расположение ! (знака инверсии, лог. НЕ) имеет значение, т.е. !а и а! равны с точки зрения синтаксиса?
Существует ли ещё способ проверки условия на то что если a не равно b