Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 824

 

Добрый день. Подскажите в каком формате качать исторические данные с сервера Финам или MFD.ru для импорта истории котировок? У меня совсем не получается.. Только могу из txt в csv сохранить и все.

 
Eol:

Добрый день. Подскажите в каком формате качать исторические данные с сервера Финам или MFD.ru для импорта истории котировок? У меня совсем не получается.. Только могу из txt в csv сохранить и все.


В MetaTrader 5 ничего качать не нужно :) - как только Вы подключились к торговому серверу - Вам сразу доступна реальная тиковая история. Смотрите в сторону CopyTicks

 
Vladimir Karputov:

В MetaTrader 5 ничего качать не нужно :) - как только Вы подключились к торговому серверу - Вам сразу доступна реальная тиковая история. Смотрите в сторону CopyTicks


Мне просто нужны минутки  по Россиийским акциям за 10 лет.. Мне мой брокер столько не дает и вряд ли найдется такой.

 
5.0 Build 1755

Описание проблемы

Добрый вечер  есть вопрос по MQL5 если сможете помочь былбы благодарен.
А то учебников по 5 нету пока что.
Вопрос такой.


#property indicator_level1 30  - Задал параметр. При Загрузки индикатора на график. Мне его ресует.
В коде програме функцыей ColorBuffer[] изменяю линию на другой цвет если линия опускаетса ниже данного параметра.

И тут родилась проблема. Если захожу в индикатор и меняю данный параметр на другой, даже при загрузке индикатора линия уровня ре суется там где надо а сам индикатор рассчитывает всё по тому параметру что установлен раньше тобиж #property indicator_level1 30

Каким образом я должен обращятса к данному уровню чтоб можно было потом его менять в ходе исполнение программы?

- Уже испробывал провирять параметр. И заново пересчитывать всю цепь индикатора.
Всеравно не хочет перерисовыватса как мне нужно!

Помогите!
 :)

Последовательность действий

RSI.mqh

#property indicator_level1 30

#property indicator_level2 70


В коде описания Calculaite. В конце где пробигаем по всему For Добавил функцыю изменить цвет линиии если линия ниже данного уровня.
  ExtColorsBuffer [i] =0;
