Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Итак. Свершилось! Не прошло и года. Я таки решился! Всерьёз заглянул в документацию по MQL5. Начал с малого: минимизировал кое-какой код кое-какого индикатора в попытках упростить и разобраться в его структуре и работе. И оцепенел...
Сперва расковырял Fractals - он оказался неожиданно маленьким и довльно-таки простым. Затем рассуждал логически: тащить этот код из программы в программу неразумно, следует применить всего-лишь вызов этого индикатора, скопировать и использовать готовые расчётные значения буферов. Если я не ошибся направлением, меня понесло в околостоящую степь и принесло к примеру с iFractals ("Я всё правильно сделал?" (c)). Максимально сократил код, вычистив всё лишнее и условно ненужное, оставив только самую суть. И что же я обнаружил? По объёму и читабельности код вызова данного индикатора оказался ничуть не компактнее изначального кода самого индикатора.
Вопросы.
1. Какой смысл в iFractals?
2. Что со мной не так?
Спасибо!
P.S.: Или это лишь частный случай, когда не наблюдается выгоды в объёме второго кода?
2. Что со мной не так?
Будьте более конкретны в ваших вопросах.
Вопрос вопрос
жизни и смерти...
каким не криминальным способом можно получить значение open [15625] бара H1 таймфрейма
как я не пытался мне пишет критикал еррор... я по всякому пытался, так что, кто знает плиз... я знаю что это 3 строчки кода... но каких... заветных... правильных... чтоб ошибку не выдавало
Вопрос вопрос
жизни и смерти...
каким не криминальным способом можно получить значение open [15625] бара H1 таймфрейма
как я не пытался мне пишет критикал еррор... я по всякому пытался, так что, кто знает плиз... я знаю что это 3 строчки кода... но каких... заветных... правильных... чтоб ошибку не выдавало
Приведите свой код, пожалуйста.
Приведите свой код, пожалуйста.
привожу
double MTime ( int mode )
{
double iOpen_min [], iOpen_hour [], iOpen_4hour [];
ArraySetAsSeries ( iOpen_min, true );ArraySetAsSeries ( iOpen_hour, true );
ArraySetAsSeries ( iOpen_4hour, true );
int rates_open_min, rates_open_hour, rates_open_4hour;
int err = 0;
do
{
rates_open_min = CopyOpen ( NULL, PERIOD_M1, 0, 7501, iOpen_min );
rates_open_hour = CopyOpen ( NULL, PERIOD_H1, 0, 20000, iOpen_hour );
rates_open_4hour = CopyOpen ( NULL, PERIOD_H4, 0, 10000, iOpen_4hour );
err ++;
}
while ( ( rates_open_min <= 0 || rates_open_hour <= 0 || rates_open_4hour <= 0) && err < 10 );
double Minute2 = iOpen_min [ 0 ] - iOpen_min [ 2 ];
double Minute12 = iOpen_min [ 0 ] - iOpen_min [ 12 ];
double Hour = iOpen_min [ 0 ] - iOpen_min [ 60 ]; // Час
double Hour5 = iOpen_min [ 0 ] - iOpen_min [ 300 ]; // 5 Часов
double Day = iOpen_min [ 0 ] - iOpen_min [ 1500 ]; // День
double Week = iOpen_min [ 0 ] - iOpen_min [ 7500 ]; // Неделя
double Month = iOpen_hour [ 0 ] - iOpen_hour [ 625 ]; // Месяц
double Month5 = iOpen_hour [ 0 ] - iOpen_hour [ 3125 ]; // Полугодие
double Month25 = iOpen_hour [ 0 ] - iOpen_hour [ 15625 ]; // 3 года
в последней строке на последнем операторе всегда критикал еррор... советник даже может начать торговать в тестере, а потом после года полтора прогонки, выдает ошибку и вылетает
критическая ошибка - выход за пределы массива.
как-то так можно попробовать:
критическая ошибка - выход за пределы массива.
как-то так можно попробовать:
эт суть проблемы не меняет... если он данные и не будет копировать дальше... советник по прежнему не будет торговать, только уже тупо без ошибки...
проблема в том, почему вообще возникает такая ситуация, если история огромная... а воспользоваться ей нельзя...
Приведите свой код, пожалуйста.
ну раз ответа нет, тогда буду вручную вводить )))) благо всего одно значение
у вас в коде нет проверок. Чтож вы тогда хотите?
эт суть проблемы не меняет... если он данные и не будет копировать дальше... советник по прежнему не будет торговать, только уже тупо без ошибки...
проблема в том, почему вообще возникает такая ситуация, если история огромная... а воспользоваться ей нельзя...
таки меняет.. данные будут копироваться, но не всегда с первой попытки.. а после критической ошибки советник тупо прекращает работу.
while( ... rates_open_hour <= 0 //копировалось только доступное на данный момент времени количество данных и соответственно массив мог быть меньше 15625.
А ситуация возникает из-за недостаточного курения мануалов :)