Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 551

 

Функционально вполне законченный эксперт. Что вы хотите в него добавить?

Это перевод в безубыток, только не в пунктах, а в процентах

В процентах от чего хотите переводить безубыток?

Причем эту величину все равно нужно будет получить в пунктах для модификации ордеров.

 

Допустим OrderOpenPrice стоит на 23%, при достижении ценой 76% StopLoss передвигается на 51%.

 
Example2:

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

Да, нет проблем. Просто есть правила их надо неукоснительно придерживаться. Вот в ветке https://forum.mql4.com/ru/60554/page102#930568 человек не инициализирует переменные и получает не весть что! Так вот и нормализация цен. Как правило уровни выставления ордеров ТП, Стопов рассчитываются а значит их точность неопределенна, привыкните выполнять правила - избавите себя от массы проблем. Иногда подобного рода ошибку типа с 1 в 16 разряде можно месяц искать. Поэтому внимательно изучайте примеры из учебника и форума. Сейчас вот тестирование нового билда пройдет и народа здесь грамотного резко поубавится. Пользуйтесь кодами что приводили пару тройку лет назад, тогда народ позаинтересованней ко всему относился.

Последний код что вы привели будет работать, но не грамотно это, так вот и укоренятся неверные привычки!

 
vidnab:

Допустим OrderOpenPrice стоит на 23%, при достижении ценой 76% StopLoss передвигается на 51%.



Хорошо, покупаю пару лотов евробакса по 1.3926... откуда здесь возьмутся 23% или 51% или 76%.
 
Ну цена 1,3926 на которой открыт ордер является 23% уровнем Фибоначчи, и по достижении ценой уровня 76% надо передвинуть стоп на уровень 51%.
 
И в эту строку if (pp-OrderOpenPrice()>LevelProfit*po), надо поставить что последняя цена - цена открытия ордера > чем цена открытия плюс 51%. И передвинуть стоп в этой строке ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1); на цена открытия +28%.
 
То есть if (pp-OrderOpenPrice()>OrderOpenPrice()/23*51*po) как то так. Но именно так и не получается.
 
vidnab:
Ну цена 1,3926 на которой открыт ордер является 23% уровнем Фибоначчи, и по достижении ценой уровня 76% надо передвинуть стоп на уровень 51%.

Так у вас фибо натянута... наверное между какими-то двумя уровнями... эксперт должен догадаться что это за уровни и что этот ордер открыт именно на 23%, а не просто от балды взяли и открыли.

В вашей задаче вопросов больше чем ответов.

 
Нет он не должен догадываться. Ему просто забиваешь цена открытия это 23%, при достижении 76% передвинуть на 51%.
 
Один раз в код добавить цифры и всё. А отталкиваться он будет от цены открытия.
Причина обращения: