Как правильно рассчитать % снижения/повышения пары?

 
Посмотрел на РБК информер EURUSD к тому моменту на нем было: 1.2471 -0.07% Что-то зацепило и решил посчитать сам, к сожалению от какой цены считается я незнаю, посмотрел в терминале, открытие по паре было в районе 1.2500. То есть получается 1.2500-1.2471= 0.0029 Чтобы вычислить процент понижения я так понимаю нужно 0.0029*(1.2500*100), то есть вся формула выглядит так: (1.2500-1.2471)*(1.2500*100) Получается значение равное 0.3625. Что я неправильно сделал в этой задачке для первоклассника?? :)) Потом решил вычислить след. образом: Узнать цену от которой считался процент, то есть цену открытия! Получается: 100%-0.07%=99.93=0.9993 1.2471/0.9993=1.2479 Но как-то 1.2479 и моя цена открытия в терминале ЛФ 1.2503 сильно расходятся.... такое может быть? Не пинайте, ну просто очень сильно зацепило. Обьясните правильную формулу рассчета!
 
Na100yaschiy >>:
Посмотрел на РБК информер EURUSD к тому моменту на нем было: 1.2471 -0.07% Что-то зацепило и решил посчитать сам, к сожалению от какой цены считается я незнаю, посмотрел в терминале, открытие по паре было в районе 1.2500. То есть получается 1.2500-1.2471= 0.0029 Чтобы вычислить процент понижения я так понимаю нужно 0.0029*(1.2500*100), то есть вся формула выглядит так: (1.2500-1.2471)*(1.2500*100) Получается значение равное 0.3625. Что я неправильно сделал в этой задачке для первоклассника?? :)) Потом решил вычислить след. образом: Узнать цену от которой считался процент, то есть цену открытия! Получается: 100%-0.07%=99.93=0.9993 1.2471/0.9993=1.2479 Но как-то 1.2479 и моя цена открытия в терминале ЛФ 1.2503 сильно расходятся.... такое может быть? Не пинайте, ну просто очень сильно зацепило. Обьясните правильную формулу рассчета!

'YZCHMC_V1 Индикатор группового движения'

большинство дает % изменинения от начала дня


 

Вот смотри: 1.2500  - 100%

                   1.2471 -Х %

Надо найти сколько процентов 1,2771 от цены 1,2500. Считаем: (1,2471*100)/1,2500=99,768 %.    100 %-99,768 %= -0,232. %

 
Большое всем спасибо, разобрался! ))
 

Вроде бы разобрался, да не тут то было, считает неправильно, поправьте что не так?

ObjectDelete("PD"); 
ObjectDelete("PD1"); 
color color_percent;
string figur_p_m;
double percent_dynamic_open = iOpen(NULL,PERIOD_D1,0);
double percent_dyn_forms = (Ask*100)/percent_dynamic_open;
double percent_dynamic = 100-percent_dyn_forms;
      if ( percent_dynamic > 0 )
         color_percent = Green;    
         figur_p_m = "+";     
      if ( percent_dynamic < 0 )   
         color_percent = Red;
         figur_p_m = "-";     
ObjectCreate("PD", OBJ_LABEL, 0, 0, 0);
ObjectSet("PD", OBJPROP_XDISTANCE, 8);
ObjectSet("PD", OBJPROP_YDISTANCE, 6);
ObjectSet("PD", OBJPROP_CORNER, 1);
ObjectCreate("PD1", OBJ_LABEL, 0, 0, 0);
ObjectSet("PD1", OBJPROP_XDISTANCE, 50);
ObjectSet("PD1", OBJPROP_YDISTANCE, 8);
ObjectSet("PD1", OBJPROP_CORNER, 1);
ObjectSetText("PD1", Simv+": "+figur_p_m, 7, "Arial", Black);
ObjectSetText("PD", DoubleToStr(percent_dynamic,3)+"%", 8, "Arial Black", color_percent);
  
И подскажите как код уменьшить, мне кажется какой то он несуразно большой ))
 
Попраьте пожалуйста код, или посоветуйте правильную формулу!
 
double percent_dynamic = percent_dyn_forms-100;
 
Na100yaschiy >>:

