Нифига себе. В общем, получается странный момент. У меня не был нормализован лот. Вот есть функция нормализации лота:
//+-------------------------------------------------------------------------------------+//| Проверка объема на корректность и округление |//+-------------------------------------------------------------------------------------+double LotFloor(double value)
{
return(MathFloor(MathMin(MathMax(value, g_minLot), g_maxLot)/g_lotStep)*g_lotStep);
Проверяя, где косяк, в самой торговой функции, от куда вызываются функции открытия ордеров, уже везде в параметрах вызывающей функции посылпющих ордера добавил в параметр лотности данную функцию. Ошибка не убралась.
И, как только, я добавил в первую же ругающуюся функцию, а это функция, устанавливающая отложенники, прямо в неё функцию нормализации, то ругань прекратилась. Как это понимать?
//+-------------------------------------------------------------------------------------+//| Открытие отложенной короткой позиции |//+-------------------------------------------------------------------------------------+bool OpenPendingSell(double lot, double price)
{
int g_ticket = -1;
double OOP = price - i_distanceFromLastPos * pt;
if (OOP < Bid)
{
fCheck_ValidPendingOOP(Symbol(), OP_SELLSTOP, OOP);
g_ticket = OrderSend(Symbol(), OP_SELLSTOP, LotFloor(lot), ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE);
}
if (g_ticket > 0)
{
return (true);
}
else
pr ("OpenPendingSell(): Ордер послать не удалось " + GetLastError());
return (false);
}
Ведь в первом варианте я сразу посылаю уже проверенный лот, а во втором варианте я проверяю в самой функции OrderSend() лотность. Но разница то какая?
chief2000: Такая задачка - есть одномерный массив, размер которого может изменяться. Как в цикле перебрать все возможные комбинации элементов массива друг с другом? Порядок элементов роли не играет, т.е. 123==213==321..
Вот пример для массива с 4-мя элементами:
Ну, друг с другом, вроде бы не сложно
int k = ArraySize(array);
for(int i=0;i<k-1;i++)
for(int ii=i+1;ii<k;ii++)
{
...
}
Но, вот, когда больше двух, непонятно каким образом сравнивать. Покажите метод, как сравнить три числа 1, 2 и 3 одновременно,
Ребят никто не скажет, как сделать так чтобы не нужно было переоткрывать окна оптимизации..... Кас стедать что это окно было с другими настройками фона, свечи и т.д.
Всем привет! подскажиите пожалуйста такое дело... вот к индикатору МА можно в вкладке уровни приписать уровень ну скажем 20 это означает что скользящая средняя сдвинется по оси у на 20 пунктов, но в окне данных цена этого уровня не показывается и кпримеру если сдвинуть хочу на 798, это геморойно щитать для многих пар, вот как написать индикатор чтоб или выводил на шрафик цену сдвинутой скользящей или чтобы в окне данных цену видно было и не надо было вручную подсчитывать?
Но, вот, когда больше двух, непонятно каким образом сравнивать. Покажите метод, как сравнить три числа 1, 2 и 3 одновременно,
Если не ошибаюсь количество циклов должно соответствовать количеству элементов в массиве. Проблема в том что количество элементов не фиксированное и может быть значительно больше 4-х, надо подумать как бы это оформить. Так же интересно, может есть другие варианты реализации, которые влияют на скорость, расход памяти и т.п.?
Хочу перефразировать и дополнить свой предыдущий вопрос. Ниже приведен код для массива из 4-х элементов. В реальности, количество элементов в массиве переменная величина. Как изменить код чтобы количество вложенных циклов 'for' стало переменным, по одному 'for' на элемент массива? Спасибо!
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
На танки посмотрите, перегрузитесь, может поможет... :-)
П.С. Я щас - по доброму.
Не. Танки это не вариант. Если уж очень хочется что-нибудь этакое. Успакоит тока результат))
:-)
Нифига себе. В общем, получается странный момент. У меня не был нормализован лот. Вот есть функция нормализации лота:
Проверяя, где косяк, в самой торговой функции, от куда вызываются функции открытия ордеров, уже везде в параметрах вызывающей функции посылпющих ордера добавил в параметр лотности данную функцию. Ошибка не убралась.
И, как только, я добавил в первую же ругающуюся функцию, а это функция, устанавливающая отложенники, прямо в неё функцию нормализации, то ругань прекратилась. Как это понимать?
Ведь в первом варианте я сразу посылаю уже проверенный лот, а во втором варианте я проверяю в самой функции OrderSend() лотность. Но разница то какая?
Такая задачка - есть одномерный массив, размер которого может изменяться.
Как в цикле перебрать все возможные комбинации элементов массива друг с другом?
Порядок элементов роли не играет, т.е. 123==213==321..
Вот пример для массива с 4-мя элементами:
Ну, друг с другом, вроде бы не сложно
Но, вот, когда больше двух, непонятно каким образом сравнивать. Покажите метод, как сравнить три числа 1, 2 и 3 одновременно,Ну, друг с другом, вроде бы не сложно
Но, вот, когда больше двух, непонятно каким образом сравнивать. Покажите метод, как сравнить три числа 1, 2 и 3 одновременно,Если не ошибаюсь количество циклов должно соответствовать количеству элементов в массиве. Проблема в том что количество элементов не фиксированное и может быть значительно больше 4-х, надо подумать как бы это оформить. Так же интересно, может есть другие варианты реализации, которые влияют на скорость, расход памяти и т.п.?
Спасибо! А разве не имеет значения с какой стороны начинать подсчет, то есть с 3-го бара?
Ниже приведен код для массива из 4-х элементов. В реальности, количество элементов в массиве переменная величина.
Как изменить код чтобы количество вложенных циклов 'for' стало переменным, по одному 'for' на элемент массива?
Спасибо!