Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
HistoryPositionInfo version 2 - библиотека для MetaTrader 5
- Просмотров:
- 2681
- Рейтинг:
- Опубликован:
- 2017.07.06 09:26
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Версия 1.0: HistoryPositionInfo.
Новое в версии 2:
функция GetProfitInPoints осталась, но рекомендуется теперь использовать новую функцию GetProfit:
bool GetProfit(double &profit_in_points, double &commission, double &swap, double &profit_in_money);
Функция GetProfit возвращает для восстановленной позиции, кроме прибыли в пунктах: комиссию, своп и прибыль в деньгах.
Класс CHistoryPositionInfo предназначен для получения прибыли позиции в пунктах, комиссии, свопа и прибыли в деньгах на основании торговой истории.
Описание класса
Класс CHistoryPositionInfo обеспечивает получение прибыли позиции в пунктах, комиссии, свопа и прибыли в деньгах на основании торговой истории.
Декларация
Заголовок
Методы класса по группам
Инициализация | |
---|---|
Init | Инициализация идентификатором позиции |
Доступ в результату вычислений | |
GetProfitInPoints - устаревший метод. Рекомендуется использовать GetProfit | Получение прибыли позиции в пунктах |
GetProfit | Получение прибыли позиции в пунктах, комиссии, свопа и прибыли в деньгах |
Установка параметров | |
LogErrors | Включение/выключение логирования ошибок |
PrintDeals(const bool value) | Включение/выключение режима вывода сделок |
Вывод сделок | |
PrintDeals(void) | Вывод сделок, которые сформировали позицию |
Пример работы с классом CHistoryPositionInfo: запросим торговую историю за пять дней, сформируем массив всех встречающихся идентификаторов позиций, затем в цикле по полученному массиву распечатываем прибыль позиции в пунктах, комиссии, своп и прибыль в деньгах на основании торговой истории:
//+------------------------------------------------------------------+ //| TestHistoryPositionInfo.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "2.000" #property script_show_inputs //--- input datetime from_date = __DATE__-60*60*24*5; // from date (current time - 5 days) input datetime to_date =__DATE__+60*60*24; // to date (current time + 1 days) input bool log_errors = true; // logging errors input bool print_deals = true; // print deals #include <HistorySelect_\HistoryPositionInfo.mqh> //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long arr_tickets[]; //--- request trade history HistorySelect(from_date,to_date); //--- uint total=HistoryDealsTotal(); ulong ticket=0; long position_id=0; //--- for all deals for(uint i=0;i<total;i++) { //--- try to get deals ticket if((ticket=HistoryDealGetTicket(i))>0) { //--- get deals properties position_id=HistoryDealGetInteger(ticket,DEAL_POSITION_ID); int arr_size=ArraySize(arr_tickets); bool search=false; for(int ii=0;ii<arr_size;ii++) { if(arr_tickets[ii]==position_id) { search=true; continue; } } if(!search) { ArrayResize(arr_tickets,arr_size+1,100); arr_tickets[arr_size]=position_id; } } } //--- int arr_size=ArraySize(arr_tickets); for(int i=0;i<arr_size;i++) { Print(""); Print("Search deals with POSITION_IDENTIFIER ",IntegerToString(arr_tickets[i])); CHistoryPositionInfo HistoryPositionInfo; //--- init position identifier HistoryPositionInfo.Init(arr_tickets[i]); //--- los errors HistoryPositionInfo.LogErrors(log_errors); //--- print deals HistoryPositionInfo.PrintDeals(print_deals); //--- double profit_in_points=0.0; double commission=0.0; double swap=0.0; double profit=0.0; if(HistoryPositionInfo.GetProfit(profit_in_points,commission,swap,profit)) Print("Profit in points ",DoubleToString(profit_in_points,1), ", commission ",DoubleToString(commission,2), ", swap ",DoubleToString(swap,2), ", profit ",DoubleToString(profit,2)); } } //+------------------------------------------------------------------+
Класс-контейнер, который использует цепочку методов для быстрого добавления параметров и удаления строк кода.
Get_Rich_or_Die_Trying_GBPТорговля на PERIOD_M1 (M1). Подсчёт бычьих и медвежьих баров.
Утилита для записи тиковых котировок в формате CSV и BIN, гибкий выбор набора символов для записи.
Omni_TrendТрендовый индикатор NRTR типа с использованием мувинга и ATR.