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

 
Silent:

Может даже быстрее будет... хотя хз, как это с перераспределением памяти будет выглядеть.

Пожалуйста, подскажите, как посмотреть сколько памяти занимает эксперт и как происходит перерспределение?
 

И все же у меня не получается определить почему не создаются уровни с помощью ObjectCreate. Все функции отрабатываются, а объекты OBJ_TREND не создаются

На глобальном уровне определены переменные:

string oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

Код, который должен создавать уровни:

void OnInit()
  {
   TimeOpenBar();
   ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oRes,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oRes,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oRes,OBJPROP_RAY,false);
   ObjectCreate(0,oSup,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oSup,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oSup,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oSup,OBJPROP_RAY,false);
   CreateLevels();

   ObjectCreate(0,oPP,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oPP,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oPP,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oPP,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oPP,OBJPROP_RAY,false);
   ObjectCreate(0,oRes1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oRes1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oRes1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oRes1,OBJPROP_RAY,false);
   ObjectCreate(0,oSup1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oSup1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oSup1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oSup1,OBJPROP_RAY,false);
   PPlevel();
  }
Народ, помогите разобраться с этим. Пожалуйста
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
fyords:
Выведите через print результаты ObjectCreate, может там ошибка.
Ну и что там написано? Вы делали вывод результата?
 
Подскажите пожалуйста понятную (максимально простую) литературу по техническому анализу. А то в самом начале чтения вроде бы понятно, а как начинаются углубленные объяснения - мозг отказывается это понимать :(
 
fyords:
Ну и что там написано? Вы делали вывод результата?
У меня не получилось, что-то не так делал. Print ничего не выдавал.
 
NeSezon:
Подскажите пожалуйста понятную (максимально простую) литературу по техническому анализу. А то в самом начале чтения вроде бы понятно, а как начинаются углубленные объяснения - мозг отказывается это понимать :(
Попробуй Найман "Малая энциклопедия трейдера"
 
WindSW:
 У меня не получилось, что-то не так делал. Print ничего не выдавал.
ResetLastError();
bool result=ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
Наверно не так делали.
 
fyords:
Наверно не так делали.
Да, я действительно не так делал. Пишет ошибку "5040 - Испорченный параметр типа string". У меня параметры для объектов заданы на глобальном уровне (без них компилятор предупреждает)в таком виде: string oRes, oSup, oPP, oRes1; и т.д. Как это исправить и как правильно задавать правильный параметр string, чтобы все работало и компилятор не ругался?
 
WindSW:
Да, я действительно не так делал. Пишет ошибку "5040 - Испорченный параметр типа string". У меня параметры для объектов заданы на глобальном уровне (без них компилятор предупреждает)в таком виде: string oRes, oSup, oPP, oRes1; и т.д. Как это исправить и как правильно задавать правильный параметр string, чтобы все работало и компилятор не ругался?

Ну допустим, Вы объявили переменные на глобальном уровне, а Вы присвоили этим переменным значения?

Если нет, то получается Вы говорите программе "создай объект с такими-то характеристиками с именем..." и тут проблема - имя не задано. Вот он и не создает.

Может проще будет указать его прямо в коде ObjectCreate?

ResetLastError();
bool result=ObjectCreate(0,"Name1",OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
 
WindSW:
Попробуй Найман "Малая энциклопедия трейдера"
Спасибо! Нашел. На днях с удовольствием почитаю.
Причина обращения: