[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 524

 

Доброго дня! Подскажите, почему я никаким путём не могу нарисовать в тестере стрелочки? Пример 

 bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;
  if(napravlenieCCI){  string strela = DoubleToStr(Time[0], 0); 
  ObjectCreate(strela, OBJ_ARROW, 0, iTime(NULL,0,0),iHigh(NULL,0,0)+0.0004); 
  ObjectSet(strela, OBJPROP_ARROWCODE, 242);
ObjectSet(strela, OBJPROP_COLOR , Red);}
Стрелок тупо не вижу.
 

Здравствуйте, Виктор Иванович!

Что-то непонятно?
Обратите внимание на "можно", т.е. предлагается вариант решения, в котором будут использоваться объекты, -- это Вам непонятно?
Или выбор данных объектов?

Можно обойтись без какой-либо индикации, используя рабочие (условные) уровни. Считаю, с трендовыми проще, чем с "прямоугольником", эллипсом (ми) или фи-уровнями. Горизонтальные линии бары "загораживают".

 

Ваше предложение?

 

 В учебнике директиву #include написано следующее:


" Директива #include может быть указана в любом месте программы, но обычно все включения размешаются в начале файла исходного текста. Препроцессор заменяет строку #include <имя_файла> (или строку #include "имя_файла") содержимым файла с указанным именем.

Угловые скобки обозначают, что файл будет взят из стандартного каталога Каталог_терминала\experts\include (текущий каталог не просматривается). Если имя файла заключено в кавычки, то поиск производится в текущем каталоге, а именно в том, в котором содержится основной файл исходного текста (стандартный каталог не просматривается). " 

Я так понимаю, что если скобки угловые, то на пусть изначально не читается из скобок, даже не пытается, а сразу обращается в каталог  Каталог_терминала\experts\include , так?

А если кавычки, то сразу ищется путь в кавычках, не обращаясь с ходу с каталог Каталог_терминала\experts\include. Т.е.  можно прописать любую папку любого раздела, например, E:\папка_1\папка_2\папка_N\ и т.д. В таком, случае, чтоб прочитать этот файл нужно ыоспользоваться кавычками, иначе программа не прочитает его. Так как в первом случае программа будет читать только стандартный каталог. Я верно понимаю?

 
Roll:

 

Здравствуйте, Виктор Иванович!

Что-то непонятно?
Обратите внимание на "можно", т.е. предлагается вариант решения, в котором будут использоваться объекты, -- это Вам непонятно?
Или выбор данных объектов?

Можно обойтись без какой-либо индикации, используя рабочие (условные) уровни. Считаю, с трендовыми проще, чем с "прямоугольником", эллипсом (ми) или фи-уровнями. Горизонтальные линии бары "загораживают".

 

Ваше предложение?


double h=High[iHighest(NULL,0,MODE_HIGH,Quant_Bars ,1)];
double l=Low[iLowest( NULL,0,MODE_LOW,Quant_Bars,1)];

Сосчитали уровни. А дальше дело техники

Объекты в тестере лучше не использовать (особенно при оптимизации) 

 
Т.е. ваш выбор -- рабочие уровни. Если во внешних переменных поставить запрет/разрешение на образование объектов ( используемых для индикации), то можно запускать оптимизацию.
 

Здравствуйте ещё раз. Благодарю за прошлый ответ - очень помогли. Помогите пожалуйста ещё. Из одного советника достал нужную мне функцию, которая считает прибыль (убыток) по счету за сегодня (если f0_5(0)), вчера (если f0_5(1)) и тд:

double f0_5(int ai_0) {
   double ld_ret_4 = 0;
   for (int pos_12 = 0; pos_12 < OrdersHistoryTotal(); pos_12++) {
      if (!(OrderSelect(pos_12, SELECT_BY_POS, MODE_HISTORY))) break;
               if (OrderCloseTime() >= iTime(OrderSymbol(), PERIOD_D1, ai_0) && OrderCloseTime() < iTime(OrderSymbol(), PERIOD_D1, ai_0) + 86400) ld_ret_4 = ld_ret_4 + OrderProfit() + OrderCommission() + OrderSwap();
   }
   return (ld_ret_4);
}

В итоге должна получаться десятичная дробь (по идее), но функция возвращает целое число почему-то. В общем помогите, пожалуйста изменить функцию так, чтобы была дробь с двумя знаками после запятой.

Хотя тут может быть я косячу: поверял с помощью Print(), а функция на самом деле нормально считает? В общем помогите, пожалуйста, разобраться.

 
MaxZ:

Вот Вам Всем известный идникатор.

Сможете получить вот такую картинку!? :))))))



 

Вот получилось 

 
 Вот страница учебника https://docs.mql4.com/ru/array/ArrayCopy
 Там сказано, что:
ArrayCopy(array2,array1,0,Bars*6-60,60);
// теперь array2 содержит 10 последних баров из истории (имеется в виду, что последний бар - это текущий бар, бар с индексом [0])

 С чего бы это вдруг array2 содержит 10 последних баров?
 Ведь Bars*6 - 60 не будет возвращать значение 10. Логики я вообще не замечаю.
 Например, в истории 1000 баров. Тогда Bars*6 - 60 = 1000*6 - 60 = 6000 - 60 = 5940. И где тут 10 последних баров?
 
hoz:
 Вот страница учебника https://docs.mql4.com/ru/array/ArrayCopy
 Там сказано, что:

 С чего бы это вдруг array2 содержит 10 последних баров?
 Ведь Bars*6 - 60 не будет возвращать значение 10. Логики я вообще не замечаю.
 Например, в истории 1000 баров. Тогда Bars*6 - 60 = 1000*6 - 60 = 6000 - 60 = 5940. И где тут 10 последних баров?

Вы меня удивляете снова! Так называемые 10 последних, с 0 до 10го бара у нас на графике в контакте с ценой! Забудьте о тридесятых да пятитысячных барах в истории! По ним уже без нас проехали, и нужны они только для тестера. А нам нужны последние, начиная с нулевого, и конечно, новые, в будущем, туда и впериваемся! ;))
 
borilunad:

Вы меня удивляете снова! Так называемые 10 последних, с 0 до 10го бара у нас на графике в контакте с ценой! Забудьте о тридесятых да пятитысячных барах в истории! По ним уже без нас проехали, и нужны они только для тестера. А нам нужны последние, начиная с нулевого, и конечно, новые, в будущем, туда и впериваемся! ;))

 То что последних т.е. ближе к текущей цене я уже уяснил. Но вот данный кусок кода Bars*6 - 60 я не понимаю. Что он возвратит? Хочу понять, как его просчитать логически. Можно пояснить? Может кому-то это просто, но я по образованию не программист и очень дико воспринимать такой поток информации. Читаю я учебник, и постепенно задаю вопросы, которые попадаются. Очень надеюсь, что скоро уже вопросы будут по адекватнее, ежели сейчас.