Хорошо, ждём примеры использования
Скорее всего завтра. Сегодня уже никак.
Добавлено: лучше укажите способ задания 30-ти символов:
- через входные параметры
- через подключаемый файл с настройками
- тупо первые 30 символов из окна "Обзор рынка"
- и тому подобное и так далее
Скорее всего завтра. Сегодня уже никак.
Добавлено: лучше укажите способ задания 30-ти символов:
- через входные параметры
- через подключаемый файл с настройками
- тупо первые 30 символов из окна "Обзор рынка"
- и тому подобное и так далее
Во входных параметрах кроме маджика, указывать больше нечего.
Во входных параметрах кроме маджика, указывать больше нечего.
То есть во входных тридцать строк с именами символов?
То есть во входных тридцать строк с именами символов?
Нет, во входных всего 3 параметра, два цвета для объектов, и маджик. Всё
Инициализация массива происходит в OnInit, там-же и все остальные действия
string SymbTrade[]={"EURUSD","GBPUSD","USDJPY","USDCHF","NZDUSD","AUDUSD","EURJPY","USDCAD","EURCHF","EURGBP","GBPCHF","GBPJPY","EURAUD","AUDCAD", "AUDCHF","AUDJPY","CADCHF","CADJPY","CHFJPY","NZDCAD","NZDCHF","NZDJPY","GBPCAD","GBPAUD","GBPNZD","EURCAD","EURNZD","AUDNZD"};
Пример:
//+------------------------------------------------------------------+ //| CiSAR.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" #property description "An example of using the Trend.mqh library is the CiSAR class" #include <Arrays\ArrayObj.mqh> #include <Indicators\Trend.mqh> CArrayObj m_array; // CArrayObj object //--- input parameters string SymbTrade[]= { "EURUSD","GBPUSD","USDJPY","USDCHF","NZDUSD","AUDUSD","EURJPY","USDCAD","EURCHF", "EURGBP","GBPCHF","GBPJPY","EURAUD","AUDCAD","AUDCHF","AUDJPY","CADCHF","CADJPY", "CHFJPY","NZDCAD","NZDCHF","NZDJPY","GBPCAD","GBPAUD","GBPNZD","EURCAD","EURNZD", "AUDNZD" }; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- CiSAR *isar; for(int i=0;i<ArraySize(SymbTrade);i++) { isar=new CiSAR; if(isar==NULL) { delete isar; Print("Object create error"); return(INIT_FAILED); } if(isar.Create(SymbTrade[i],Period(),0.02,0.2)) m_array.Add(isar); else { delete isar; Print("SAR ",SymbTrade[i]," create error"); return(INIT_FAILED); } } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- string text=""; for(int i=0;i<m_array.Total();i++) { CiSAR *isar=m_array.At(i); isar.Refresh(); text+=SymbTrade[i]+" #0 : "+DoubleToString(isar.Main(0),Digits())+"\n"; } Comment(text); } //+------------------------------------------------------------------+
Схема работы такая: так как создаваемые при помощи библиотеки Trend.mqh индикаторы - это объекты, значит нужно создать динамический массив указателей на экземпляры этих индикаторов. Этот массив - объект класса CArrayObj.
При работе с Trend.mqh не забываем про метод Refresh.
Пример:
Схема работы такая: так как создаваемые при помощи библиотеки Trend.mqh индикаторы - это объекты, значит нужно создать динамический массив указателей на экземпляры этих индикаторов. Этот массив - объект класса CArrayObj.
При работе с Trend.mqh не забываем про метод Refresh.
Спасибо, сегодня буду разбирать остальные библиотеки индикаторов.
P.S. Почему-то не вижу IndicatorRelease, или он не нужен?Спасибо, сегодня буду разбирать остальные библиотеки индикаторов.
P.S. Почему-то не вижу IndicatorRelease, или он не нужен?Нужно ещё очищать m_array иначе будет так (для примера взят массив из ОДНОГО символа:
//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { Print("Total: ",m_array.Total()); //--- CiSAR *isar;
и при каждой смене таймфрейма будет размер только увеличиваться (будут оставаться ссылки с предыдущих таймфреймов):
Total: 0 Total: 1 Total: 2 Total: 3
А есть-ли вообще где-то описание того, что есть внутри, и как его применять в полной мере?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования