Advertisement
viamvadens

Untitled

Sep 12th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. ТЗ - построение макс просадки по средствам
  2.  
  3. Задача: взять все сделки, построить график просадки, учитывая историю цен (а не только конечную цену), построить графики
  4.  
  5. Берем данные с MQL-канала в CSV формате.
  6. Нас интересуют TIME_OPEN, TIME_CLOSE, SIZE, COMMISSION, SWAP, PROFIT
  7.  
  8. OLD_SIZE = SIZE
  9. Делаем размер лота фиксированным. SIZE = 0.05
  10. Пересчитываем комиссию по формуле COMMISSION = SIZE * 7,53 (да, комиссию из CSV не учитываем совсем)
  11. Пересчитываем профит по формуле PROFIT = PROFIT * (SIZE / OLD_SIZE) + COMMISSION + SWAP
  12.  
  13.  
  14. N = 5
  15.  
  16. Далее, мы берём самую раннюю дату из всех сделок, округляем её до N минут.
  17. И строим хэш-массив от ранней даты до текущей, ключом массива является время в секундах, с шагом N минут.
  18. То есть если дата/время было 2018-01-01 05:32:55, то начинаем мы с 2018-01-01 05:30:00, затем 2018-01-01 05:35:00 и тд
  19.  
  20. Значением по этим ключам будет суммарный минус по всем сделкам на этот момент.
  21. Для этого мы берем каждый трейд, округляем дату, идём циклом с шагом N минут, смотрим в базе histdata цену на текущий момент, вычисляем плавающий профит прибавляем его к метки времени (не забывая про комиссию).
  22.  
  23. В итоге данные выводим в виде графика.
  24. Отдельно текстом выводим минимум на этом графике.
  25.  
  26. Нюансы:
  27. Скрипт будет выполняться довольно долго, поэтому для запуска через браузер нужно
  28. - установить max_execution_time в огромное значение,
  29. - сделать ob_implicit_flush(1);
  30. - построчно выводить каждый трейд после обработки, чтобы видеть ход выполнения и можно было оценить оставшееся время
  31. - полученные данные (для графика) записывать в кэш (в файловый), чтобы не повторять процедуру при перезапуске скрипта
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement