Задачка. Найти точку нулевого профита.

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Задачка. Найти точку нулевого профита.

Сообщение Haos » 20 мар 2018, 08:24

piter, оптимальным форматом для данного раздела является публикация кода при реализации той или иной проблемы в трейдинге роботами (см. множество тем в разделе). При этом лучше всего, когда эта реализация выделена в отдельные функции, а не сокрыта где-то в недрах советника и т.п.. Тогда все желающие смогут скачать её и проверить на практике. Касаемо данной темы, я не увидел где у вас функция по нахождению точки нулевого профита.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Задачка. Найти точку нулевого профита.

Сообщение piter » 21 мар 2018, 04:26

Kalkin писал(а):Вот функция для поиска точки нулевого профита, учитывающая комиссии и накапливающиеся свопы. При локе точка профита будет "0" (отсутствовать).
Код: выделить все
double ZeroLevel()
{
 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)/(MarketInfo(Symbol(),MODE_TICKSIZE)/Point);
 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);
 return (Price);
}

Не сочтите за реферанс, это публичное извинение перед Kalkin ым, очень удобная и точная конструкция, специально вставил её в свой индикатор для проверки, считает быстрее и точнее моей конструкции, оставил для подсчёта нулевого профита, для тех кто принимает решения согласно сложившейся ситуации на рынке.
Благодарю за понимание.
Последний раз редактировалось Haos 21 мар 2018, 05:27, всего редактировалось 1 раз.
Причина: .
Аватар пользователя
piter
 
Сообщений: 32
Зарегистрирован: 09 мар 2018, 00:53
Средств на руках: 6.50 Доллар
Откуда: г. Ессентуки
Группа: Базовая
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения