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

 
valeryk:

Каждый подобный случай нужно рассматривать отдельно. Пока нет предмета разговора пощупать, конкретно никто не сможет ответить.

Вот пощупай )

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

Файлы:
 
supernyb:

Вот пощупай )

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





Стучи в личку на 5 форуме.
 
supernyb:

Вот пощупай )

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

В своё время, я смотрел этот индикатор. Моё мнение - это шутка разработчика: много пустых (не используемых переменных, даже, если переменной назначается какое-то значение, то на конечный результат она не влияет) переменных, бесполезных программных блоков. :)))
 
TarasBY:
В своё время, я смотрел этот индикатор. Моё мнение - это шутка разработчика: много пустых (не используемых переменных, даже, если переменной назначается какое-то значение, то на конечный результат оно не влияет) переменных, бесполезных программных блоков. :)))
Возможно это был взломанный код, который не повторяет оригинала.
 
supernyb:
Возможно это был взломанный код, который не повторяет оригинала.

Я сам его тю-тю... А чем взломанный код не повторяет оригинальный??? :)

Взломанный код не компилировался (на сколько я помню) - это было не по причине отказа компилятора (тогда ещё разработчики не ввели такой запрет). Чуть-чуть правки и код стал компилируемым (идентичность работы кодов проверялась параллельной установкой обоих версий).

P.S. Плохих танцоров кругом `пруд пруди`... :)))

P.P.S А, впрочем - имхо.

 
TarasBY:

А чем взломанный код не повторяет оригинальный??? :)

Взломанный код не компилировался (на сколько я помню) - это было не по причине отказа компилятора (тогда ещё разработчики не ввели такой запрет). Чуть-чуть правки и код стал компилируемым (идентичность работы кодов проверялась параллельной установкой обоих версий).

P.S. Плохих танцоров кругом `пруд пруди`... :)))


Всё риторика. Значение отличаются и это факт. Ну не смогли повторить оригинал в точности, либо я не нашёл версии которая повторяла бы оригинал на 100%. Есть только вот такая
 
supernyb:

Всё риторика. Значение отличаются и это факт. Ну не смогли повторить оригинал в точности, либо я не нашёл версии которая повторяла бы оригинал на 100%. Есть только вот такая
Согласен - найти, где начало, где - конец, - не просто (и надо ли?). А Ваша версия подтверждает мной сказанное: индикатор обращается к какой-то dll-библиотеке, но использует всего 2-е из перечисленных импортируемых функций из неё, причём, только удаление чего-то там в deinit(). Поэтому, тот, кто правил код, удалил обращение к этой библиотеке.
[Удален]  

Доброго времени суток! Подскажите пожалуйста как решить такой момент:

Использую в сове:

double  iMAOnArray(
   double       array[],          // массив
   int          total,            // количество элементов
   int          ma_period,        // период
   int          ma_shift,         // сдвиг средней
   int          ma_method,        // метод усреднения
   int          shift             // сдвиг
   );

Сова работает на каждом тике, иначе основные условия не будут выполнятся. Использую всего 20 баров для iMAOnArray, но на тестере сова очень долго соображает. Задаю и вызываю это в блоке старт.

Как оптимизировать использование этой приблуды, так чтобы и основное условие проверялось на каждом тике и тестер не тормозил. А то у  меня тест совы на 4хчасовом графике за год проходит в течение 2х часов. Я боюсь представить сколько придется оптимизацию проводить)))

 
berezhnuy:

Доброго времени суток! Подскажите пожалуйста как решить такой момент:

Использую в сове:

Сова работает на каждом тике, иначе основные условия не будут выполнятся. Использую всего 20 баров для iMAOnArray, но на тестере сова очень долго соображает. Задаю и вызываю это в блоке старт.

Как оптимизировать использование этой приблуды, так чтобы и основное условие проверялось на каждом тике и тестер не тормозил. А то у  меня тест совы на 4хчасовом графике за год проходит в течение 2х часов. Я боюсь представить сколько придется оптимизацию проводить)))


Без кода Вам никто помочь не сможет
[Удален]  

Вот в принципе весь код:

//------- Внешние параметры советника -----------------------------------------+
extern string _P_Expert = "---------- Параметры советника";
extern int      Magic      = 777;                 // Магический номер позиций
extern double   SL=10;                            // Размер лося
extern double   TP=10000;                           // Размер профита 
extern string     ____= "Параметры блока MoneyManagement";
extern bool      MoneyManagement=false;
extern double    Lots          = 0.01;  
extern int       MarginPercent=3;
//------- Параметры трала -----------------------------------------------------+
extern string     ______= "Параметры блока TrallingStop";
extern bool      TralSimple=true;
//------- Характкристики баров ------------------------------------------------+

//------- Подключение внешних модулей -----------------------------------------+
#include <stdlib.mqh>
#include <stderror.mqh>

int start()
{

   total=OrdersTotal();
   Comment( LotsCounting() );
//+=================================================================================+
  // Проверка средств
   if(AccountFreeMargin()<(1000*Lots)){
      Print("We have no money. Free Margin = ", AccountFreeMargin());   
      return(0);  
   }
//===========================  Открытие позиций  ===================================+ 
//==========================================================================================+
//=============================   Center_array      ========================================+
      double Center_array[50];
      int    h,limit=ArraySize(Center_array);
      ArraySetAsSeries(Center_array,true);
      for(h=0; h<limit; h++)
         Center_array[h]=iRSI(NULL,0,14,0,h);
      double MA_1 =iMAOnArray(Center_array,0,14,0,MODE_SMA,1);
      double rs_1 = iRSI(NULL,0,14,0,1);
      
      if (Last_Max1!=Max1){
      if (Close[1]>Close[2] && rs_1<MA_1){
               lots=LotsCounting();
               OrderSend(Symbol(),OP_BUYSTOP,lots,(Max1),0,SL_buy,TP_buy, "Покупаем ",Magic,Expiration,Blue);
               Last_Max1=Max1;
               PlaySound("ok.wav");
               {
               Print ("При открытии произошла ошибка ", GetLastError());
               return;
               }
            }
         }
       }

//==========================================================================================+
      if (delet) DeleteOppositeOrders("",-1,Magic);
//==========================================================================================+
//=======================================TrallingStop=======================================+
      for ( int v = OrdersTotal() - 1; v >= 0; v -- ){       
         if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES)){           
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){ 
               //+=================================================================================+
               ///+================================Обычный трал ====================================+
               if (TralSimple){
                  //+=================================================================================+
                  if(OrderType() == OP_BUY){
                     if((Bid-OrderOpenPrice()) > (Point*TrailingStop)){
                        if(OrderStopLoss() < Bid-Point*TrailingStop || (OrderStopLoss()==0)){
                           OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);  
                        }
                     }
                  }
               }                                   
            }  // Symbol()  
         } // select
      } //total 
        //============================== Конец блока закрытия ==============================+
 return(0);
}
//==========================================================================================+

Если убрать приблуду Center_errey, то тест проходит меньше чем за минуту. Если всеже включить в код это условие то тест проходит часа 2