Эта функция при компилировании выдает предупреждение possible loss of data due to type conversion , а в тестере вообще не работает
double profit = 0;
profit = profitB / Point + profitS / Point;
barudkinarseniy:
Эта функция при компилировании выдает предупреждение possible loss of data due to type conversion , а в тестере вообще не работает
Эта функция при компилировании выдает предупреждение possible loss of data due to type conversion , а в тестере вообще не работает
//+------------------------------------------------------------------+ //Возвращает суммарный профит открытых позиций в пунктах int GetProfitOpenPosInPoint() { int profit = 0; double profitB = 0.0; double profitS = 0.0; for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() <= 1) { if(OrderType() == OP_BUY) profitB = profitB + NormalizeDouble(Bid-OrderOpenPrice(),Digits); else if(OrderType() == OP_SELL) profitS = profitS + NormalizeDouble(OrderOpenPrice()-Ask,Digits); } } } profit = (int)(profitB + profitS) / Point; return(profit); } //+------------------------------------------------------------------+
Stanislav Aksenov:
Все заработало Спасибо! Но при компиляции все равно выдает предупреждение, и мне нужен суммарный профит всех открытых позиций т.к. советник торгует сеткой ордеров и должен закрыть все ордера при достиженни профита в нное кол-во пунктов, так вот вы мне не подскажите как правильно вернуть профит в пунктах?
Andrey F. Zelinsky:
Этот вариант тоже работает и так же при компиляции все равно выдает предупреждение о возможной потере данных, а это ведь не есть гуд((((
barudkinarseniy:
Этот вариант тоже работает и так же при компиляции все равно выдает предупреждение о возможной потере данных, а это ведь не есть гуд((((
Этот вариант тоже работает и так же при компиляции все равно выдает предупреждение о возможной потере данных, а это ведь не есть гуд((((
profit = int((profitB + profitS) / Point);
barudkinarseniy:
Этот вариант тоже работает и так же при компиляции все равно выдает предупреждение о возможной потере данных, а это ведь не есть гуд((((
Этот вариант тоже работает и так же при компиляции все равно выдает предупреждение о возможной потере данных, а это ведь не есть гуд((((
//+------------------------------------------------------------------+ //Возвращает суммарный профит открытых позиций в пунктах int GetProfitOpenPosInPoint() { int profit = 0; double profitB = 0.0; double profitS = 0.0; for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() <= 1) { if(OrderType() == OP_BUY) profitB = profitB + NormalizeDouble(Bid-OrderOpenPrice(),Digits); else if(OrderType() == OP_SELL) profitS = profitS + NormalizeDouble(OrderOpenPrice()-Ask,Digits); } } } profit = (int)((profitB + profitS) / Point); return(profit); } //+------------------------------------------------------------------+
Andrey F. Zelinsky:
Спасибо все заработало!!! Но я вначале не уточнил, что мне надо общий профит в пунктах когда открыто по несколько ордеров в разных направлениях т.е. и баевые и селовые! Может быть вы мне еще разок поможете))
barudkinarseniy:
Спасибо все заработало!!! Но я вначале не уточнил, что мне надо общий профит в пунктах когда открыто по несколько ордеров в разных направлениях т.е. и баевые и селовые! Может быть вы мне еще разок поможете))
Так считает же -- общий профит в пунктах
Спасибо все заработало!!! Но я вначале не уточнил, что мне надо общий профит в пунктах когда открыто по несколько ордеров в разных направлениях т.е. и баевые и селовые! Может быть вы мне еще разок поможете))
Andrey F. Zelinsky:
Так считает же -- общий профит в пунктах
Да считает, но только если ордера открыты в одну сторону например если бай то он считает только баевые, а когда поочередно открывается на бай потом на селл он замирает на количествах пунктов равному рассоянию между этими ордерами (для проверки я вывел этот profit функцией Comment на график)
Так считает же -- общий профит в пунктах
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь