Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1107

 

Всем здравствуйте. Вопрос к профи. Возможно ли написать сову, что бы она работала на веб-площадке? точнее не написать, а переписать имеющуюся для МТ4 сову.

 
blo0ds.:
ну да бред я написал в прошлом посте) Сделал, как ты написал изменением луча) Все работает!!! Спасибо. Только вот не пойму, как здесь + ставить(((

Ну какой-же бред?


Имеем 2 прямоугольных треугольника. BC / AB = DE / AD = tg(A)

AB = 22 бара цена в точке С есть, в точке В есть. Их разница делённая на _Point есть количество пунктов или ВС. Отсюда DE = (BC/AB)*101 В ПУНКТАХ...

Цена в точке Е = Цена в точке А+DE*_Point

И всё...

Это позволяет получить искомое не прибегая к графическим элементам.

 

Здравствуйте.

Подскажите что не так? Индикатор не работает в тестере и эксперт на нем тоже.

Выдает ошибку:

2016.10.20 20:10:38.734 2016.10.03 00:09  Testing pass stopped due to a critical error in the EA

2016.10.20 20:10:38.640 2016.10.03 00:08  PrizeMACD_s4_s2_p72 EURUSD,M1: array out of range in 'PrizeMACD_s4_s2_p72.mq4' (147,17)

2016.10.20 20:10:38.625 PrizeMACD_s4_s2_p72 inputs: base=500; Multiplikator=10; InpSignalSMA=9; 

 Которая указывает на i  в  а1_буффере

   if(prev_calculated==0)// first calculation    
     {
      limit=rates_total-TOCHKA_VHODA;
      //--- set empty value for first limit bars
// Всего баров  rates_total, i может принимать значения от rates_total - 1 до 0
//Если rates_total=1000 , а TOCHKA_VHODA =200, и я хочу обнулить 200 первых значений 
// то эти значения будут от 999 до 800 включительно. Тоесть limit=rates_total-TOCHKA_VHODA -1 = 799 это следующая 
//расчетная точка. А если 800 желательно пересчитать?
// Если было посчитано prev_calculated = 300 баров то это бары под номерами от 999 до 700 из 1000 баров 
//но 700 бар нам нужно персчитать снова тогда лимит достаточно limit=rates_total-prev_calculated;
      for(i=rates_total-1;i>=limit;i--)
      {
       a1_Buffer[i]=0.00001;
       a2_Buffer[i]=0.00001;
       a3_Buffer[i]=0.00001;
       a4_Buffer[i]=0.00001;
       a5_Buffer[i]=0.00001;
       a6_Buffer[i]=0.00001;
      }

     }
   else limit=rates_total-prev_calculated;
//--- main loop
   for(i=limit;i>=0 && !IsStopped();i--)
   {
//===========================================================================================
   Znach = iMA(NULL,0,base*2,0,MODE_SMA,PRICE_OPEN,i);

Вроде на пальцах для себя все расписал, где ошибаюсь? 

Файлы:
 
AlexeyVik:

Ну какой-же бред?


Имеем 2 прямоугольных треугольника. BC / AB = DE / AD = tg(A)

AB = 22 бара цена в точке С есть, в точке В есть. Их разница делённая на _Point есть количество пунктов или ВС. Отсюда DE = (BC/AB)*101 В ПУНКТАХ...

Цена в точке Е = Цена в точке А+DE*_Point

И всё...

Это позволяет получить искомое не прибегая к графическим элементам.

Расчёт с конкретными числами.


ВС = (1.09869-1.09795)/0.00001 = 74.

tg(A) = 74/22 = 3.363636363636

DE = 3.363636363636 * 101 = 339.72727272

Цена в точке Е = 1.09795+339.72727272*0.00001 = 1.10134727272 нормализованное до 5 знаков 1.10135 что и требовалось.

 
какой последний билд мт4 ? 1012 ?
 
AlexeyVik:

Расчёт с конкретными числами.


ВС = (1.09869-1.09795)/0.00001 = 74.

tg(A) = 74/22 = 3.363636363636

DE = 3.363636363636 * 101 = 339.72727272

Цена в точке Е = 1.09795+339.72727272*0.00001 = 1.10134727272 нормализованное до 5 знаков 1.10135 что и требовалось.

А еще,   рычаг Архимеда   АС*Е - АЕ*С+ЕС*А=0, тогда Е=( АЕ*С-ЕС*А)/АС или ( 102*1,09869- 79*1,09795)/23 = 1,101232, возможно где то с числом интервалов просчитался. :)

 
filpan:
А еще,   рычаг Архимеда   АС*Е - АЕ*С+ЕС*А=0, тогда Е=( АЕ*С-ЕС*А)/АС или ( 102*1,09869- 79*1,09795)/23 = 1,101232, возможно где то с числом интервалов просчитался. :)

101 и 22 а у тебя 102 и 23

 
AlexeyVik:

101 и 22 а у тебя 102 и 23


Да  1,10134727272727
 
filpan:

Здравствуйте.

Подскажите что не так? Индикатор не работает в тестере и эксперт на нем тоже.

Выдает ошибку:

2016.10.20 20:10:38.734 2016.10.03 00:09  Testing pass stopped due to a critical error in the EA

2016.10.20 20:10:38.640 2016.10.03 00:08  PrizeMACD_s4_s2_p72 EURUSD,M1: array out of range in 'PrizeMACD_s4_s2_p72.mq4' (147,17)

2016.10.20 20:10:38.625 PrizeMACD_s4_s2_p72 inputs: base=500; Multiplikator=10; InpSignalSMA=9; 

 Которая указывает на i  в  а1_буффере

Вроде на пальцах для себя все расписал, где ошибаюсь? 

limit получается отрицательный:

 

 
Sepulca:

limit получается отрицательный:

 

Спасибо, буду смотреть. 

 С чем это может быть связанно? С разрывами в истории? У меня на всех графиках больше 1000 баров.

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