ув. форумчане, подскажите как можно выводить среднию проигрышную сделку в окне терминала? (типа - Average Lost Trade: -9.56)
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- [АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5.
- графики цены в "separate_window"
а как это вытянуть из истории сделок все убыточные сделки по програмному?
а кто нибудь может накидать програмный код? заранее благодарен!
вот народ наглючий пошел. даже скопировать из справки облом....
int i,accTotal=OrdersHistoryTotal(); double loss=0; for(i=0;i<accTotal;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } if (OrderProfit()<0) loss+=OrderProfit(); } if (accTotal>0) loss=loss/accTotal; // вот и получили средюю убыточную Comment("Средняя убыточная сделка="+DoubleToStr(loss, 2)); // вывели на экран
Пардон конечно, не мне Вас поправлять, но всё же ... суммарный убыток надо делить не на общее кол-во сделок, а на кол-во УБЫТОЧНЫХ сделок если правильно понял "техзадание":
int i,accTotal=OrdersHistoryTotal(); int lt=0; // кол-во убыточных сделок double loss=0; for(i=0;i<accTotal;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } if (OrderProfit()<0) { loss+=OrderProfit(); lt++; } } if (accTotal>0) loss=loss/lt; // вот и получили средюю убыточную Comment("Средняя убыточная сделка="+DoubleToStr(loss, 2)); // вывели на экран
goldtrader писал(а) >>
Пардон конечно, не мне Вас поправлять, но всё же ... суммарный убыток надо делить не на общее кол-во сделок, а на кол-во УБЫТОЧНЫХ сделок если правильно понял "техзадание":
Тоже поправлю. А то вдруг убыточных сделок не было. Тогда ж обломс будет, в смысле деление на ноль
int i,accTotal=OrdersHistoryTotal(); int lt=0; // кол-во убыточных сделок double loss=0; for(i=0;i<accTotal;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } if (OrderProfit()<0) { loss+=OrderProfit(); lt++; } } if (lt>0) loss=loss/lt; // вот и получили средюю убыточную Comment("Средняя убыточная сделка="+DoubleToStr(loss, 2)); // вывели на экран
всем спасибо за правки. :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь