[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 961

 
artmedia70:

Всё индивидуально и всё ИМХО.

"...Мне нужен поиск варианта советника с наилучшими результатами..." Эти результаты - практически ничего не значат для настоящего и будущего - они ведь подогнаны под ИСТОРИЮ - а значит под ПРОШЛОЕ.

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

По той самой причине все мои советники имеют самонастраиваемые параметры для текущего положения дел на рынке и реагируют не на историю с жёстко вписанными параметрами, а на происходящие события в настоящий момент, динамически изменяя некоторые свои параметры, подходящими под настоящее... И я их НИКОГДА не оптимизирую. Мне достаточно прогнать месяц-другой истории, чтобы найти ошибки и удостовериться в правильности работы логики советника и его прибыльности.

Так что, не принимайте мой солдатский юмор близко к сердцу. Извиняюсь, надеюсь - без обид? :))

Артём, всё хорошо ) Были бы вы девушкой - подарил бы виртуальные цветы )) Спасибо. Насчёт "зелёного цвета" - результаты привязываются не просто к истории, а к движению МА (да, по истории, но иначе не увидишь её возможное поведение и варианты). Если выявляется хоть маленькая закономерность - всё-таки движения вверх-вниз будут всегда - это и будет оптимизацией. Возможно, все мои начинания неверны, но других вариантов, как прогнать советника, чтобы выявить хоть какую-то его пригодность, у меня нет. А оптимизировать я хочу один раз ) И либо отказаться от этого советника, либо взять его в работу. И если за 4 года идёт постоянная прибыль - это слабый критерий ? Ведь тогда поймана какая-то закономерность. Например, если течение реки меняется взад-вперёд - мелкие лёгкие камни будут перекатываться туда-сюда на малое расстояние в любом случае - вот и есть зависимость.
 
volshebnik:
Николай, спасибо. Индикаторы использую стандартные - МА. Код больше тысячи строк, кому охота с ним возиться будет, я думаю. За один тик расчёт идёт один раз (проверял "алертом").
также возможно существуют расчеты, без которых можно обойтись, например обработки ошибок и всевозможных нештатных ситуаций на стадии разработки не нужны, их можно добавить когда уже будет законченный алгоритм торговли и можно ставить эксперта на реал. Сколько раз в эксперте происходит перебор всех ордеров?? Много ли циклов и функций iHigest/ilowest ? Тысяча строк, да, мало кто будет разбираться, разве что беглым взглядом осмотреть, вдруг что в глаза бросится..
 
Techno:
также возможно существуют расчеты, без которых можно обойтись, например обработки ошибок и всевозможных нештатных ситуаций на стадии разработки не нужны, их можно добавить когда уже будет законченный алгоритм торговли и можно ставить эксперта на реал. Сколько раз в эксперте происходит перебор всех ордеров?? Много ли циклов и функций iHigest/ilowest ? Тысяча строк, да, мало кто будет разбираться, разве что беглым взглядом осмотреть, вдруг что в глаза бросится..
Перебор всех ордеров происходит на каждом тике (потому что ордера модифицируются по достижению определённого уровня, а это самое достижение только тиком и определишь). Нештатных ситуаций не ставил пока, а обработка ошибок есть, да. А циклы считаются только на открытии каждого часа (существенная задержка заметна, когда проверяется каждый тик, как описано).
 
volshebnik:
Перебор всех ордеров происходит на каждом тике (потому что ордера модифицируются по достижению определённого уровня, а это самое достижение только тиком и определишь). Нештатных ситуаций не ставил пока, а обработка ошибок есть, да. А циклы считаются только на открытии каждого часа (существенная задержка заметна, когда проверяется каждый тик, как описано).
кажется вопиющего ничего нет, что-то большее можно уже с кодом сказать..
 
Techno:
кажется вопиющего ничего нет, что-то большее можно уже с кодом сказать..
Спасибо, Николай, вот я и думал - увеличится ли существенно скорость тестера, если поменять процессор ?
 
volshebnik:
Спасибо, Николай, вот я и думал - увеличится ли существенно скорость тестера, если поменять процессор ?
проблема не в процессоре, а в коде советника, где-то есть тормозящие места, но диагностировать их и исправить на словах нельзя, нужен код
 
Привет всем! Такой вопрос: как модифицировать отложенный ордер и уже открытую позицию, предварительно выбрав их по magic number. Если можно на примере. Спасибо.
 
Подскажите может ли советник, при включении, брать ценовой уровень входа с рынка или выставления отложенных ордеров с ячейки Экселя (соответствующие циферки туда будут внесены заблаговременно)
 
Помогите "оживить" индикатор. По историческим данным работает, по новым нет. Укажите хотя бы причину.
#property copyright "Stellar Space"
#property link      "http"

#property indicator_chart_window                                               // Индикатор рисуется в основном окне
#property indicator_buffers 2                                                  // Количество индикаторных буферов
#property indicator_color1 DarkGreen                                           // Цвет первой линии
#property indicator_width1 1                                                   // Ширина первой линии
#property indicator_color2 Crimson                                             // Цвет второй линии
#property indicator_width2 1                                                   // Ширина второй линии

extern int Code_1=159;                                                         // Код значка
extern int Code_2=159;                                                         // Код значка

extern int History=1000;                                                       // Количество баров истории

double Buf_0[],Buf_1[];                                                        // Объявление массива под буфер индикатора

//+------------------------------------------------------------------+
int init()
 {
 
 SetIndexBuffer(0,Buf_0);                                                      // Назначение массива буферу
 SetIndexStyle(0, DRAW_ARROW);                                                 // Стиль линии
 SetIndexArrow(0, Code_1);                                                     // Стиль Arrow
 SetIndexLabel(0,"Максимум (1 уровень)");                                      // Установка имени линии индикатора 
 SetIndexBuffer(1,Buf_1);                                                      // Назначение массива буферу
 SetIndexStyle(1, DRAW_ARROW);                                                 // Стиль линии
 SetIndexArrow(1, Code_2);                                                     // Стиль Arrow
 SetIndexLabel(1,"Минимум (1 уровень)");                                       // Установка имени линии индикатора 
  
 return(0);
 }

//+------------------------------------------------------------------+
int start()
 {
 
 int i;                                                                        // Индекс бара
 int a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q;                                          // Объявление переменых
 int Counted_bars=IndicatorCounted();                                          // Количество просчитанных баров
 
 
//+------------------------------------------------------------------+         // START
 i=MathMin(History,Bars-Counted_bars-1);

  while(i>0)                                                                    // Цикл по непосчитанным барам
 {

 
//+------------------------------------------------------------------+         // A

 for(a=i; a>0; a--)    
 {//Aa
 if (High[a+1]<High[a]&&Low[a+1]<Low[a])
    {b=a;}    
 else {break;}
 }//Aa
//--
 for(a=i; a>0; a--)    
 {//Ab
 if (High[a+1]>High[a]&&Low[a+1]>Low[a])
    {c=a;}
 else {break;}
 }//Ab
//--

 for(a=i; a>0; a--)    
 {//Ac
 if (b>c){d=b;}    
 else {break;}
 }//Ac 
//--
 for(a=i; a>0; a--)    
 {//Ad
 if (c>b){e=c;}    
 else {break;}
 }//Ad
//--

 for(a=i; a>0; a--)    
 {//Ae
 if (e>d&&d>c)
  {
   f=iHighest(NULL,0,MODE_HIGH,e-c,c);
   Buf_0[f]=High[f]+2*Point;
  }    
 else {break;}
 }//Ae 
 for(a=i; a>0; a--)    
 {//Af
 if (d>e&&e>b)
  {
   g=iLowest(NULL,0,MODE_LOW,d-b,b);
   Buf_1[g]=Low[g]-2*Point;
  }    
 else {break;}
 }//Af 
 

//+------------------------------------------------------------------+
 i--;
 }

//+------------------------------------------------------------------+         // FINISH

 //!

 return(0);
 }

//+------------------------------------------------------------------+
int deinit()
 {
 return(0);
 }
  
//+------------------------------------------------------------------+
 

Где можно взять котировки М30(или ниже) старше 2004г. по ЛЮБЫМ акциям или индексам. НЕ по валютам? Спасибо

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