Как узнать в советнике, было ли снятие или пополнение счёта ?
Есть готовая функция такого определения ?
Пройтись по истории счета и найти балансовые операции. Они имеют тип, отличный от типов ордеров.
Это как?
По ордеру можно вытащить всё, это я знаю
if(OrderType()==OP_BUY)
.......
.......
.......
Это как?
По ордеру можно вытащить всё, это я знаю
Да, правильно. Только тип будет не OP_BUY, не OP_SELL и не один из типов отложенных ордеров. Смотрите, есть ли у операции прибыль или убыток. Если отличен от нуля, то это балансовая операция.
Смотрите, есть ли у операции прибыль или убыток. Если отличен от нуля, то это балансовая операция.
Вот тут я ни чего не понял))
Вот тут я ни чего не понял))
for (int i = OrdersHistoryTotal() - 1; i >= 0; --i) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderType() > OP_SELLSTOP) Print("Балансовая операция. Сумма: ", OrderProfit(), ", комментарий: ", OrderComment());
Так правильно, или ошибка?
for (int i = OrdersHistoryTotal() - 1; i >= 0; --i)
Так правильно, или ошибка?
В данном случае постинкремент или преинкремент - неважно. Можно и так, и сяк. Ошибки нет.
В данном случае постинкремент или преинкремент - неважно. Можно и так, и сяк. Ошибки нет.
При вызове этой функции будет значение (-nnn) снятие или (+nnn) пополнение, а по умолчанию =0 ?
void start() { if(Money()!=0.0) { if(Money()<0) //Был вывод средств if(Money()>0) //Было пополнение средств } } //+------------------------------------------------------------------+ //| Балансовая операция | //+------------------------------------------------------------------+ double Money(){ double prf=0.0; for(i=OrdersHistoryTotal()-1; i>=0; i--) if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()>5){ prf=OrderProfit(); Print("Балансовая операция. Сумма: ", prf, ", комментарий: ", OrderComment()); } return(prf);}
При вызове этой функции будет значение (-nnn) снятие или (+nnn) пополнение, а по умолчанию =0 ?
Да, но только первого в истории. По большому счету получите сумму, которую внесли первой после открытия счета. Минус не получите, т. к. изначально баланса равен нулю (депозит можно только пополнить, снимать еще нечего).
Ну и не забудьте отобразить всю историю счета перед использованием.
Да, но только первого в истории. По большому счету получите сумму, которую внесли первой после открытия счета. Минус не получите, т. к. изначально баланса равен нулю и его можно только пополнить.
Такое не подходит.
Сделал по сравнению времени закрытия позиции и времени запомненное при изменении баланса.
Если последнее запомненное время переменной баланса больше времени закрытия позиции и в этот момент баланс изменился, то было пополнение или снятие
Если последнее запомненное время переменной баланса меньше времени закрытия позиции и в этот момент баланс изменился, то было закрытие позиции

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как узнать в советнике, было ли снятие или пополнение счёта ?
Есть готовая функция такого определения ?