Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2365

 
Tretyakov Rostyslav #:

проверил код, стало только хуже, если раньше мне он хотябы значение string правильно возвращал, сейчас вообще все сбилось(

 
Vladimir Zotov #:
2-60

в условии цикла не увидел.

 
Vladimir Zotov #:

проверил код, стало только хуже, если раньше мне он хотябы значение string правильно возвращал, сейчас вообще все сбилось(

Похоже Вы поняли сути...

Я Вам показал пример как строить цикл, в Вашем коде пропущено "Выражение2"

 
JRandomTrader #:

в условии цикла не увидел.

Все, увидел... Проблема копипасты))) уже 2 день над кодом сижу, извините

 
Tretyakov Rostyslav #:

Вы уверены

абсолютно уверен в моем варианте написания функции и обозначения окончаний трендовой линии 0 и 1.

возможно в вашем варианте используются 1 и 2...

 
JRandomTrader #:

в условии цикла не увидел.

Большое спасибо, исправил!

  if (iMA(NULL,1,24,0,MODE_EMA,PRICE_MEDIAN,0)>iMA(NULL,1,60,0,MODE_EMA,PRICE_MEDIAN,0))//проверяем М1 вверх
  {
  kM1="Бычий";
  for (int i=0;i<Bars;i++)
  {
  if (NormalizeDouble(iMA(NULL,1,24,0,MODE_EMA,PRICE_MEDIAN,i),Digits)>NormalizeDouble(iMA(NULL,1,60,0,MODE_EMA,PRICE_MEDIAN,i),Digits))
  iM1++;
  } 
  }
  if (iMA(NULL,1,24,0,MODE_EMA,PRICE_MEDIAN,0)<iMA(NULL,1,60,0,MODE_EMA,PRICE_MEDIAN,0))//проверяем М1 вниз
  {
  kM1="Медвежий";
  for (int i=0;i<Bars;i++)
  {
  if (NormalizeDouble(iMA(NULL,1,24,0,MODE_EMA,PRICE_MEDIAN,i),Digits)<NormalizeDouble(iMA(NULL,1,60,0,MODE_EMA,PRICE_MEDIAN,i),Digits))
  iM1++;
  else
  break;
  } 
  } 
 
retired #:

абсолютно уверен в моем варианте написания функции и обозначения окончаний трендовой линии 0 и 1.

возможно в вашем варианте используются 1 и 2...

Для Вас был код, подпись была не Вам.

 
Vladimir Zotov #:
for (int i=0;i<Bars;i++)

О чем я и говорил

 
Tretyakov Rostyslav #:

О чем я и говорил

Да, и плюсом еще и неправильные параметры ЕМА

 

в МТ4 столкнулся с одной и той же проблемой у двух разных брокеров.

значения окончания баров и трендовых линий, которые строятся по ним, визуально показываются на графиках с точностью до 5 знака (_Digits=5).

а когда запрашиваю значения окончаний такой трендовой линии через функцию  ObjectGetDouble(), то она выдает значения только с точностью до 4 знака после запятой, то есть округляя точное значение.

явный запрос 5-го знака с помощью функции  NormalizeDouble() ничего не меняет...


MyPoint0=(double)ObjectGetDouble(0,m_objname,OBJPROP_PRICE,0);

MyPoint1=(double)ObjectGetDouble(0,m_objname,OBJPROP_PRICE,1);


MyPoint0=NormalizeDouble(ObjectGetDouble(0,m_objname,OBJPROP_PRICE,0),_Digits);

MyPoint1=NormalizeDouble(ObjectGetDouble(0,m_objname,OBJPROP_PRICE,1),_Digits);


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

Причина обращения: