Aleksey Semenov: если у вас например терминал забит сотнями неиспользуемых глоб переменных то да - переборка закончится печально, если нет то работает вполне быстро, если написать правильно
Aleksey Semenov: если у вас например терминал забит сотнями неиспользуемых глоб переменных то да - переборка закончится печально, если нет то работает вполне быстро, если написать правильно
Я не против, но лучше всё-же по возможности находить более лёгкие пути. Или мы не ищем лёгких путей) ?
Так и не решили задачу, а ведь это нужная функция и многие этим пользуются и не знают, что профит закрытых ордеров не правильно считает. Поэтому простое решение: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); не прокатит, а все так и ляпают в своих кодах с перебором исторических ордеров.
Грамотного решения даже по всей сети нет - "google" говорит. Получается что все пользуются стандартным не правильным решением, или правильным но только оного последнего ордера ?
Так и не решили задачу, а ведь это нужная функция и многие этим пользуются и не знают, что профит закрытых ордеров не правильно считает. Поэтому простое решение: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); не прокатит, а все так и ляпают в своих кодах с перебором исторических ордеров.
Грамотного решения даже по всей сети нет - "google" говорит. Получается что все пользуются стандартным не правильным решением, или правильным но только оного последнего ордера ?
Renat Akhtyamov: Мы посоветовали, Вы не поняли....
Хорошо, тогда по полочкам: есть время закрытия ордеров, есть тикет или номер ордеров которые совпадают по времени закрытия. Как это объединить и посчитать профит этих ордеров? Вроде не сложно, но так и не понятно.
Хорошо, тогда по полочкам: есть время закрытия ордеров, есть тикет или номер ордеров которые совпадают по времени закрытия. Как это объединить и посчитать профит этих ордеров? Вроде не сложно, но так и не понятно.
и где это все это есть? вы это записываете куда-то в переменную или массив? покажите сначала где вы это храните, дальше будет видно что дальше делать.
если у вас например терминал забит сотнями неиспользуемых глоб переменных то да - переборка закончится печально, если нет то работает вполне быстро, если написать правильно
если у вас например терминал забит сотнями неиспользуемых глоб переменных то да - переборка закончится печально, если нет то работает вполне быстро, если написать правильно
Я не против, но лучше всё-же по возможности находить более лёгкие пути. Или мы не ищем лёгких путей) ?
Я не против, но лучше всё-же по возможности находить более лёгкие пути. Или мы не ищем лёгких путей) ?
Так и не решили задачу, а ведь это нужная функция и многие этим пользуются и не знают, что профит закрытых ордеров не правильно считает.
Поэтому простое решение: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); не прокатит, а все так и ляпают в своих кодах с перебором исторических ордеров.
Грамотного решения даже по всей сети нет - "google" говорит. Получается что все пользуются стандартным не правильным решением, или правильным но только оного последнего ордера ?
Так и не решили задачу, а ведь это нужная функция и многие этим пользуются и не знают, что профит закрытых ордеров не правильно считает.
Поэтому простое решение: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); не прокатит, а все так и ляпают в своих кодах с перебором исторических ордеров.
Грамотного решения даже по всей сети нет - "google" говорит. Получается что все пользуются стандартным не правильным решением, или правильным но только оного последнего ордера ?
Мы посоветовали, Вы не поняли....
Хорошо, тогда по полочкам: есть время закрытия ордеров, есть тикет или номер ордеров которые совпадают по времени закрытия. Как это объединить и посчитать профит этих ордеров?
Вроде не сложно, но так и не понятно.
Так считает правильно, но только если закрылись 1-3 ордера, если больше 3-х, то профит с не понятным значением получается.
Что ещё можно тут добавить?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
Так считает правильно, но только если закрылись 1-3 ордера, если больше 3-х, то профит с не понятным значением получается.
Что ещё можно тут добавить?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
Вот Вы не пытались лично задаться вопросом - "Почему и что написано в моём коде?"
Я уже Вам выше трижды сказал что и как нужно сделать.
Выкладывайте весь код, иначе не сдвинуться с мёртвой точки.
Хорошо, тогда по полочкам: есть время закрытия ордеров, есть тикет или номер ордеров которые совпадают по времени закрытия. Как это объединить и посчитать профит этих ордеров?
Вроде не сложно, но так и не понятно.