3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Если нужно сравнивать несколько таймсерий одного таймрейма, работайте с массивом типа MqlRates -> и для заполнения этого массива используйте CopyRates.
//+------------------------------------------------------------------+//| Test_en.mq5 |//+------------------------------------------------------------------+#property script_show_inputs//--- input parametersint InpBarTime=3; // Bar where we compare the time//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
MqlRates rates[];
ArraySetAsSeries(rates,true);
int start_pos =0; // start position int count=(InpBarTime<10)?10:InpBarTime+1; // data count to copy int result=CopyRates(Symbol(),Period(),start_pos,count,rates);
if(result!=count)
{
Print("Ordered: ",IntegerToString(count),", received ",IntegerToString(result));
}
//--- example 1// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)MqlDateTime SDateTime;
TimeToStruct(rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTimeif(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
{
}
}
//+------------------------------------------------------------------+
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Шаг 1: на глобальном программном уровне объявляем переменную handle_iMA, в которой будет хранится хендл индикатора
int handle_iMA; // variable for storing the handle of the iMA indicator
Шаг 2: в OnInit() создаём индикатор и возвращаем хендл созданного индикатора в переменную handle_iMA
//--- create handle of the indicator iMA
handle_iMA=iMA(m_symbol.Name(),Inp_MA_period,Inp_MA_ma_period,Inp_MA_ma_shift,
Inp_MA_ma_method,Inp_MA_applied_price);
//--- if the handle is not created if(handle_iMA==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Inp_MA_period),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
Шаг 3: в OnTick() делаем запрос - копируем определённое количество данных (count)с индикатора в массив ma[]
Это может приводить к ошибкам или это только рекомендация по культуре кодирования?
Использовать винегрет никто не запрещает, НО: не запутаетесь ли Вы сами со временем с именами переменных, будете ли помнить - обновили или не обновили данные в переменной?
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Просьба переделать в моем роботе фикс лот на лот в %. Код в личке.
Фриланс.
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Для начала внимательно ознакомьтесь с документацией. Раздел "Доступ к таймсериям и индикаторам"
Должно стать понятным как получить время, "засунуть" его в структуру и оттуда получить по отдельности час и минуту.
Там-же есть CopyBuffer для получения значений индикатора по его хендлу.
Ну, а если останутся вопросы...
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Если нужно сравнивать несколько таймсерий одного таймрейма, работайте с массивом типа MqlRates -> и для заполнения этого массива используйте CopyRates.
Время удобно хранить в структуре MqlDateTime -> для конвертации времени из datetime в структуру MqlDateTime используйте TimeToStruct.
Теперь Ваши пример 1 будет выглядеть так:
Вопрос: приводит ли это к ошибкам или это нормально в рамках одного кода или даже одной функции?
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Работа с индикаторами - на примере кода MA Force
Шаг 1: на глобальном программном уровне объявляем переменную handle_iMA, в которой будет хранится хендл индикатора
Шаг 2: в OnInit() создаём индикатор и возвращаем хендл созданного индикатора в переменную handle_iMA
Шаг 3: в OnTick() делаем запрос - копируем определённое количество данных (count)с индикатора в массив ma[]
Шаг 4: работаем с массивом данных индикатора и сравниваем его элементы:
Вопрос: приводит ли это к ошибкам или это нормально в рамках одного кода или даже одной функции?
Лучше не путать и использовать один подход: или торговый класс CSymbolInfo или же системные функции вида SymbolInfoXXXX.
Лучше не путать и использовать один подход: или торговый класс CSymbolInfo или же системные функции вида SymbolInfoXXXX.
Угу, спасибо. можно ещё уточнить.
Это может приводить к ошибкам или это только рекомендация по культуре кодирования?
Угу, спасибо. можно ещё уточнить.
Это может приводить к ошибкам или это только рекомендация по культуре кодирования?
Использовать винегрет никто не запрещает, НО: не запутаетесь ли Вы сами со временем с именами переменных, будете ли помнить - обновили или не обновили данные в переменной?