if (ExtRSIBuffer [i]> indicator_level2&& indicator_levelcolor!=NULL) {
ExtColorsBuffer [i] =1;
}
if (ExtRSIBuffer [i]< indicator_level1&& indicator_levelcolor!=NULL) {
ExtColorsBuffer [i] =2;

Ожидаемый результат


Ожидается то же самое что на картинке но когда в ходе использования индикатора я захожу в настройки и меняю уровень indicator_level1 / 2. То  индикатор перерисовывается так что если линия пересикает уровень то меняет цвет. А у меня она остаётся пока что на первоночальном уровне :(

Дополнительные сведения

...

Файлы:
rrgpusgf5g.png  69 kb
 
Ivan Stepanenko:
5.0 Build 1755

Описание проблемы

Добрый вечер  есть вопрос по MQL5 если сможете помочь былбы благодарен.
А то учебников по 5 нету пока что.
Вопрос такой.


#property indicator_level1 30  - Задал параметр. При Загрузки индикатора на график. Мне его ресует.
В коде програме функцыей ColorBuffer[] изменяю линию на другой цвет если линия опускаетса ниже данного параметра.

И тут родилась проблема. Если захожу в индикатор и меняю данный параметр на другой, даже при загрузке индикатора линия уровня ре суется там где надо а сам индикатор рассчитывает всё по тому параметру что установлен раньше тобиж #property indicator_level1 30

Каким образом я должен обращятса к данному уровню чтоб можно было потом его менять в ходе исполнение программы?

- Уже испробывал провирять параметр. И заново пересчитывать всю цепь индикатора.
Всеравно не хочет перерисовыватса как мне нужно!

Помогите!
 :)

Последовательность действий

RSI.mqh

#property indicator_level1 30

#property indicator_level2 70


В коде описания Calculaite. В конце где пробигаем по всему For Добавил функцыю изменить цвет линиии если линия ниже данного уровня.
  ExtColorsBuffer [i] =0;
if (ExtRSIBuffer [i]> indicator_level2&& indicator_levelcolor!=NULL) {
ExtColorsBuffer [i] =1;
}
if (ExtRSIBuffer [i]< indicator_level1&& indicator_levelcolor!=NULL) {
ExtColorsBuffer [i] =2;

Ожидаемый результат


Ожидается то же самое что на картинке но когда в ходе использования индикатора я захожу в настройки и меняю уровень indicator_level1 / 2. То  индикатор перерисовывается так что если линия пересикает уровень то меняет цвет. А у меня она остаётся пока что на первоночальном уровне :(

Дополнительные сведения

...

IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrCrimson);      // Поменяет цвет самого первого по счёту уровня на цвет Crimson
IndicatorSetInteger(INDICATOR_LEVELCOLOR,1,clrDeepSkyBlue);  // Поменяет цвет второго по счёту уровня на цвет DeepSkyBlue
 
Ivan Stepanenko:
5.0 Build 1755

Описание проблемы

Добрый вечер  есть вопрос по MQL5 если сможете помочь былбы благодарен.
А то учебников по 5 нету пока что.
Вопрос такой.

А чем не понравился ответ в отдельной теме?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Нужна помощь MQL5 #property indicator_level

Alexey Viktorov, 2018.01.31 09:06

Игорь, мы оба неправы. Я не сразу понял задачу...

Кроме директивы #property установить уровень индикатора можно функцией

IndicatorSetDouble(INDICATOR_LEVELVALUE,0,20);

Соответственно этот уровень надо задать во входящих параметрах индикатора. В таком случае, уровень рисоваться будет по заданному значению и менять его надо тоже по этому значению.

Тестовый вариант

#property indicator_separate_window
#property indicator_buffers     1
#property indicator_type1       DRAW_LINE
#property indicator_plots       1
#property indicator_color1      clrGreenYellow
#property indicator_level1      0
#property indicator_levelcolor  clrPurple

input double level = 0.6;
double buf[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0, buf, INDICATOR_DATA);
   IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, level);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int i = 0, limit = prev_calculated == 0 ? 0 : rates_total-1;
    for(i = limit; i < rates_total; i++)
     {
      buf[i] = i%2;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Надеюсь поменять цвет в соответствии с уровнем level заданным во входящих параметрах не сложно.
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Aleksey Rodionov, 2018.02.06 16:31

Вот интересное нашел:

Print("Баланс на счёте = ",AccountInfoDouble(ACCOUNT_BALANCE));
printf("ACCOUNT_BALANCE =  %G",AccountInfoDouble(ACCOUNT_BALANCE));


Если в  pintf убрать %G то значение отображаться не будет, а в Print отображается без %G

Еще в Print выдается значение баланса  10000.0 а в printf просто целое 10000

Меня больше вопрос интересует в чем отличие в Print и printf а самое главное почему без %G не отображается. В справочнике ничего не понял.


 

Приветствую коллеги! Назрел такой вопрос, пытаюсь вставить виджет своего сигнала в подписи на форуме "форексденьги", но у них там отключен, то ли заблокирован HTML, есть какая то возможность переделать в URL? потому что они нормально вставляются и отображаются.

Вот такой код <iframe frameborder="0" width="220" height="140" src="https://www.mql5.com/ru/signals/widget/signal/328l?t=green"></iframe>

 
Aleksey Rodionov:


А документацию читали? Вместо %G подставляется значение после запятой. То-есть  AccountInfoDouble(ACCOUNT_BALANCE) Соответственно если это убрать, то и выводиться не будет.
Документация по MQL5: Общие функции / PrintFormat
Документация по MQL5: Общие функции / PrintFormat
  • www.mql5.com
Количество, порядок и тип параметров должны точно соответствовать составу спецификаторов, в противном случае результат печати неопределён. Вместо функции PrintFormat() можно использовать функцию Если за строкой формата следуют еще параметры, то эта строка должна содержать спецификации формата, определяющие формат вывода этих параметров...
 

Добрый день!

Помогите решить проблему, или подскажите где такое уже решалось: открываю позиции по разным условиям - БАЙ по условиям 1, 2, 3, СЕЛЛ по 4,5. Как прописать в коде, чтобы БАЙ,открытый по условию 1 (бай1) закрывался по условию 6, бай2 и бай3 по условию 7, селл4 по условию 8 и селл5 по условию9? У меня почему-то все баи закрываются по 7, а все селлы по 9. Мучаюсь третий день. Спасибо.