Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1601
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Эта перебирает с нулевого индекса, т.е. с начала.
Эта перебирает с нулевого индекса, т.е. с начала.
Эта перебирает с нулевого индекса, т.е. с начала.
ааа... вот теперь все стало логично, спасибо.
for(int i=OrdersTotal()-1;i>=0;i--) {
if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;
double prosad=DBL_MIN;
if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;
for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {
double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );
delta /= MarketInfo(OrderSymbol(),MODE_POINT);
if (delta>prosad) prosad=delta;
}
PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);
}
написано "с руки", не проверялось, изобилует ошибками :-) подправьте под свои нужды и пользуйтесь
скажите пожалуйста, что в вашем коде означает -"!" ?
я пока не сильно в этом понимаю
или может кто то еще объяснит кроме автора?
скажите пожалуйста, что в вашем коде означает -"!" ?
я пока не сильно в этом понимаю
или может кто то еще объяснит кроме автора?
! - это булево отрицание , НЕ
if { !OrderSelect() } переводится как "если НЕ удался OrderSelect"
!= соответственно "НЕ РАВНО"
! - это булево отрицание , НЕ
if { !OrderSelect() } переводится как "если НЕ удался OrderSelect"
!= соответственно "НЕ РАВНО"
спасибо
for(int i=OrdersTotal()-1;i>=0;i--) {
if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;
double prosad=DBL_MIN;
if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;
for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {
double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );
delta /= MarketInfo(OrderSymbol(),MODE_POINT);
if (delta>prosad) prosad=delta;
}
PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);
}
написано "с руки", не проверялось, изобилует ошибками :-) подправьте под свои нужды и пользуйтесь
вроде бы "причесал" код но в этой строчке for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) выдает предупреждение:
possible loss of data due to type conversion
не могу разобраться в чем дело?
вроде бы "причесал" код но в этой строчке for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) выдает предупреждение:
possible loss of data due to type conversion
не могу разобраться в чем дело?
параметры местами перепутал...обычная путаница, когда пишется "в лёт" прямо в форум минуя терминал
iBarShift(OrderSymbol(),PERIOD_M1,OrderOpenTime()) должно быть
параметры местами перепутал...обычная путаница, когда пишется "в лёт" прямо в форум минуя терминал
iBarShift(OrderSymbol(),PERIOD_M1,OrderOpenTime()) должно быть
спасибо
вроде бы "причесал" код но в этой строчке for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) выдает предупреждение:
possible loss of data due to type conversion
не могу разобраться в чем дело?
а всю эту "штуку" реально вообще прикрутить к советнику и прогонять через тестер стратегий с выводом информации в отчет тестирования?
будет работать?
Подскажите как с этим бороться?
В тестере на истории простое открытие ордера иногда вызывает ошибку...
ERR_INVALID_TRADE_PARAMETERS - что это вообще за фигня, что это значит?