Точка равновесия и точка нулевого профита

 

При заходе в парные отрицательные локи создается такая ситуация, когда мы имеем скопление ордеров Бай вверху, и Селл внизу, ордера естественно разной лотности, и цены . а где то по середине лежит точка равновесия системы локов - то есть там где значения лоссов Бай равны значению лоссов Селл.

При локе одностороннем, то есть когда при лосе наращиваются позиции в эту же сторону где то есть точка нулевого профита, выйти по ней не проблема, а вот как расчитать?

Собственно вопрос : А не завалялось ли у кого формулы расчета ? готовый скрипт или функцию не прошу.

 

Не искали пока? Помню, поднималась уже эта тема... Попробуйте "Уровень безубытка для множества ордеров"

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

Как-то начинал делать, но пока забросил...

double BezUb() 
{
double buylots, selllots, cenatic, bzb, piphod;
for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--) 
  { 
    if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))continue;
    if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) buylots+=OrderLots();
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) selllots+=OrderLots(); 
  } 
  cenatic=(buylots-selllots)*MarketInfo(Symbol(),MODE_TICKVALUE);
  piphod=AccountProfit()/cenatic;
  bzb=Bid-piphod*Point;
  return(bzb);
}

Работа основана на определение уровня по одному инструменту,

(не допилено определение профита по конкретному для вычислений)

типа открываем график, а там линия где мы будем в 0 ;))) при текущем лосе.

А уже зная уровень, точнее цену легко назначить и обьект, линию например.

ЗА работу не ручаюсь...! :)))))))))))))))))))

 
m_a_sim писал(а) >>
простая арифметика

Зачот! Блин а я думал ботаника ! так приведите пример ! " в целях, так сказать повышения образованности " (с)

 

навскидку, хоть и не математик

ТочкаРавновесия =  ТекущаяЦена - (ПрофитБаев - ПрофитСеллов) * ЦенаТикаСеллов / ЦенаТикаБаев

ЦенаТика вычесляется выше у комбата, только надо разделить на баи и селлы

 
xrust >>:

Зачот! Блин а я думал ботаника ! так приведите пример ! " в целях, так сказать повышения образованности " (с)

lot1*(X+d)=-lot2*d, где X- расстояние между ордерами, из уравнения находим d.  мне такую же задачу пришлось решать в стратегии '"Безубыточная" стратегия'

 

В общем Спасибо всем, принявшим участие в обсуждении проблемы, вот сделал простенькую функцию может кому понадобиться в дальнейшем :

//-----------------------------------------------------------------------------+
// Точка равновесия                                                            |
//-----------------------------------------------------------------------------+
double NullDot(){double prise=0;int count=0,countlot=0;
if(OrdersTotal()<1){return(Bid);}
double MinLot=MarketInfo(Symbol(),MODE_MINLOT);
for(int i=0;i<OrdersTotal();i++){
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
    if(OrderSymbol()==Symbol()){
      countlot=(OrderLots()/MinLot);
      count=count+countlot;
      prise=prise+(OrderOpenPrice()*countlot);
    }
  }
}
prise=prise/count;
return(prise);
}
Функция возвращает среднее арифметическое от цены всех открытых ордеров на данной паре, соответственно лотности каждого ордера : чем больше лот - тем весомее ценовой уровень, при отсутствии ордеров возвращает Bid
Причина обращения: