Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 169
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день. Не получается считать данные из файла и тут же записать обратно. Если раскомментировать кусок кода с циклами и MathRand(), то в файл как положено пишется каша. Но если строчки оставить закомментированными (уже при наличии каши в файле), то при следующем включении-выключении эксперта в файл записываются нули. Массивы для записи-чтения double ROM1[128][128] и double ROM2[3][128]. Больше массивы нигде в коде не изменяются, только читаются. Кусок кода:
int init()
{
Print ("Сработала ф-ия init"); // Сообщение
Handle=FileOpen("Neuro",FILE_BIN|FILE_READ|FILE_WRITE);// Открытие файла на чтение и запись
FileSeek(Handle, 0, SEEK_SET); //указатель на начало файла
FileReadArray(Handle, ROM1);
FileSeek(Handle, 131073, SEEK_SET); //указатель на конец первого массива
FileReadArray(Handle, ROM2);
/*
for(i=0; i<128; i++) //заполнение памяти первого слоя кашей
{
for(k=0; k<128; k++)
{
ROM1[i][k] = (MathRand()-16383)/3200;
}
}
for(i=0; i<3; i++) //заполнение памяти второго слоя кашей
{
for(k=0; k<128; k++)
{
ROM1[i][k] = (MathRand()-16383)/3200;
}
}
*/
return(0);
}
//--------------------------------------------------------------------
int deinit()
{
FileSeek(Handle, 0, SEEK_SET);
FileWriteArray(Handle, ROM1);
FileSeek(Handle, 131073, SEEK_SET);
FileWriteArray(Handle, ROM2);
FileClose(Handle);
return(0);
}
два одинаковых ордера.
Спасибо.
два одинаковых ордера.
Спасибо.
Искать сигнал можете когда угодно, а вот разрешать открывать позицию нужно по времени.
Смотрите время открытия позиции с магиком 565, смотрите текущее время. Если текущее время больше времени открытия позиции с магиком 565 на заданное количество минут, то можно открывать позицию.
Искать сигнал можете когда угодно, а вот разрешать открывать позицию нужно по времени.
Смотрите время открытия позиции с магиком 565, смотрите текущее время. Если текущее время больше времени открытия позиции с магиком 565 на заданное количество минут, то можно открывать позицию.
Спасибо большое. А в коде это как выглядит?
Немного разобрался. Двумерный массив double функция ни в какую читать не хочет, хотя записывает нормально.
Сделал чтение поэлементно в цикле. Может кому пригодится.
FileSeek(Handle, n, SEEK_SET); //изменение позиции файлового курсора
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
Спасибо большое. А в коде это как выглядит?
А тут же не бесплатное написание кодов, а помощь тем, кто сам пытается их написать, да что-то не получается.
Покажите что у вас не получается в вашем коде - поможем.
Немного разобрался. Двумерный массив double функция ни в какую читать не хочет, хотя записывает нормально.
Сделал чтение поэлементно в цикле. Может кому пригодится.
FileSeek(Handle, n, SEEK_SET); //изменение позиции файлового курсора
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
Зачем-же такие костыли предлагать людям только потому, что сам не справился с задачей???
Чтобы считать из файла двухмерный массив под него должен быть приготовлен именно двухмерный массив.
Если я правильно помню тот пример кода, я не видел там закрытия файла после записи. Файл создаётся пустой, пишутся в него данные, но этот заполненный файл находится в оперативной памяти, а читать данные из файла можно уже только с диска. Вот и получается, что вроде-бы файл записан, а физически его на диске нету... Чтобы данные скинуть на диск надо либо закрыть его либо принудительно сохранить его на диск.
А тут же не бесплатное написание кодов, а помощь тем, кто сам пытается их написать, да что-то не получается.
Покажите что у вас не получается в вашем коде - поможем.
спасибо
Здравствуйте! Напишите пожалуйста простой(очень простой) пример на языке mql4. Я прям совсем новичок.
1)открыть отложенный ордер когда он достиг какого либо значения(т.е. если цена равна 0.7777, то открыть отложенный ордер)
2)закрыть ордер(рыночный) если он достиг какого либо значения (т.е. если цена равно 0.6666, то закрыть ордер)
Не получается разобраться даже с закрытием ордера с помощью уникального порядкового номера. Помогите пожалуйста сдвинуться с мертвой точки , а то совсем ничего не получается.
Пытался читать учебник с этого сайта, но толка нет(может я такой тугой), а элементарных примеров почему то нет в интернете. Заранее спасибо
Здравствуйте! Напишите пожалуйста простой(очень простой) пример на языке mql4. Я прям совсем новичок.
1)открыть отложенный ордер когда он достиг какого либо значения(т.е. если цена равна 0.7777, то открыть отложенный ордер)
2)закрыть ордер(рыночный) если он достиг какого либо значения (т.е. если цена равно 0.6666, то закрыть ордер)
Не получается разобраться даже с закрытием ордера с помощью уникального порядкового номера. Помогите пожалуйста сдвинуться с мертвой точки , а то совсем ничего не получается.
Пытался читать учебник с этого сайта, но толка нет(может я такой тугой), а элементарных примеров почему то нет в интернете. Заранее спасибо
Примеров полно в CodeBase ищите советники на отложенных ордерах и смотрите как написан код.