Скачать MetaTrader 5

Это глюк программы, или я туплю?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
dobr
61
dobr  

Доброго времени суток всем.

Я вот написал такой граааль на дюжину строк:

int start()
  {
if (OrdersTotal()==0)
{
OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY);
if (OrderProfit()<0) lot=OrderLots()*2; else lot=0.01;
//----
MathSrand(TimeLocal());
int a=MathRand();
int b=a%2;
//----
if (b==0) OrderSend(Symbol(),OP_BUY,lot,Ask,5,Bid-sl*Point,Ask+tp*Point);
if (b==1) OrderSend(Symbol(),OP_SELL,lot,Bid,5,Ask+sl*Point,Bid-tp*Point);
if (GetLastError()!=0) Print("test-",lot); //проверяем
}
   return(0);
  }

и столкнулся с такой проблемой:

начинаются неправильные объемы.

И причем самое интересное, что ошибка всплывает в ПРОИЗВОЛЬНЫЙ момент времени. Т.е. если запустить эксперта в тестере 10 раз подряд, момент начала выдачи ошибки каждый раз будет другим.

В данном примере лот 56, но может быть 202, 317, 564 и т.д.

И еще сами объемы. Здесь эта строка:

if (OrderProfit()<0) lot=OrderLots()*2; else lot=0.01;

и объем 5,12.

Если заменить на

if (OrderProfit()<0) lot=OrderLots()+lot; else lot=0.01;
появятся вообще нереальные цифры.

Всвязи с этим вопрос: Я где-то что то упустил, или это глюки тестера? Если так, то как исправить?

AlexHacker007
105
AlexHacker007  

lotbuys=NormalizeDouble(lotbuys,2);

lotselss=NormalizeDouble(lotselss,2);

может это поможет ? может выскакивают знаки и еще проверку кинь если меньше нуля или ноль чтобы ставило лот минимум 001

dobr
61
dobr  
AlexHacker007:
То же самое. NormalizeDouble не помог. А проверка уже в коде есть:
if (GetLastError()!=0) Print("test-",lot); //проверяем
Меня сильно интересует почему он самовольничает(если бы ошибка всплывала каждый раз в один и тот же момент, тогда другое дело). Может это как-то связано с MathRand?
AlexHacker007
105
AlexHacker007  
Dobr:
То же самое. NormalizeDouble не помог. А проверка уже в коде есть: Меня сильно интересует почему он самовольничает(если бы ошибка всплывала каждый раз в один и тот же момент, тогда другое дело). Может это как-то связано с MathRand?
сделай Comment (lot); запусти медленно советник и смотри вверху нацифры .. может в них увидишь какую нибудь чушь...
Cmu4
1227
Cmu4  
Думаю, это наступает тогда, когда лот огромным становится..
AlexHacker007
105
AlexHacker007  

тогда добавь ограничение лота если лот больше чем ХХХ то лот равен максимально допустимому у ДЦ можно запросить через фунткцию можно посмотреть на сайтеу

у меня например у одного Дц лот максимальнй 100 лотов у другого 500 лотов у третьего 1000 лотов

PapaYozh
3768
PapaYozh  
Dobr:

Доброго времени суток всем.

Я вот написал такой граааль на дюжину строк:

и столкнулся с такой проблемой:

начинаются неправильные объемы.

И причем самое интересное, что ошибка всплывает в ПРОИЗВОЛЬНЫЙ момент времени. Т.е. если запустить эксперта в тестере 10 раз подряд, момент начала выдачи ошибки каждый раз будет другим.

В данном примере лот 56, но может быть 202, 317, 564 и т.д.

И еще сами объемы. Здесь эта строка:

и объем 5,12.


Скорее всего - у ДЦ ограничение максимального лота 5.00
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий