Функция Расчёта Цены Безубытка - страница 2

 
StatBars:

Однотипных да, не спорю...
ну а в чем проблема разделите на бай и сел и для кождого типа ордеров возвращайте значение безубытка
 
sanyooooook:
ну а в чем проблема разделите на бай и сел и для кождого типа ордеров возвращайте значение безубытка

Мне нужна цена безубытка по всем ордерам одной вал пары, а не по раздельности по типу ордера...
 
StatBars:

Потому что когда много разных открытых ордеров при Ask/Bid равной той что выдаёт одна из функций эквити не равно балансу...

Не совсем понятно при чём тут эквити и баланс.

Моя функция на эту тему работает итерационно и я ей уже не один год пользуюсь. Ошибок нет это точно. Применял где только можно.

Если уничтожить всё, что связано с MAG,то можно и без него.

// Запрос функции из эксперта или скрипта      BEZ(Magic)
//+---------------- Функция подсчёта безубытка  -------------------------------------------+
double BEZ( int MAG)
{
 int Sp= MarketInfo(Symbol(),MODE_SPREAD);  
double B2_B=0,B2_S=0,B2_LB=0,B2_LS=0,BSw=0,SSw=0;
      for(int b2=0;b2<OrdersTotal();b2++) //  
      {
      if(OrderSelect(b2,SELECT_BY_POS,MODE_TRADES)==false)    continue;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAG)
      {
           if (OrderType()==OP_BUY)
           {
           B2_B=((B2_B*B2_LB)+(OrderOpenPrice()*OrderLots()))/(B2_LB+OrderLots());
           B2_LB=B2_LB+OrderLots();
           BSw=BSw+OrderSwap();
            }
                if (OrderType()==OP_SELL)
                {
           B2_S=((B2_S*B2_LS)+(OrderOpenPrice()*OrderLots()))/(B2_LS+OrderLots());
           B2_LS=B2_LS+OrderLots();
           SSw=SSw+OrderSwap();
               }
            }}
double M2B=0,M2S=0 ,M;           
    if (B2_LB>B2_LS)   // Идём вверх
{
for(int J2=0;J2<10000;J2++)
    {
    M2B=J2*B2_LB*10;
    M2S=((B2_B-B2_S+Sp*Point)/Point+J2)*(B2_LS*(-10));
    if (M2B+M2S+BSw+SSw>=0) 
        {
        M=NormalizeDouble(B2_B+J2*Point,Digits);
        break;
        }}} 
if (B2_LS>B2_LB)  //  Идём вниз
{
for(int J3=0;J3<10000;J3++)
    {
    M2S=J3*B2_LS*10;
    M2B=((B2_B-B2_S+Sp*Point)/Point+J3)*(B2_LB*(-10));
    if (M2S+M2B+BSw+SSw>=0) 
        {
        M=NormalizeDouble(B2_S-J3*Point,Digits);
        break;
        }}}
              
//----
   return(M);
   }
//   }
//+------------------------------------------------------------------+
 
StatBars:

Мне нужна цена безубытка по всем ордерам одной вал пары, а не по раздельности по типу ордера...
так Санек и берет среднеарифметическое безубытков всех ордеров..
 
keekkenen:
так Санек и берет среднеарифметическое безубытков всех ордеров..
Попробуйте сделать советник с усреднением или мартином, или локом или всё вместе и увидите что если закрывать все ордера в точках которые показывают функции 0 не будет(естественно даже с погрешностями....)
 
keekkenen:
так Санек и берет среднеарифметическое безубытков всех ордеров..
я так понял: на каком уровне цены общий профит всех открытых ордеров будет равен нулю
 
sanyooooook:
я так понял: на каком уровне цены общий профит всех открытых ордеров будет равен нулю

Да, правильно.
 
zhuki:

Не совсем понятно при чём тут эквити и баланс.

Моя функция на эту тему работает итерационно и я ей уже не один год пользуюсь. Ошибок нет это точно. Применял где только можно.

Если уничтожить всё, что связано с MAG,то можно и без него.


Ваша функция тоже не правильно работает...

 
StatBars:

Ваша функция тоже не правильно работает...

Положите величины поз и их лоты,я проверю.

Попробуйте скрипт.

Файлы:
bezubytok.mq4  4 kb
 
Пример на RSI
Alpari-Demo (Build 218)

СимволEURUSD (Euro vs US Dollar)
Период1 Минута (M1) 2008.05.05 00:02 - 2009.01.19 15:49 (2008.05.04 - 2009.05.06)
МодельКонтрольные точки (очень грубый метод, результаты нельзя принимать во внимание)
ПараметрыPeriod_RSI=5; Price_RSI=5; H_Level=70; L_Level=30; IntervalNextTrade=20; CountTrades=5; CloseAll=true; lot=0.1; lot_koef=2; Magic_Number=894561;
Баров в истории186944Смоделировано тиков1283595Качество моделированияn/a
Ошибки рассогласования графиков0
Начальный депозит705032704.00
Чистая прибыль200.00Общая прибыль320.00Общий убыток-120.00
Прибыльность2.67Матожидание выигрыша66.67
Абсолютная просадка50.00Максимальная просадка90.00 (0.00%)Относительная просадка0.00% (90.00)
Всего сделок3Короткие позиции (% выигравших)2 (50.00%)Длинные позиции (% выигравших)1 (100.00%)
Прибыльные сделки (% от всех)2 (66.67%)Убыточные сделки (% от всех)1 (33.33%)
Самая большаяприбыльная сделка300.00убыточная сделка-120.00
Средняяприбыльная сделка160.00убыточная сделка-120.00
Максимальное количествонепрерывных выигрышей (прибыль)2 (320.00)непрерывных проигрышей (убыток)1 (-120.00)
Максимальнаянепрерывная прибыль (число выигрышей)320.00 (2)непрерывный убыток (число проигрышей)-120.00 (1)
Среднийнепрерывный выигрыш2непрерывный проигрыш1

ВремяТипОрдерОбъёмЦенаS / LT / PПрибыльБаланс
12008.05.05 00:16sell11.001.543400.000000.00000
22008.05.05 00:47buy22.001.542900.000000.00000
32008.05.05 02:22modify11.001.543400.000001.54340
42008.05.05 02:22sell32.001.544700.000000.00000
52008.05.05 02:40close at stop32.001.544600.000000.0000020.00705032724.00
62008.05.05 02:40close at stop22.001.544400.000000.00000300.00705033024.00
72008.05.05 02:40close at stop11.001.544600.000001.54340-120.00705032904.00
Причина обращения: