Столкнулся с некоторым парадоксом. В терминале вижу прибыльную позицию, а советник выдает что позиция убыточная.
Как такое может быть и почему? Может я не правильно что то определяю?
Потому что программист из тебя, как из меня папа римский.
1. Когда пишешь if, не пиши результат в ту же строку, это не по госту.
2. У тебя нету else, из-за этого всегда возвращается true.
Правильно так:
bool CheckProfitKakNado() { if(PositionSelect(_Symbol)) if(PositionGetDouble(POSITION_PROFIT)<0) return (false); else return(true); }
или вот такой вариант
HistorySelect(TimeforCoefVolum,TimeCurrent()); uint total=HistoryDealsTotal(); ulong ticket=0; int profit=0; for(uint i=0;i<total;i++) { if((ticket=HistoryDealGetTicket(i))>0) { if(_Symbol==HistoryDealGetString(ticket,DEAL_SYMBOL)) { if(HistoryDealGetInteger(ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT) { if(HistoryDealGetDouble(ticket,DEAL_PROFIT)>0) profit++; } } } }
Потому что программист из тебя, как из меня папа римский.
1. Когда пишешь if, не пиши результат в ту же строку, это не по госту.
2. У тебя нету else, из-за этого всегда возвращается true.
Правильно так:
Я же написал...советник при прибыльной позе выдает что она убыточная.... а не наоборот
поэтому и Ваш код и мой....выдаст одно и то же....
тем более у меня код немного посложнее ... это только основная идея
Потому что программист из тебя, как из меня папа римский.
1. Когда пишешь if, не пиши результат в ту же строку, это не по госту.
2. У тебя нету else, из-за этого всегда возвращается true.
Правильно так:
да и какой гост? у каждого своя манера написания кода, и тем более как для меня, мне так понятнее...
тоже не соответствует действительности...почему?
смотрю сам по истории у меня 9 позиций всего из них 7 прибыльных, а выдает что 5 прибыльных...т.е. почемуто сразу после закрытия позиции не учитывает последние
- www.metatrader5.com
if(PositionSelect(_Symbol)) PositionProfit=PositionGetDouble(POSITION_PROFIT); ....... // Далее в другом модуле if(PositionProfit<0) PositionLoss=true; else PositionLoss=false;Может таким образом более четко будет определяться.
Столкнулся с некоторым парадоксом. В терминале вижу прибыльную позицию, а советник выдает что позиция убыточная.
Как такое может быть и почему? Может я не правильно что то определяю?
https://www.mql5.com/ru/forum/67298/page3#comment_2109451
Добавлено
Перед вызовом этой функции, нужно сделать PositionSelect()
Если позиция BUY, то profit = symlol_last - pos_price,
если SELL, то profit = pos_price - symlol_last
- 2015.12.08
- www.mql5.com
- www.mql5.com
Он про netting спрашивает.
Он про netting спрашивает.
// if(HistoryDealGetInteger(ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT)
плюс проверил бы корректность работы HistorySelect. В тестере она, например, не работает, как надо.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как такое может быть и почему? Может я не правильно что то определяю?