Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых ордеров терминала. Отличить открытый ордер от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является...
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает суммарный профит в валюте депозита |//| закрытых с определённой даты позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| dt - Дата и время в секундах с 1970 года ( 0 - с начала истории) |//+----------------------------------------------------------------------------+double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1, datetime dt=0)
{
double p=0;
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (dt<OrderCloseTime()) {
p+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
}
}
return(p);
}
// код Кима изменил на это и теперь от считает профит за сегодня и обнуляется в полночьdouble GetProfitFromDateInCurrency1(string sy="0", int op=-1, int mn=-1)
{
double p=0;
int i, k=OrdersHistoryTotal();
datetime dt=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (dt<OrderCloseTime()) {
p+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
}
}
return(p);
}
Здравствуйте. Помогите плиз с функцией подсчета профита от закрытых сделок вчера, позавчера и тд. хочу сделать Профит за сегодня:. профит за вчера, профит за позавчера
Для расчета профит за сегодня скопировал код/
или как сделать так, чтобы значение с профит сегодня переносил ниже в профит вчера, потом в позавчера
Здравствуйте. Помогите плиз с функцией подсчета профита от закрытых сделок вчера, позавчера и тд. хочу сделать Профит за сегодня:. профит за вчера, профит за позавчера
Для расчета профит за сегодня скопировал код/
или как сделать так, чтобы значение с профит сегодня переносил ниже в профит вчера, потом в позавчера
добавьте еще один параметр в описание ф-ции и измените условие проверки:
double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1, datetime dtstart, datetime dtstop)
....
if (OrderCloseTime()>=dtstart && dtstop<=OrderCloseTime()) {
Можно читать тикет ордера .
Есть ли аналогичная функция
OrderGetTicket();для mql4?
Есть ли аналогичная функция
для mql4?
Есть, только не совсем такая. После выбора ордера надо определить тип ордера и тикет другими функциями.
Добрый день.
Есть функция для открытия сетки отложек с увеличением лота на i,
Нужно чтобы сетка (лотов)строилась по мартину, т.е. лот1 =0.01, лот2=0.02, лот3 =лот2+лот 1. ,
в функции fLots() как это описать?
Хочу проверить в onInit есть ли открытые позиции, но почему-то не получается выбрать:
Получаю:
2019.05.01 00:11:32.177 breakeven (GBPUSD,H1) ticket(1) = 0
2019.05.01 00:11:32.177 breakeven (GBPUSD,H1) false
2019.05.01 00:11:32.177 breakeven (GBPUSD,H1) Position Total = 1
Хочу проверить в onInit есть ли открытые позиции, но почему-то не получается выбрать:
Получаю:
2019.05.01 00:11:32.177 breakeven (GBPUSD,H1) ticket(1) = 0
2019.05.01 00:11:32.177 breakeven (GBPUSD,H1) false
2019.05.01 00:11:32.177 breakeven (GBPUSD,H1) Position Total = 1
Сразу, что бросилось в глаза:
Дальше не глядел, потому, что должно быть так при обратном цикле:
Сразу, что бросилось в глаза:
Дальше не глядел, потому, что должно быть так при обратном цикле:
А мне больше нравится такая запись
А мне больше нравится такая запись
Ну... Я показал понятную для начинающих ;)
Здравствуйте. Помогите плиз с функцией подсчета профита от закрытых сделок вчера, позавчера и тд. хочу сделать Профит за сегодня:. профит за вчера, профит за позавчера
Для расчета профит за сегодня скопировал код/
или как сделать так, чтобы значение с профит сегодня переносил ниже в профит вчера, потом в позавчераЗдравствуйте. Помогите плиз с функцией подсчета профита от закрытых сделок вчера, позавчера и тд. хочу сделать Профит за сегодня:. профит за вчера, профит за позавчера
Для расчета профит за сегодня скопировал код/
или как сделать так, чтобы значение с профит сегодня переносил ниже в профит вчера, потом в позавчерадобавьте еще один параметр в описание ф-ции и измените условие проверки: