Помогите пожалуйста. Какие-то ошибки в советнике - страница 4

 
Неправильный объем (ошибка 131) часто появляется из-за отсутствия нормализации объема до нужного количества знаков после запятой. Если у брокера шаг объема 0.01, то перед передачей в торговую функцию объем стоит прогнать через NormalizeDouble(volume,2), если 0.1, то соответственно NormalizeDouble(volume,1)
 
qaliti:

никак, но он и не должен спускать до ненормальных при работе советника
Удачи вам в ваших заблуждениях. Я откланиваюсь.
 
alsu:
Неправильный объем (ошибка 131) часто появляется из-за отсутствия нормализации объема до нужного количества знаков после запятой. Если у брокера шаг объема 0.01, то перед передачей в торговую функцию объем стоит прогнать через NormalizeDouble(volume,2), если 0.1, то соответственно NormalizeDouble(volume,1)
А ещё лучше один раз его определить точно в ините и далее уже по нему нормализовывать.
 
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:58 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:57 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:56 Ooe EURUSD,M1: invalid ticket for OrderClose function
2013.10.11 21:45:37 2010.01.04 23:55 Ooe EURUSD,M1: OrderSend error 4051
2013.10.11 21:45:37 2010.01.04 23:55 Ooe EURUSD,M1: invalid lots amount for OrderSend function
2013.10.11 21:45:37 2010.01.04 23:55 Ooe EURUSD,M1: OrderClose error 4051
2013.10.11 21:45:37 2010.01.04 23:55 Ooe EURUSD,M1: invalid ticket for OrderClose function

Спасибо, немного помогло ) теперь такая ошибка...
 
Вы, я вижу мимо ушей пропустили всё, что я написал, да?
 
artmedia70:
А ещё лучше один раз его определить точно в ините и далее уже по нему нормализовывать.


А еще лучше - посчитать!

double lotstep = MarketInfo(Symbol(),MODE_LOTSTEP);
int lot_digits = MathCeil(-MathLog(lotstep)/MathLog(10));
volume = NormalizeDouble(volume,lot_digits);
 
alsu:

А еще лучше - посчитать!



А я разве не о том же написал?

Или "определить" - это не "посчитать" ? Я ж не написал "задать".

 
qaliti:

У меня самая обычная и глупая идея торговли. Она точно не будет работать, это просто невозможно, но я пока не знаю почему, поэтому хочу это проверить )

Идея в том что бы торговать по тренду и все... К примеру если график растет то торговать на рост, если падает то на падание.. а изменение направления определять по зарание заданному отклонению пунктов в обратную сторону торгуемого нами тренда, в данной программе это переменная stint, её значение я потом определю, протестируя советника при всевозможных значениях, то есть от 0.0001 и думаю где-то до 0.1000


1. Вы пытаетесь сделать чебурашку, или ваньку-встаньку. Или перевертыш. Названий много-суть одна, тренд к работе советника отношения не имеет. Убыток или прибыль не означают смену тренда.

2. Не пытаетесь проверить параметры на допустимые условия

 
Зачем мне определять лот в ините, если каждом ордеру разное значение лота? Мне нужно что бы каждый ордер открывался на весь баланс, поэтому каждого ордера новое значение лота в связи с изменением баланса...
 
qaliti:
Зачем мне определять лот в ините, если каждом ордеру разное значение лота? Мне нужно что бы каждый ордер открывался на весь баланс, поэтому каждого ордера новое значение лота в связи с изменением баланса...

Действительно зачем. Если шаг лота 0.1, а Вы туда пихаете 0.01. Это же не Ваши проблемы, а проблемы дилера или брокера. Да и зачем проверка на минимальный и максимальный допустимый лот. Пусть об этом дилер или брокер думает