Algoritmalar, karar yöntemleri, performanslarının karşılaştırılması - sayfa 5

 
Vasiliy Sokolov :

Peter, sarhoş musun? ... _25_ ... alt dizesi dört karaktere sahiptir: _ , 2 , 5 , _ .

Evet haklısın. Bu anı kaçırdım.

Ama düzeltebilirsin.

 
Vasiliy Sokolov :

... _25_ ... alt dizesi dört karaktere sahiptir: _ , 2 , 5 , _ .

Her şey bir anda dikkate alınamaz. Belirli hatayı belirttiğiniz için teşekkür ederiz.
 
Реter Konow :

Evet haklısın. Bu anı kaçırdım.

Ama düzeltebilirsin.

Hasta tedavi edilemez görünüyor.

 

Kodu düzeltip yayınlayacağım.

Lütfen bekle.

not Duygular bastırılabilir. Kötü bir şey olmuyor.

 
Реter Konow :

Kodu düzeltip yayınlayacağım.

Lütfen bekle.

not Duygular bastırılabilir. Kötü bir şey olmuyor.


olur. Ölü olan ölmek istemez.

 

Hazır:

 //+------------------------------------------------------------------+
//|                                                        Magic.mq5 |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Peter Konow"
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
string All_magics;
int     order_number;
int     Random_orders_of_strategy;
//+------------------------------------------------------------------+
void Save_magic( int magic)
{
 order_number++;
 //---------------------------------
 //Записываем каждый магик вместе с порядковым номером ордера.
 //---------------------------------
 All_magics +=   "_" + ( string )order_number + "_" + ( string )magic;
 //---------------------------------
}
//+------------------------------------------------------------------+
void Trading()
{
 Random_orders_of_strategy = MathRand ();
 
 //----------------------------------------
 //Имитируем открытие неопределенного количества ордеров стратегии.
 //----------------------------------------
 for ( int a1 =   0 ; a1 < Random_orders_of_strategy; a1++)
   {
     int this_magic = MathRand ();
     //----------------------------
    Save_magic(this_magic);
     //----------------------------
   }
 //----------------------------------------
}
//+------------------------------------------------------------------+
int Get_magic( int deal_number)
{
 int stringlen = StringLen (( string )deal_number); //добавлено
 //--------------------------------------------
 //Получаем начало строки магика.
 //--------------------------------------------
 int Magic_position_start =   StringFind (All_magics, "_" + ( string )deal_number + "_" , 0 ) + stringlen + 2;
 //--------------------------------------------
 //Получаем конец строки магика.
 //--------------------------------------------
 int Magic_position_end   =   StringFind (All_magics, "_" + ( string )(deal_number + 1 ) + "_" , 0 );
 //--------------------------------------------
 //Получаем количество цифр из которых состоит магик.
 //--------------------------------------------
 int Magic_lenght         =  Magic_position_end - Magic_position_start;
 //--------------------------------------------
 //Извлекаем магик из общей строки.
 //--------------------------------------------
 string Magic             =   StringSubstr (All_magics,Magic_position_start,Magic_lenght);
 //--------------------------------------------
 //Возвращаем цифровое значение магика.
 //--------------------------------------------
 return (( int )Magic);
}
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   Trading();
   //--------------------------
   ulong t1 = GetMicrosecondCount ();
   Get_magic( 1000 );
   ulong t2 = GetMicrosecondCount ();
   //--------------------------
   Print ( "Время исполнения функции Get_magic() при количестве ордеров " ,Random_orders_of_strategy, " равно " ,t2 - t1);
   //--------------------------
   Print ( "Random_orders_of_strategy  " ,Random_orders_of_strategy);
   Print ( "magic 1:  " ,Get_magic( 1 ), "  magic 2: " ,Get_magic( 2 ), "  magic 3: " ,Get_magic( 3 ));
   
  }
//+------------------------------------------------------------------+
 

Peter, verdiğin örnek başlangıçta hayal ürünü ve çalışmıyor. Gerçek koşullarda, işlem numarası her zaman rastgeledir. yazamıyorum:

 //--------------------------------------------
 //Получаем конец строки магика.
 //--------------------------------------------
 int Magic_position_end   =   StringFind (All_magics, "_" + ( string )(deal_number + 1 ) + "_" , 0 ); //тут по идее снова начинается поиск и он уже идет с самого начала снова не знаю зачем искать еще раз, надо хотябы поиск начинать с тагоже места где нашли начало маджика чтоли... и искать просто подчеркивание... 

Bir sonraki anlaşma numarasını bilmiyoruz.

 
Vasiliy Sokolov :

Gerçek koşullarda, işlem numarası her zaman rastgeledir. yazamıyorum:

Bir sonraki anlaşma numarasını bilmiyoruz.

Tam olarak değil.

Diyelim ki ticaret yapıyoruz ve şimdiden 300 işlem gerçekleştirdik.

300. anlaşmadan önce herhangi bir sihir elde etmemiz gerekirse, her zaman bir sonraki anlaşmanın numarasına sahibiz.

300'üncü anlaşmanın numarasını almamız gerekiyorsa, o zaman ... son anlaşmanın sihirbazının numarasını her zaman bir değişkende tutabiliriz.

 

Kod, elbette, ticarette hemen uygulanabilmesi için ideal değildir. Sadece çözüme yaklaşımı gösterir. İyileştirilebilir.

 
Реter Konow :

Tam olarak değil.

Diyelim ki ticaret yapıyoruz ve şimdiden 300 işlem gerçekleştirdik.

300. anlaşmadan önce herhangi bir sihir elde etmemiz gerekirse, her zaman bir sonraki anlaşmanın numarasına sahibiz.

300'üncü anlaşmanın numarasını almamız gerekiyorsa, o zaman ... son anlaşmanın sihirbazının numarasını her zaman bir değişkende tutabiliriz.


Normal bir dizi dizi neden uygun değil? neden bu dizeler.... Tekrar ediyorum, bir dize yerine dinamik bir grafik dizisinin depolandığı bir sınıf kullandığınızı hayal edin - ve sizce bu hızlı mı?

Neden: