Не искали пока? Помню, поднималась уже эта тема... Попробуйте "Уровень безубытка для множества ордеров"
Как-то начинал делать, но пока забросил...
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 ;))) при текущем лосе.
А уже зная уровень, точнее цену легко назначить и обьект, линию например.
ЗА работу не ручаюсь...! :)))))))))))))))))))
навскидку, хоть и не математик
ТочкаРавновесия = ТекущаяЦена - (ПрофитБаев - ПрофитСеллов) * ЦенаТикаСеллов / ЦенаТикаБаев
ЦенаТика вычесляется выше у комбата, только надо разделить на баи и селлы
Зачот! Блин а я думал ботаника ! так приведите пример ! " в целях, так сказать повышения образованности " (с)
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
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При заходе в парные отрицательные локи создается такая ситуация, когда мы имеем скопление ордеров Бай вверху, и Селл внизу, ордера естественно разной лотности, и цены . а где то по середине лежит точка равновесия системы локов - то есть там где значения лоссов Бай равны значению лоссов Селл.
При локе одностороннем, то есть когда при лосе наращиваются позиции в эту же сторону где то есть точка нулевого профита, выйти по ней не проблема, а вот как расчитать?
Собственно вопрос : А не завалялось ли у кого формулы расчета ? готовый скрипт или функцию не прошу.