[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 346
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В самом начале скрипта пишешь
#property show_inputs
extern double Lot=0.1
после чего в момент прикрепления скрипта к окну инструмента появится диалоговое окно. там и вводи величину лота
Я понимаю. Но это не то что мне нужно. С данными командами появится диалоговое окно - с общими настройками советников и настройкой текущего скрипта, а я спросил, нет ли такой функции, с помощью которой можно было бы вывести сразу ДО ТОЛЬКО с настройками скрипта.
Я понимаю. Но это не то что мне нужно. С данными командами появится диалоговое окно - с общими настройками советников и настройкой текущего скрипта, а я спросил, нет ли такой функции, с помощью которой можно было бы вывести сразу ДО ТОЛЬКО с настройками скрипта.
Тогда только МетаЭдитор.
Подскажите как сделать чтобы все открытые ордера закрывались по указанному времени?
if (HourTime[0]=12)_CloseAllOrder
саму функцию _CloseAllOrder смотри на прошлой или позапрошлой странице
if (HourTime[0]=12)_CloseAllOrder
саму функцию _CloseAllOrder смотри на прошлой или позапрошлой странице
спасибо, функция очень удобна
Уважаемые знатоки,
подскажите пожалуйста в чем причина такого результата:
суть:
int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}
печатает в журнал "с=3 q=2"
вопрос: как он из трех два получает?
мулька в том, что если вместо 0.3 подставить 0.4 или любую другую дробь решает как положено
к примеру
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}
печатает в журнал "с=3 q=2 v=4 w=4"
вопрос: как он из трех два получает?
попробуйте скомпилировать, мож у меня комп считать разучился (глупость какая-то...)
Уважаемые знатоки,
подскажите пожалуйста в чем причина такого результата:
суть:
int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}
печатает в журнал "с=3 q=2"
вопрос: как он из трех два получает?
мулька в том, что если вместо 0.3 подставить 0.4 или любую другую дробь решает как положено
к примеру
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}
печатает в журнал "с=3 q=2 v=4 w=4"
вопрос: как он из трех два получает?
попробуйте скомпилировать, мож у меня комп считать разучился (глупость какая-то...)
Это не глупость, обычные ошибки округления при работе с вещественными числами.
в первом случае к примеру с будет равна 2.999999999, при выводе производится округление, т.е. будет 3, а вот при присваивании целочисленному типу происходит отбрасывание дробной части.
Это не глупость, обычные ошибки округления при работе с вещественными числами.
в первом случае к примеру с будет равна 2.999999999...
непонятно, как может 2.9999 получиться? 0.3/0.1=3 ровно, я же не 1 на 3 делю, и то должно быть0,33333...
а вот при присваивании целочисленному типу происходит отбрасывание дробной части.
целочисленному типу присваивается значение с, с явно равно трем, без всяких дробных частей. отбрасывать короче нечего...
ответ 100% не правильный.
еще варианты есть?
непонятно, как может 2.9999 получиться? 0.3/0.1=3 ровно, я же не 1 на 3 делю, и то должно быть0,33333...
Это только кажется, что ровно, а машинном представлении последний бит может принять разные значения. Т.е. 2.9999, 3 или 3.00000001
Чтобы избавиться от таких недоразумений в MQL есть функция NormalizeDouble()