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

 
AndEv:

Прошу помощи в решении небольшой геометрической задачки. Есть линия с координатами p1 и p2 (на рисунке показана красным цветом). Требуется найти координату p3, которая находится по фибо 38,2% от координаты p2. Сделал так:

if(p2>p1) p3=p2-(p2-p1)*0.382; справедливо для верхней части рисунка

if(p1>p2) p3= p2+(p1-p2)*0.382; справедливо для нижней части рисунка

Можно ли это как-то записать одним уравнением без "if" ?

Делал как-то функцию, рассчитывающую все уровни фибо по двум точкам - ноль фибы и 23.6 фибы. Задаёшь эти два уровня, а остальные функция мне записывала в глобальные переменные.

Примерно так:


Это немного не то, что вам нужно, но вдруг...

Функция, переделанная для расчёта уровня фибы 38.2 по двум заданным уровням - ноль фибы (p1) и 23.6 фибы (p2):

//+----------------------------------------------------------------------------+
double CalcFiboLevel(double p1, double p2)   // Рассчитывает уровни Фибы по нулевому и 23.6 значениям цен
{
   double A2,A3,A4,B2,B3,p3;
   
   A2 = 0;                                      // Уровни фибы  
   A3 = 23.6;
   A4 = 38.2;
   B2 = p1;                                     // Цена нулевого уровня фибы (p1)
   B3 = p2;                                     // Цена уровня 23.6 фибы (p2)
   p3 = ((B3-B2)*(A4-A2)+(A3-A2)*B2)/(A3-A2);
   
   return(p3);                                  // ((B3-B2)*(A4-A2)+(A3-A2)*B2)/(A3-A2)
}
//+----------------------------------------------------------------------------+

Может что и под себя сделаете на основе...

 

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

Индикатор IN10TION NewsReader.

Если сигнал Market.TdOpen && Market.Price.DOWN, то продажа

Если сигнал Market.TdOpen && Market.Price.UP, то покупка

Какие возможно действия предпринять? пробывал через iCustom не выходит!


extern bool Market.TdOpen = TRUE;
extern color Market.TdOpen.Color = Red;
extern bool Market.TdFibo = TRUE;
extern color Market.TdFibo.Color = C'0x00,0x32,0x00';
extern color Market.Price.UP = Lime;
extern color Market.Price.DOWN = Red;
extern bool Market.Price.Guide = TRUE;

_yIN10TIONfNewsReaderov09.99kblite.ex4 (115.59 KB) удалить
 
Top2n:

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

Индикатор IN10TION NewsReader.

Если сигнал Market.TdOpen && Market.Price.DOWN, то продажа

Если сигнал Market.TdOpen && Market.Price.UP, то покупка

Какие возможно действия предпринять? пробывал через iCustom не выходит!


_yIN10TIONfNewsReaderov09.99kblite.ex4 (115.59 KB) удалить

Сколько ж можно то? Ну попытался я глянуть индюк в прицепе. Мой терминал падает от него.

Смотрите в окне данных какие значения принимают буферы индюшка этого, там и определяйтесь. Либо он рисует объекты - ищите эти объекты и берите данные с них.

 
artmedia70:

Сколько ж можно то? Ну попытался я глянуть индюк в прицепе. Мой терминал падает от него.

Смотрите в окне данных какие значения принимают буферы индюшка этого, там и определяйтесь. Либо он рисует объекты - ищите эти объекты и берите данные с них.

А данные с индюка брать можно только через iCustom?
 
Top2n:

А данные с индюка брать можно только через iCustom?
Если это пользовательский индикатор и свои данные записывает в свои буферы, то да, по iCustom().
Если же он выводит объекты на график и не использует буферы, то данные можно взять с этих объектов.
 
Top2n:

А данные с индюка брать можно только через iCustom?

Да, но не каждый айкастом поддается, + еще возможно для экспериментов, если есть код индюка - бьете его в тело Вашего сова и вперед.
 
+ передаёте условия в глобальные переменные. Советник опрашивает GV. Неубиенный плюс GV - составное имя переменной, по которому можно делать циклы и препарировать.
 
Спасибо!)
 

Ребята подскажите - так, можно по-быстрому, на пальцах - я, возможно...:-), пойму.

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

 

Очень часто, работая на одном ТФ, используют конструкцию:

int start()
{
   datetime time = Time[0];
   if(prevtime == time)return(0);
   prevtime = time;

 //.........
 // все операции советника
 //.........

 return(0);
}

Вопрос:

Не является ли такой код на входе препятствием для правильной оптимизации параметров, в том числе, СЛ и ТП?

Мне представляется, что советник, работающий, скажем, на Н1 и оптимизируемый/тестируемый в режиме "По ценам открытия" на Н1, не правильно реагирует на выставленные СЛ и ТП,

Поскольку советник видит график только 1 раз в час, то он не в состоянии правильно исполнить Стоп-приказы, т.е. в моменты их пересечения.

............................

В качестве примера https://www.mql5.com/ru/code/9386, где оптимизируется всего один параметр (СЛ).

Там же, в PS, автор пишет:

В советнике используется модель по ценам открытия баров. Гонять в режиме оптимизации по другим моделям нет никакого смысла - пустая трата времени и ресурсов компьютера. Можно только проверить на вшивость результаты оптимизации по модели эмуляции всех тиков.