Быстрый поиск уровня с определенным TP

 

Здравствуйте. Такой вопрос.

Предположим, у меня есть одна позиция и я хочу узнать, где мне поставить TP, чтобы прибыль равнялась 100$. Есть ли какой-то простой способ найти этот уровень цены с нужной прибылью?

Я пока что смог только придумать метод перебора. Беру какой-нибудь уровень цены, считаю для него прибыль через CaccountInfo.OrderProfitCheck(), сдвигаю на 1 пипс, считаю снова и так, пока не найду максимально близкий к 100$. Но, мне кажется, это как-то кривовато. Если есть более прямые или элегантные решения, может ссылка на статью, или пример с реализацией, буду благодарен.

Спасибо за ответы.

 
yar.forex:

Здравствуйте. Такой вопрос.

Предположим, у меня есть одна позиция и я хочу узнать, где мне поставить TP, чтобы прибыль равнялась 100$. Есть ли какой-то простой способ найти этот уровень цены с нужной прибылью?

Я пока что смог только придумать метод перебора. Беру какой-нибудь уровень цены, считаю для него прибыль через CaccountInfo.OrderProfitCheck(), сдвигаю на 1 пипс, считаю снова и так, пока не найду максимально близкий к 100$. Но, мне кажется, это как-то кривовато. Если есть более прямые или элегантные решения, может ссылка на статью, или пример с реализацией, буду благодарен.

Спасибо за ответы.

Ответ почти такой же как для вопроса про ноль профита в соседней теме 😀

только теперь нужно приравнять величину профита к сумме пунктов по позициям умноженных на стоимость пункта

также см примеры кода там же в той теме

 
transcendreamer:

Ответ почти такой же как для вопроса про ноль профита в соседней теме 😀

только теперь нужно приравнять величину профита к сумме пунктов по позициям умноженных на стоимость пункта

также см примеры кода там же в той теме

Спасибо за ответ, буду разбираться )

 
yar.forex:

Здравствуйте. Такой вопрос.

Предположим, у меня есть одна позиция и я хочу узнать, где мне поставить TP, чтобы прибыль равнялась 100$. Есть ли какой-то простой способ найти этот уровень цены с нужной прибылью?

Я пока что смог только придумать метод перебора. Беру какой-нибудь уровень цены, считаю для него прибыль через CaccountInfo.OrderProfitCheck(), сдвигаю на 1 пипс, считаю снова и так, пока не найду максимально близкий к 100$. Но, мне кажется, это как-то кривовато. Если есть более прямые или элегантные решения, может ссылка на статью, или пример с реализацией, буду благодарен.

Спасибо за ответы.

double LevelTP(double profit, //профит при котором позиция должна закрыться по ТП

               double OrderLot,  //объем позиции

               string _SymbolOrder) //символ на котором открыта позиция

{

   double PP=profit/(MarketInfo(_SymbolOrder,MODE_TICKVALUE)*OrderLot);

   return(PP);

}


 
transcendreamer:

Ответ почти такой же как для вопроса про ноль профита в соседней теме 😀

только теперь нужно приравнять величину профита к сумме пунктов по позициям умноженных на стоимость пункта

также см примеры кода там же в той теме

Не совсем так.

Нужно сложить цены открытия ордеров и произведения цен открытых ордеров на объемы открытых ордеров

и поделить сумму цены открытых ордеров на суммы произведений )

 
Alexandr Bryzgalov:

Не совсем так.

Нужно сложить цены открытия ордеров и произведения цен открытых ордеров на объемы открытых ордеров

и поделить сумму цены открытых ордеров на суммы произведений )

верно

я слишком упростил 

кстати для полной точности надо ещё поправку на комиссии + возможно свопы

+ подстановка правильной цены аск или бид для ТП при закрытии 

 
Alexandr Bryzgalov:

double LevelTP(double profit, //профит при котором позиция должна закрыться по ТП

               double OrderLot,  //объем позиции

               string _SymbolOrder) //символ на котором открыта позиция

{

   double PP=profit/(MarketInfo(_SymbolOrder,MODE_TICKVALUE)*OrderLot);

   return(PP);

}


Спасибо за пример. Выглядит гораздо проще, чем то, что я делал.

Как я понял, это MQL4. Пытаюсь переделать в MQL5

Я правильно понимаю, что MarketInfo(_SymbolOrder,MODE_TICKVALUE) показывает прибыль при сделке в 1 лот при сдвиге цены на 1 пипс?

Вроде в MQL5 нашел такую штуку SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE). Пока правда не понял, является ли это прямой заменой для MarketInfo(_SymbolOrder,MODE_TICKVALUE) из MQL4.
 
transcendreamer:

Ответ почти такой же как для вопроса про ноль профита в соседней теме 😀

только теперь нужно приравнять величину профита к сумме пунктов по позициям умноженных на стоимость пункта

также см примеры кода там же в той теме

Глянул вашу программу, спасибо. Позаимствовал некоторые фишки в написании кода 👍

 
yar.forex:

Спасибо за пример. Выглядит гораздо проще, чем то, что я делал.

Как я понял, это MQL4. Пытаюсь переделать в MQL5

Я правильно понимаю, что MarketInfo(_SymbolOrder,MODE_TICKVALUE) показывает прибыль при сделке в 1 лот при сдвиге цены на 1 пипс?

Вроде в MQL5 нашел такую штуку SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE). Пока правда не понял, является ли это прямой заменой для MarketInfo(_SymbolOrder,MODE_TICKVALUE) из MQL4.

да, все верно - mql4. Под mql5 будет аналогично разница лишь в функции MarketInfo

 
yar.forex:

Глянул вашу программу, спасибо. Позаимствовал некоторые фишки в написании кода 👍

всегда рад

Причина обращения: