Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 88

 
Gregory Kovalenko:

Здравствуйте. Как получить текущий профит/убыток по текущему открытому ордеру?

Пробую 

 - возвращает только положительный, профит, если позиция в минусе в моменте, убыток не показывает.

P.S. В истории ордеров OrderProfit() показывает и минус.

Как вы пытаетесь получить профит, покажите весь код
 

касательно текущего профита по ордеру (не наiел инициатора поста)

double profit=OrderProfit()+OrderSwap()+OrderCommission();
 
Renat Akhtyamov:

касательно текущего профита по ордеру (не наiел инициатора поста)


спасибо, действительно, был ошибка в логике кода, по этому 
double profit=OrderProfit()+OrderSwap()+OrderCommission();

не работал.

Теперь возник такой интересный вопрос. 

Смотрю в последний ордер в истории, вижу убыток. Хочу сократить tp и увеличить лот. tp - 

MarketInfo(Symbol(),MODE_STOPLEVEL)

Как рассчитать какой лот нужен, зная текущую цену для открытия и новый tp - что бы закрыть убыток?

 
Gregory Kovalenko:

спасибо, действительно, был ошибка в логике кода, по этому 

не работал.

Теперь возник такой интересный вопрос. 

Смотрю в последний ордер в истории, вижу убыток. Хочу сократить tp и увеличить лот. tp - 

Как рассчитать какой лот нужен, зная текущую цену для открытия и новый tp - что бы закрыть убыток?

Вопрос конечно интересный, но относится он к разработке стратегии. Лично я - пас.
 
Gregory Kovalenko:  Как рассчитать какой лот нужен, зная текущую цену для открытия и новый tp - что бы закрыть убыток?

Рассчитываете, какую часть убытка закроет ордер с лотом, равным OrderLots(). Открывает ордер с лотом, равным OrderLots(), деленным на полученную величину.

Иными словами, если OrderLots() закроет 0.5 убытка, открываете ордер с лотом OrderLots()/0.5 = OrderLots()*2.

Если OrderLots() дважды закроет убыток, используете OrderLots() / 2

 
LRA:

Рассчитываете, какую часть убытка закроет ордер с лотом, равным OrderLots(). Открывает ордер с лотом, равным OrderLots(), деленным на полученную величину.

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

я по четверке спросить

у всех в настройках графиков ограничения стоят в 3000 пипсов,  или у кого-нибудь вообще маштабирование по вертикали работает ?

вот скринsjfhakslljas


 

Применение "зацикленных программ"

Объясните, пожалуйста, плюсы и минусы. Это  лучше чем ждать нового тика от start()? Возрастает ли скорость реакции на новый тик у такой обработки?

start()
   {
   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }
   return;
   }

 
smart_man:

Применение "зацикленных программ"

Объясните, пожалуйста, плюсы и минусы. Это  лучше чем ждать нового тика от start()? Возрастает ли скорость реакции на новый тик у такой обработки?

start()
   {
   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }
   return;
   }

Не стоит так делать. Перерасход по ресурсам большой будет. И чем не устраивает скорость реакции без зацикливания?
 
smart_manОбъясните плюсы и минусы. Это  лучше чем ждать нового тика от start()? Возрастает ли скорость реакции на новый тик у такой обработки?

   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }

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