Добрый день. Прошу помощи в MQL5. Возникла проблема с обработкой закрытых позиций. Конечный результат - найти бар открытия последней закрытой сделки и записать данные в файл. В результате запись идет только когда (Closes > Opens)- позиция была на Buy
(Closes >= Opens)- позиция была на sell
Два других файлах по другим условиям не пишет.
datetime start_time = StringToTime(TimeToString(TimeCurrent(), TIME_DATE));
if(!Fn_get_trade_history(start_time = 0)){return;}// подгружаем историю
int deals = HistoryDealsTotal();
for(int i = 0; i < deals; i++)
{
ulong deal_ticket = HistoryDealGetTicket(i);
int position_ID = HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
if(position_ID > last_position_ID)
{
last_position_ID = position_ID;
ENUM_DEAL_ENTRY entry_type = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(deal_ticket,DEAL_ENTRY);
if(entry_type == DEAL_ENTRY_IN){time_in = HistoryDealGetInteger(deal_ticket,DEAL_TIME);}
if(entry_type == DEAL_ENTRY_OUT){time_out = HistoryDealGetInteger(deal_ticket,DEAL_TIME);}
int BarShiftOpen = iBarShift(Symbol(),PERIOD_CURRENT,time_in,false);
int BarShiftClose = iBarShift(Symbol(),PERIOD_CURRENT,time_out,false);
double Opens = iOpen(Symbol(),PERIOD_CURRENT,BarShiftOpen);
double Closes = iClose(Symbol(),PERIOD_CURRENT,BarShiftClose);
if((ENUM_DEAL_TYPE)HistoryDealGetInteger(deal_ticket,DEAL_TYPE) == DEAL_TYPE_BUY)
{
if(Closes > Opens)
{
---------------------
}
if(Closes <= Opens)
{
---------------------
}
}
if((ENUM_DEAL_TYPE)HistoryDealGetInteger(deal_ticket,DEAL_TYPE) == DEAL_TYPE_SELL)
{
if(Closes < Opens)
{
---------------------
}
if(Closes >= Opens)
{
---------------------
}
}