кривой стоп - страница 4

 
Lord_Shadows:
И кстати, кто это подчистил мой пост выше...?!!
Говорю же - Агенты вокруг ))
 
Lord_Shadows:
SK. писал (а):

delyus,

Это та ситуация, когда просто не знаешь как реагировать..

Возникает вопрос: что Вы тут делаете? Если хотите научиться, то берите учебник и учитесь. Если лень.. задаёте вопросы здесь, Вам отвечают, а Вы не реагируете на ответы. Вам просто нравится сообщать на весь рунет своё личное мнение по вопросам, с которыми Вы только начали знакомиться?

Подумайте хотя бы о том, что Вы сбиваете с толку других посетителей. Ведь они могут решить, что действительно что-то неправильно написано.

В следующий раз, прежде чем положить руки на клавиатуру, задумайтесь о том, что Вы хотите поведать мировому сообществу.



Извените... но у Вас действительно нигде неуказано что все расчёты для покупки должны вестись от ASK, а наоборот, указано следущее:
//--------------------------------------------------------------------
// simpleopen.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start () // Спец. функция start()
{ // Открытие BUY
OrderSend ( Symbol (), OP_BUY, 0.1, Ask, 3, Bid - 15.5 * Point, Bid + 15 * Point ) ;
return ; // Выход из start()
}
//--------------------------------------------------------------------
Но ведь это не верный код...при такой установке ордера мы получаем профит меньший на величину спреда, а стоп больший на величину спреда...Это видно из дальнейшего Вашего примера :
------------------------------------------------------------------------------------------------------------------

3.1. Мы прикрепили скрипт в окно финансового инструмента Eur/Usd. В этом случае стандартная функция Symbol() вернёт строковое значение EURUSD.

3.2. Пусть на момент обращения Ask =1.2852 и Bid =1.2850 .

3.3. Значение StopLoss в этом случае будет равно 1.2850-15*0.0001 = 1.2835, а TakeProfit = 1.2865 .

------------------------------------------------------------------------------------------------------------------

Здесь прекрасно видно что вместо заявленных равных профита и стопа в 15 пунктов мы получим профит в 13, а стоп в 17 пунктов...

Именно на это и указал delyus.

Уж не знаю как там с точки зрения правильности написания в языке, но с точки зрения элементарной логики и простейшей арифметики все расчёты для BUY должны

вестись от Ask . А для SELL соответственно от Bid .

Либо в формулах должна присутствовать добавка в виде MODE_SPREAD ... Но тогда мы всё равно получаем все расчёты для BUY по Ask, для SELL по Bid.

" у Вас действительно нигде неуказано "
Действительно нигде не указано. Я старался внимательно просматривать все коды, прежде чем они были опубликованы. Всё написано верно. Специально для тех, кто сам не не дотянулся до учебника дублирую сообщение с 1й страницы этой темы:

Правильной ценой открытия Buy является Ask.
Правильной ценой для расчёта StopLoss и TakeProfit является цена закрытия ордера, для ордера Buy это цена Bid.
Правильной ценой открытия Sell является Bid.
Правильной ценой для расчёта StopLoss и TakeProfit является цена закрытия ордера, для ордера Sell это цена Ask.

Дайте себе труд хотя бы прочесть. Написано: для .. StopLoss и TakeProfit .. цена закрытия.


"Здесь прекрасно видно"
Здесь действительно всё прекрасно видно. Специально было написано так, чтоб было видно, чтоб незадачливый юзер не прошёл мимо.

Действительно, если считать от цены открытия, то (при спреде 2) получится соотв. 13 и 17 пунктов. Однако, это не ошибка. Это нужно знать и учитывать в своих расчётах. Если же ставится задача, чтоб при любом направлении движения ордер завкрылся на 15 пунктах (прибыли или убытка), то нужно написать так:

OrderSend ( Symbol (), OP_BUY, 0.1, Ask, 3, Bid - 13 * Point, Bid + 17 * Point ) ;

При разнице между SL, ТР и ценой открытия ордера, значительно превышающей MODE_STOPLEVEL, не имеет значения как написать:

Bid - 13  // Правильно
или  
Ask - 15  // Неправльно

потому что в торговый приказ будет подставлено численное значение. Тут важно только, чтобы это значение находилось за пределами коридора, ограниченного значением MODE_STOPLEVEL. Проблемы возникают, если разница между ценой открытия и стоп-приказом сопоставима с MODE_STOPLEVEL. В этом случае терминал будет возвращать ошибку, а юзер не будет понимать почему.

Беда в том, что, несмотря на объяснения, иной юзер не в состоянии это усвоить. Иногда требуется многократно повторить и несколько раз отправить по одной и той же ссылке, чтоб юзер по крайней мере обратил внимание на настойчивость возражений. Вот ссылки:
Учебник по MQL4 Торговые операции Характеристики ордеров и правила проведения торговых операций
Учебник по MQL4 Приложения Требования и ограничения при проведении торговых операций

PS Кстати, в тексте учебника в этом коде стоит цифра 15.5 Это опечатка. Правильно нужно читать 15 Сегодня поправим.

 
Lord_Shadows:
magiXpert:

Мне кажется происходит подмена понятия Bid, по которому закроется позиция, на понятие "текущий BID", который можно представить как Ask, скорректированный на Spread. На самом деле все проще.
Если можно поясните в чём разница .
Разница в том что позиция будет закрыта при достижении BID'ом 6-го либо 7-го параметра функции OrderSend. Это факт. А через что выражать SL и TP - дело вкуса каждого перца. Собственно, использовать при этом выражении Ask или Bid вообще не обязательно.
 
SK. писал (а):

Беда в том, что, несмотря на объяснения, иной юзер не в состоянии это усвоить. Иногда требуется многократно повторить и несколько раз отправить по одной и той же ссылке, чтоб юзер по крайней мере обратил внимание на настойчивость возражений. Вот ссылки:
Учебник по MQL4 Торговые операции Характеристики ордеров и правила проведения торговых операций
Учебник по MQL4 Приложения Требования и ограничения при проведении торговых операций

PS Кстати, в тексте учебника в этом коде стоит цифра 15.5 Это опечатка. Правильно нужно читать 15 Сегодня поправим.


В своём посте от 10:50... который странным образом, спустя несколько минут оказался пустым, я выражал благодарность Вам SK за учебник( а так же некоторым другим уважаемым мною форумчанам ), и никоим образом не хотел никого задеть, напротив хотел прояснить ситуацию, не более того.
P.S. для себя я давно пишу как надо, и стоп и профит расчитываю динамически исходя из рыночной ситуации, а не фиксированно.
 
Lord_Shadows:
SK. писал (а):

Беда в том, что, несмотря на объяснения, иной юзер не в состоянии это усвоить. Иногда требуется многократно повторить и несколько раз отправить по одной и той же ссылке, чтоб юзер по крайней мере обратил внимание на настойчивость возражений. Вот ссылки:
Учебник по MQL4 Торговые операции Характеристики ордеров и правила проведения торговых операций
Учебник по MQL4 Приложения Требования и ограничения при проведении торговых операций

PS Кстати, в тексте учебника в этом коде стоит цифра 15.5 Это опечатка. Правильно нужно читать 15 Сегодня поправим.


В своём посте от 10:50... который странным образом, спустя несколько минут оказался пустым, я выражал благодарность Вам SK за учебник( а так же некоторым другим уважаемым мною форумчанам ), и никоим образом не хотел никого задеть, напротив хотел прояснить ситуацию, не более того.
P.S. для себя я давно пишу как надо, и стоп и профит расчитываю динамически исходя из рыночной ситуации, а не фиксированно.


Фух.. Вот это самое печальное в наших дискуссиях.

Давайте всё же не принимать контраргументы на свой счёт, не воспринимать как личное оскорбление. Как правило, в таких обсуждениях все заинтересованы узнать истину, поэтому требуется назвать вещи своими именами. В результате оказывается, что кто-то прав, а кто-то нет. Однако, это не значит, что тот, кто неправ, дурак дураком. Вот, не значит. По-хорошему, тот, кто знал недостаточно, должен просто принять к сведению сказанное.. и отныне знать больше.

 
Глубокоуважаемый СК!
умом-то я понимаю что бай закрывают по бид, но допустим я дал советник другу, он ставит ТП=2 и пока он оклемается у него сделок 50 закроет по той же цене, по которой он купил, учитывая, что есть еще и убыточные сделки, у него за день сожрет пол-депо, пока он поймет в чем дело. значит надо будет объяснять, что надо ставить ТП4, чтобы получить ТП2, длинную историю про биды и аски, которые он все равно не поймет и тп. Может лучше тогда в функции ордер сенд что-то поменять, может закрытие бай от бида с учетом спреда? это же должно быть правильно указывать спред в конце концов раз он имеет место быть
 
delyus:
Глубокоуважаемый СК!
умом-то я понимаю что бай закрывают по бид, но допустим я дал советник другу, он ставит ТП=2 и пока он оклемается у него сделок 50 закроет по той же цене, по которой он купил, учитывая, что есть еще и убыточные сделки, у него за день сожрет пол-депо, пока он поймет в чем дело. значит надо будет объяснять, что надо ставить ТП4, чтобы получить ТП2, длинную историю про биды и аски, которые он все равно не поймет и тп. Может лучше тогда в функции ордер сенд что-то поменять, может закрытие бай от бида с учетом спреда? это же должно быть правильно указывать спред в конце концов раз он имеет место быть

Я вот бы чего добавил...закрывают по Bid, но в данном случае идёт разговор по какой цене расчитывать то самое закрытие...а оно просто ОБЯЗАНО быть расчитано от начальной цены покупки, то-есть от Ask.
Относительно того что 15 там стоит пунктов или 13-17, не суть важно. Ведь эти цифры обозначают скорее всего переменную TP в будущем советнике или скрипте...а значит она эта цифра должна включать тот самый спред иначе сделки могут быть даже минусовыми при сробатывании TP... а это парадокс.
Таким образом, либо в коде всё расчитывается по Ask... либо по (Bid +- Spread)...
 
delyus:
Глубокоуважаемый СК!
умом-то я понимаю что бай закрывают по бид, но допустим я дал советник другу, он ставит ТП=2 и пока он оклемается у него сделок 50 закроет по той же цене, по которой он купил, учитывая, что есть еще и убыточные сделки, у него за день сожрет пол-депо, пока он поймет в чем дело. значит надо будет объяснять, что надо ставить ТП4, чтобы получить ТП2, длинную историю про биды и аски, которые он все равно не поймет и тп. Может лучше тогда в функции ордер сенд что-то поменять, может закрытие бай от бида с учетом спреда? это же должно быть правильно указывать спред в конце концов раз он имеет место быть

"Может, чё в консерватории подправить?" (М. Жв.:)
 
CК,
и вот наконец созрело окончательное решение - надо отменить спреды как нечто, не поддающееся разумению))
 
Lord_Shadows:

Я вот бы чего добавил...закрывают по Bid, но в данном случае идёт разговор по какой цене расчитывать то самое закрытие...а она просто ОБЯЗАНА быть расчитано от начальной цены покупки, то-есть от Ask.

Блин, с вами с ума сойти можно..

Она не обязана. Вот, в том-то и дело.

Есть правило, ограничивающее предельно допустимое (самое близкое к цене) значение заявляемых цен стоп-приказов (SL и ТР). Оно гласит, что базовой ценой для расчёта SL и ТР является цена закрытия ордера. И это правильно. Просто потому, что SL и ТР это такие штуки, которые имеют отношение к финансовой операции закрытия ордера.

А цена открытия в этом деле не имеет значения.

Если ордер был открыт давно (без SL и ТР), курс ушёл далеко-далеко и требуется поставить SL и ТР, то для их расчёта следует принимать во внимание текущую правильную цену закрытия ордера и значение MODE_STOPLEVEL.

Так же нужно расчитывать предельные значения заявляемых цен SL и ТР и на этапе открытия ордера.

-----------

Обратите внимание, речь идёт о предельно допустимых значениях, которые будут признаны корректными клиентским терминалом и сервером. Если указанные требования соблюдаются, то SL и ТР могут стоять где угодно, хоть симметрично относительно цены открытия, хоть не симметрично (лишь бы не ближе к текущей правильной цене, принятой для закрытия ордера определённого типа, чем на величину MODE_STOPLEVEL пунктов).