Ошибки, баги, вопросы - страница 136

 
Renat:
Индикатор, созданный из эксперта, не выгрузится пока его явно не удалите или эксперт не завершится.

Спасибо что нашли время ответить.

Это многое меняет, значит можно обойтись в этом вопросе без разделения на код для тестера и код для реала.

 
Renat:

Посоветуйте как лучше поступить для экономии ресурсов, если индикаторы нужны раз в час :

оставить десяток стандартных индикаторов чтоб болтались на каждом тике или

выгрузить их после каждого использования через IndicatorRelease(хэндл_индикатора), а потом снова загрузить через час.

Правда второй вариант чреват увеличением времени тестирования.

Так же ответьте сколько в среднем требуется задержка на загрузку одной машки?

 
Urain:

Посоветуйте как лучше поступить для экономии ресурсов, если индикаторы нужны раз в час :

оставить десяток стандартных индикаторов чтоб болтались на каждом тике или

Лучше всего не выгружать их (индикаторы вряд ли нужны реально "раз в час"), а:

  1. увеличить объем памяти с переходом на 64 бита, или
  2. уменьшить глубину истории чартов
Время загрузки точно сказать нельзя - это зависит от нескольких факторов. Лучше всего не создавать себе проблем выгрузкой индикаторов - это может быть чревато проблемами из-за асинхронности процессов создания и самого перерасчета индикатора.
 
Urain:

Посоветуйте как лучше поступить для экономии ресурсов, если индикаторы нужны раз в час :

оставить десяток стандартных индикаторов чтоб болтались на каждом тике или

выгрузить их после каждого использования через IndicatorRelease(хэндл_индикатора), а потом снова загрузить через час.

Правда второй вариант чреват увеличением времени тестирования.

Так же ответьте сколько в среднем требуется задержка на загрузку одной машки?

 Попробуй данные запрашивать в таймере с интервалом который тебе нужен. если конечно таймер не используется у тебя в других целях.
 

Вопрос

Я вобще не использую настройки со смещением, но случайно увидел описание по аллигатору, начал думать...:)

 

описание одной из настроек аллигатора: 

teeth_shift

[in]  Смещение красной линии относительно графика цены. Необходимо помнить, что смещение линии является чисто визуальным для отображения и значения в индикаторном буфере хранятся без смещения. При получении значений буфера функцией CopyBuffer() значение смещения никакого эффекта иметь не будет.

 

правда в описании к МА этого нет, но я думаю что это ошибка и все аналогично

ma_shift

[in]  Сдвиг индикатора относительно ценового графика.

 

На рисунке где желтая птичка, цена пересекает МА без смещения. Здесь понятно, например цена закрытия позапрошлого бара выше МА, прошлого ниже МА, на открытии текущего бара открываемся.

А там где зеленая птичка, как узнать тоже самое? Т.е. момент визуального пересечения ценой, МА со смещением

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
Здравствуйте, написал скрипт - получение цены Ask по паре EURUSD
#include <Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  CSymbolInfo SymInfo;
  Alert(SymInfo.Ask());
  }
выдаёт значение 0 - думаю надо привязать
CSymbolInfo SymInfo;
к символу графика, но не знаю как указать классу символ
 
kirill190982:
Здравствуйте, написал скрипт - получение цены Ask по паре EURUSD выдаёт значение 0 - думаю надо привязать
к символу графика, но не знаю как указать классу символ
Для начала следует познакомиться с тем что из себя представляет данный класс. А для решения поставленной задачи следует воспользоваться методами Name и RefreshRates у данного класса.
 
Interesting:
Для начала следует познакомиться с тем что из себя представляет данный класс. А при привязке к символу для начала следует воспользоваться методом "Name" у данного класса.
//+------------------------------------------------------------------+
//|                                                   SymbolInfo.mqh |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//|                                              Revision 2010.02.22 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Class CSymbolInfo.                                               |
//| Appointment: Class for access to symbol info.                    |
//+------------------------------------------------------------------+
class CSymbolInfo
  {
protected:
   string                      m_name;               // symbol name
   MqlTick                     m_tick;               // structure of tick;
.....
//--- ask parameters
   double            Ask() const                      { return(m_tick.ask); 
Как я понял Ask в классе определяется структурой MqlTick, пробовал и так 
#include <Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  string Megasymbol=Symbol();
  CSymbolInfo SymInfo;
  SymInfo.Name(Megasymbol);
  Alert(SymInfo.Ask());
  }
всё равно выдаёт ноль
 
kirill190982:
Как я понял Ask в классе определяется структурой MqlTick, пробовал и так всё равно выдаёт ноль

Следует делать так

SymInfo.Name("EURUSD");
SymInfo.RefreshRates();
Print(SymInfo.Ask());
 
Interesting:

А так попробовать слабо?

спасибо