ПРОФИТ СТОП!!!

 
ПРОФИТ СТОП!!!
добрый день у меня такой вопрос...вот есть такой алгаритм/*[[
Name := fractal trade
Author := Copyright © 2003, Company
Link := http://www.company.com/
Lots := 1.00
Stop Loss := 30
Take Profit := 50
Trailing Stop := 0
]]*/

var: fup(0);


If TotalTrades=1 then exit;

If FreeMargin<1000 then Exit;

fup=h[2];
if fup>h[1] and fup>h[0] and fup>h[3] and fup>h[4] then

SetOrder(OP_BUYSTOP,Lots,fup,0,bid-stoploss*Point,ask+TakeProfit*Point,RED);

простой.....но почему-то откриии позии.....стоп лосс и тейк профит выставляется не на 50 и 30 пунктов соответсвенно а по другому.....

почему так и как это добиться что бы стоп и профит ставился так как егог выставляешь...

спасибо
 
Неверно написана инструкция SetOrder
Выставляется отложенный ордер BUYSTOP по цене хая 2 периода назад, причем это должен быть локальный экстремум, судя по выставленному условию. Соответственно текущая цена должна быть явно ниже этой переменной - fup.
В то же время t/p и s/l ты рассчитываешь от текущей цены, поэтому возможны случаи отклонения данного ордера брокером.
Если я правильно понимаю логику, надо заменить
bid-stoploss*Point на fup-stoploss*Point
ask+TakeProfit*Point на fup+TakeProfit*Point
Да, еще. Не забывай в эксперте управлять отложенными ордерами - удалять ненужные. Иначе можно залететь с открытием ордеров на весь депозит.
 
и еще...
Почему
var: fup(0);
а не
define: fup(0);
?
 
Спасибо
огромное спасибо за ответ
Причина обращения: