Скачать MetaTrader 5

Использование индикатора из стандартной библиотеки

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
У тебя есть торговый сигнал? Опубликуй его и на своем блоге!
abracada
22
abracada 2013.11.21 19:59 

Здравствуйте! Пробую освоить использование индикатора из стнд библиотеки и в отладчике вижу некорректную работу...Направьте пожалуйста.

Пример: 

На глоб. уровне объявил указатели

CiMACD *CiMACD_1;

CiMACD *CiMACD_2;

В OnInit() 

   CiMACD_1=new CiMACD;

   CiMACD_2=new CiMACD; 

   CiMACD_1.Create(Symb,PERIOD_CURRENT,12,26,9,PRICE_OPEN);

   CiMACD_2.Create(Symb,PERIOD_CURRENT,12,26,9,PRICE_CLOSE); 

 OnTick() 

      a = CiMACD_1.Main(0);

      b = CiMACD_2.Main(1);

      c = CiMACD_2.Signal(1);

 В отладчике получаю такое:

a=1.797693134862316e+308

b=1.797693134862316e+308 

c=1.797693134862316e+308 

Что не так делаю? 

abracada
22
abracada 2013.11.21 20:42  

простите... исправил пример.

      a = CiMACD_1.Main(0);

      b = CiMACD_2.Main(1);

      c = CiMACD_2.Signal(1); 

Вопрос в силе. 

abracada
22
abracada 2013.11.22 11:41  
Не ужели ни кто не знает?
Alexander Bereznyak
21477
Alexander Bereznyak 2013.11.22 17:19  
Приведите полный код в стилизованном виде.
abracada
22
abracada 2013.11.22 18:13  
sandex:
Приведите полный код в стилизованном виде.
//+------------------------------------------------------------------+
//|                                                          123.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#include <Indicators\Oscilators.mqh>
CiMACD *CiMACD_1;
CiMACD *CiMACD_2;
string Symb;
int OnInit() {
Symb=Symbol();
   CiMACD_1=new CiMACD;
   CiMACD_2=new CiMACD;
   CiMACD_2.Create(Symb,PERIOD_CURRENT,12,26,9,PRICE_OPEN);
   CiMACD_1.Create(Symb,PERIOD_CURRENT,12,26,9,PRICE_CLOSE);
      return (INIT_SUCCEEDED);
      }
void OnDeinit(const int reason)
  {
  delete(CiMACD_1);
  delete(CiMACD_2);
  }
void OnTick()
  {
double     a = CiMACD_1.Main(0);
double     b = CiMACD_2.Main(1);
double     c = CiMACD_2.Signal(1);  
  }
//+------------------------------------------------------------------+
Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
abracada
22
abracada 2013.11.25 18:33  
Примеров использования в документации нет, в статье нашел пример использования https://www.mql5.com/ru/articles/741 , но он не работает, и тут походу или ни кто не знает, или безразличен к чужим вроде актуальным проблемам... И как тут научиться использовать стнд бибилиотеку?
Расширение стандартной библиотеки MQL5 и повторное использование кода
Расширение стандартной библиотеки MQL5 и повторное использование кода
  • 2013.09.23
  • Jordi Bassaganas
  • www.mql5.com
Стандартная библиотека MQL5 значительно упрощает жизнь разработчика. Однако она не может удовлетворить все требования абсолютно всех разработчиков в мире, поэтому если вы хотите иметь в своем распоряжении больше пользовательских элементов, вам необходимо расширить ее. В статье описывается интеграция обычного индикатора ZigZag в стандартную библиотеку. В ходе работы мы придерживались принципов разработки, применяемых в компании MetaQuotes.
Vladimir Gomonov
8277
Vladimir Gomonov 2013.11.25 19:37  
abracada:
Примеров использования в документации нет, в статье нашел пример использования https://www.mql5.com/ru/articles/741 , но он не работает, и тут походу или ни кто не знает, или безразличен к чужим вроде актуальным проблемам... И как тут научиться использовать стнд бибилиотеку?
давно не щупал использование индикаторов из этой библиотеки.  но таки помнится мне что перед взятием значений необходим .Refresh()
Alexander Bereznyak
21477
Alexander Bereznyak 2013.11.25 21:36  

Стандартной библиотекой никогда не пользовался и надеюсь не придется.

Видать не облегчает, а осложняет... 

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
Vladimir Gomonov
8277
Vladimir Gomonov 2013.11.25 21:53  
sandex:

Стандартной библиотекой никогда не пользовался и надеюсь не придется.

Видать не облегчает, а осложняет... 

дело вкуса.  я как раз планирую. именно индикаторы.   можно будет универсальные MT4/MT5 советники писать.  // ну это если ещё торговый драйвер универсальный прописать.
Vladimir Gomonov
8277
Vladimir Gomonov 2013.11.25 21:57  
abracada:
Спасибо за ответы. Тогда наверное бросаю это бесплодное занятие...

ничего оно не бесплодное.  нужно только в коды заглянуть, хелпы почитать, понять логику работы индикаторной библы. я когда-то её щупал, всё работало вполне и на ура.

// мне просто щас некогда слегка. я б достал коды со старого компа (он в полуразобранном состоянии), скинул для примера использования. 

abracada
22
abracada 2013.11.25 22:10  
MetaDriver:

ничего оно не бесплодное.  нужно только в коды заглянуть, хелпы почитать, понять логику работы индикаторной библы. я когда-то её щупал, всё работало вполне и на ура.

// мне просто щас некогда слегка. я б достал коды со старого компа (он в полуразобранном состоянии), скинул для примера использования. 

Уже удалил свой комент... Проверил, если предварительно воспользоваться методом Refresh(), то вроде работает. Только что бы догадаться до этого надо ныть на форуме или читать документацию по базовым классам, что не совсем удобно. Большое спасибо за решение MetaDriver. 
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий