Не забудь предварительно массиву становить правильную размерность, иначе будет такая кака...
Не забудь предварительно массиву становить правильную размерность, иначе будет такая кака...
спасибо за совет. Но массивы это цветочки. Сейчас раскажу про ягодки. Есть сотвеник попроще без массивов, так и он торговать не хочет вываливается с ошибкой 129, неверная цена. По твоим наставлениям я цену всегда уже нормализирую, ибо дц с 5 значнынми ценами. А теперь главный приколы.
1) MarketInfo(OrderSymbol(), MODE_DIGITS); выдает 0
2) соотвесвенно nask=NormalizeDouble(Ask,dg); выдает не 1.32132 а просто 1
3) Print(Ask); выдает 4 значную цену, т.е. как достучатся до 5 значной цены?
может быть нас отучают от MQ4? :)
спасибо за совет. Но массивы это цветочки. Сейчас раскажу про ягодки. Есть сотвеник попроще без массивов, так и он торговать не хочет вываливается с ошибкой 129, неверная цена. По твоим наставлениям я цену всегда уже нормализирую, ибо дц с 5 значнынми ценами. А теперь главный приколы.
1) MarketInfo(OrderSymbol(), MODE_DIGITS); выдает 0
2) соотвесвенно nask=NormalizeDouble(Ask,dg); выдает не 1.32132 а просто 1
3) Print(Ask); выдает 4 значную цену, т.е. как достучатся до 5 значной цены?
Напоминаю что по описанию разработчиков, функции Marketinfo() могут не корректно работать в ините, так что вызывай просто Digits, а вообще погугли форум по этой теме, найдешь много описаний подводных камней .
NIkolay2000:
3) Print(Ask); выдает 4 значную цену, т.е. как достучатся до 5 значной цены?
Print(DoubleToStr(Ask,5));
получение значений аска и бида делаю в int start()
выводить в журнал 5 знаков уде получается а вот как теперь заявки брость с 5 знаками? просто как было в 225- 226 терминале не получается. Пока грешу на аск и бид а то вылазит ошибка 129.
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
пишем функцию - обертку :
double nd(double in){return(NormalizeDouble(in,Digits));}
и оборачиваем в нее все вызовы цен :
OrderSend(Symbol(),OP_BUY,Lots,nd(Ask),3,0,nd(Ask+TakeProfit*Point));не забываем перед вызовом цены делать RefreshRates()
пишем функцию - обертку :
и оборачиваем в нее все вызовы цен :
спасибо. Прикол в том что я и раньше нормализировал типа OrderSend(Symbol(),OP_SELL,lot,nbid,3,nbid-SL*Point,nbid-TP*Point,"",mgk,0,Red);,
nask=StrToDouble(DoubleToStr(Ask,5));
nbid=StrToDouble(DoubleToStr(Bid,5));
Твой совет помог ошибка 129 не появляется. Но и сделки тоже не появляются.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет.
Написал советника в котором промежуточные вычисления идут в масивах, периодичски приходится обнулять массивы, енять их размерность.
Вообщем на 225 терминале работет, а на 229 пишет ошибку инициализации массива internal error arrayInitilize. Ну а функция обнления массива простая где тут можно ошибится ArrayInitialize(massiv,0.0);