Вроде бы разобрался, да не тут то было, считает неправильно, поправьте что не так?

И подскажите как код уменьшить, мне кажется какой то он несуразно большой ))

Код расчета %CH за день на самом деле очень маленький!

его не надо сокращать - меньше его уже не сделать 

и у вас он очень небольшой

---

а вот код,как представить на экране...  информацию.  это как раз одно из сложнейших занятий 

интерфейс в зависисмости от того какой он,  очень сильно влияет 

и занимает очень много времени!

порой гораздо больше основной идеи

 
Сэнкс за подсказку! Да, я впринципе и имел ввиду код вывода на экран-график. А что если мне нужно вывести к примеру 10 определенных пар на график? выходит нужно для каждой вести рассчет-для каждой своя формула? или можно это дело как-то через цикл и массив осуществить? В рнр соображаю, а вот мукул пока сложно, не все понятно))
 
Na100yaschiy >>:
Сэнкс за подсказку! Да, я впринципе и имел ввиду код вывода на экран-график. А что если мне нужно вывести к примеру 10 определенных пар на график? выходит нужно для каждой вести рассчет-для каждой своя формула? или можно это дело как-то через цикл и массив осуществить? В рнр соображаю, а вот мукул пока сложно, не все понятно))

Ваш код вывода на график очен неприятен некоторыми моментами

1-вы всегда удяляете объекты и снова создаете

  ( это ресурсоемко )

 и это на каждом тике!

---

куда проще использовать

ObjectFind  перед тем как решать создавать ли объект

  созданный объект удалять не надо каждый раз

  достаточно  модифицировать его значение через ObjectSet

код не станет от этого короче но ресуросов потреблять будет меньше

--

if ( ObjectFind ( ИМЯ ) == -1 )

{

   Create...

}

else

{

   if ( ) // надо ли модифицировать

   {

      ObjectSet ...

   }

}

 

А как можно Сократить данный код? Можно ли сделать это через массив и будет ли тогда вывод данных достоверным? Если можно покажите пожал-ста пример! 

double percent_dynamic_open_EURUSD = iOpen("EURUSD",PERIOD_D1,0);
double percent_dyn_forms_EURUSD = (Ask*100)/percent_dynamic_open_EURUSD;
double percent_dynamic_EURUSD = percent_dyn_forms_EURUSD-100;
      if ( percent_dynamic_EURUSD > 0 )
        color color_percent_EURUSD = Green;    
       if ( percent_dynamic_EURUSD < 0 )   
         color_percent_EURUSD = Red;
      if ( percent_dynamic_EURUSD == 0 )   
         color_percent_EURUSD = Brown;
         
double percent_dynamic_open_GBPUSD = iOpen("GBPUSD",PERIOD_D1,0);
double percent_dyn_forms_GBPUSD = (Ask*100)/percent_dynamic_open_GBPUSD;
double percent_dynamic_GBPUSD = percent_dyn_forms_GBPUSD-100;
      if ( percent_dynamic_GBPUSD > 0 )
        color color_percent_GBPUSD = Green;    
       if ( percent_dynamic_GBPUSD < 0 )   
         color_percent_GBPUSD = Red;
      if ( percent_dynamic_GBPUSD == 0 )   
         color_percent_GBPUSD = Brown;
         
double percent_dynamic_open_USDCAD = iOpen("USDCAD",PERIOD_D1,0);
double percent_dyn_forms_USDCAD = (Ask*100)/percent_dynamic_open_USDCAD;
double percent_dynamic_USDCAD = percent_dyn_forms_USDCAD-100;
      if ( percent_dynamic_USDCAD > 0 )
        color color_percent_USDCAD = Green;    
       if ( percent_dynamic_USDCAD < 0 )   
         color_percent_USDCAD = Red;
      if ( percent_dynamic_USDCAD == 0 )   
         color_percent_USDCAD = Brown;
         
FileWrite(OpenFile, "EURUSD%: ",percent_dynamic_EURUSD,"<BR>");  
FileWrite(OpenFile, "GBPUSD%: ",percent_dynamic_GBPUSD,"<BR>");  
FileWrite(OpenFile, "USDCAD%: ",percent_dynamic_USDCAD,"<BR>");