Средняя цена текущей позиции

 
если позиция одна то вопрос не понятный (убыток /профит/ позиции оценивается по текущим ценам BID ASK и не может быть средним)
 
M_Dimens:
если позиция одна то вопрос не понятный (убыток /профит/ позиции оценивается по текущим ценам BID ASK и не может быть средним)
А что в правиле расчёта среднего, есть обязательное условие: N > 1 ?
 
  1. покупая валютную пару GBP/USD, по котировке 1,6320, вы приобретаете: 100.000 / 1,6320 = 61.274 британских фунтов. Как мы помним, минимальным изменением цены на рынке форекс является пункт. Мы можем очень просто подсчитать его стоимость в долларах США и приблизительно оценить потенциал сделки с этой валютой. В случае с GBP/USD стоимость одного пункта будет равна: 0,0001 * 61.274 = 6,1 доллара США.
  2. Размер стандартного лота для обратных котировок различный и зависит от размера валютной пары. К примеру, для валютной пары USD/JPY она будет составлять 12.500.000 японских йен. Расчет стоимости одного пункта (для данной валютной пары – это 0,01) будет зависеть от текущей котировки самой пары. К примеру, при котировке USD/JPY 91,40 стоимость одного пункта будет равна: (1 / 91,39 – 1/91,40) * 12.500.000 = 14,96 долларов США для одного стандартного лота. Причем, если речь идет о покупке валютной пары, то мы должны подставлять цену покупки, а если о продаже – цену продажи.
  3. Возвращаясь к нашей формуле, давайте подсчитаем результат одной внутридневной (позиция, открываемая и закрываемая в течение одного и того же дня) сделки с парой USD/JPY. Как вы видите, перед нами обратная котировка. На данный момент ее значение 90,68/90,70. В соответствии с нашим прогнозом, значение котировки должно в скором времени пойти вверх. Поэтому мы покупаем половину стандартного лота этой валютной пары по цене 90,70. В течение нескольких часов котировка USD/JPY поднимается до значения 91,45, и мы решаем закрыть сделку. Наш результат:
  4. (91,45 – 90,70) * 100 * 14,96 * 0,5= 561 доллар США
  5. Расчет результатов сделок с кросс-курсами

  6. Подсчитать результат сделки с кросс-курсами валют немного сложнее. Мы уже упоминали в одной из предыдущих глав, что кросс-курсами называются валютные пары, не включающие в себя доллар США. Любой из кросс-курсов представляет собой две долларовые котировки. К примеру, кросс-курс GBP/JPY рассчитывается через котировки GBP/USD и USD/JPY. Для подсчета результата сделки по кросс-курсу нам необходимо сначала подсчитать результат по котировке GBP/USD, а затем – по котировке USD/JPY. После этого оба результата складываются – и вы получаете общий результат сделки.
 

Может автор имелл ввиду уровень безубытка открытых позиций? Рекомендую скрипт от "Хирурга".

//+------------------------------------------------------------------+
//|                                                   Zero_Level.mq4 |
//|                                         Copyright © 2007, Xupypr |
//+------------------------------------------------------------------+
// Скрипт вычисляющий уровни без убытка, на покупку, на продажу с учетом накопленных свопов.
#property copyright "Copyright © 2007, Xupypr"
#include <WinUser32.mqh>
void start()
{
 double BuyLots=0;
 double SellLots=0;
 double BuyProfit=0;
 double SellProfit=0;
 int Total=OrdersTotal();
 for (int i=Total-1;i>=0;i--)
 {
  if (OrderSelect(i,SELECT_BY_POS))
  {
   if (OrderSymbol()!=Symbol()) continue;
   if (OrderType()==OP_BUY)
   {
    BuyLots=BuyLots+OrderLots();
    BuyProfit=BuyProfit+OrderProfit()+OrderCommission()+OrderSwap();
   }
   if (OrderType()==OP_SELL)
   {
    SellLots=SellLots+OrderLots();
    SellProfit=SellProfit+OrderProfit()+OrderCommission()+OrderSwap();
   }
  }
 }
 double Price=0;
 double TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);
 if (BuyLots>0) double BuyLevel=NormalizeDouble(Bid-(BuyProfit/(TickValue*BuyLots)*Point),Digits); else BuyLevel=0;
 if (SellLots>0) double SellLevel=NormalizeDouble(Ask+(SellProfit/(TickValue*SellLots)*Point),Digits); else SellLevel=0;
 if ((BuyLots-SellLots)>0) Price=NormalizeDouble(Bid-((BuyProfit+SellProfit)/(TickValue*(BuyLots-SellLots))*Point),Digits);
 if ((SellLots-BuyLots)>0) Price=NormalizeDouble(Ask+((BuyProfit+SellProfit)/(TickValue*(SellLots-BuyLots))*Point),Digits);
 string Title="Уровень без убытка для "+Symbol();
 string ZeroLevel=" не существует";
 if (Price>0) ZeroLevel=" = "+DoubleToStr(Price,Digits);
 string Buy=" не существует";
 if (BuyLevel>0) Buy=" = "+DoubleToStr(BuyLevel,Digits);
 string Sell=" не существует";
 if (SellLevel>0) Sell=" = "+DoubleToStr(SellLevel,Digits);
 string Message="Уровень без убытка"+ZeroLevel+"\t\nУровень на покупку"+Buy+"\t\nУровень на продажу"+Sell;
 MessageBox(Message,Title,MB_OK|MB_ICONINFORMATION);
}
 
BeerGod:

Может автор имелл ввиду уровень безубытка открытых позиций? Рекомендую скрипт от "Хирурга".


Да-да, спасибо большое за оперативность !! )
Причина обращения: