MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1782

 
Artyom Trishkin # :

Beyler, kim ne derse desin, ancak son kontrolde döngü indeksinin değerini hatırlamıyorsanız, o zaman döngünüz tüm geçmiş boyunca çalışır. Ve ne kadar fazla olursa, döngü o kadar uzun olur.

emin değil.

Parti büyüklüğünü kontrol etmek için benzer bir tasarıma sahip 2 Uzman Danışmanım daha var ve her ikisi de tüm geçmişi 15-20 dakika içinde test cihazında dikkate değer bir şekilde geçiyor

 
законопослушный гражданин # :

emin değil.

Parti büyüklüğünü kontrol etmek için benzer bir tasarıma sahip 2 Uzman Danışmanım daha var ve her ikisi de tüm geçmişi 15-20 dakika içinde test cihazında dikkate değer bir şekilde geçiyor

Bildiğin gibi. tartışmayacağım.

 
MakarFX # :

sipariş toplamayı değiştir

aynı şekilde

 
законопослушный гражданин # :

evet herhangi bir çift

AUD/USD M15 kullanıyorum.

Göstergenizle aynı sorunları yaşadım (ekli)

orada, eleme yöntemiyle bu şeyin süreci yavaşlattığını öğrendim:

Sonuçları (değişkenlerde) önbelleğe almak gerekir. Ve sipariş listesi değiştiyse önbelleği güncelleyin. Ve hiçbir şey değişmediyse, değerleri önbellekten döndürmeniz yeterlidir.

 
Artyom Trishkin # :

Beyler, kim ne derse desin, ancak son kontrolde döngü indeksinin değerini hatırlamıyorsanız, o zaman döngünüz tüm geçmiş boyunca çalışır. Ve ne kadar fazla olursa, döngü o kadar uzun olur.

Her zaman elektriği keseceklerini düşünmeniz gerekiyor vs.

Geçmişten gelen Uzman Danışman, herhangi bir zamanda yapılandırmalı ve çalışmalıdır.

 
Volodymyr Zubov # :

Her zaman elektriği keseceklerini düşünmeniz gerekiyor vs.

Geçmişten gelen Uzman Danışman, herhangi bir zamanda yapılandırmalı ve çalışmalıdır.

Işığın kesilmemesi için VPS bulunmaktadır.

 
Evet, bir sipariş bulmak için yerel bir değişken gereksizdir
 

genel olarak, neden sorunlar olduğunu anlıyorum.

şimdi bunu yapmak istiyorum:

boşluğu temizlemek OnTick

 void OnTick ()
{
// Получим значение индикатора
   dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
   if (CountOrders()== 0 )
   {
  
// Если появился сигнал на покупку, то откроем ордер на покупку
       if (bSignalBuy() == true )
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
       if (bSignalSell() == true )
         vOrderOpenSell();
   }
}

sinyali şu şekilde yapın:

 bool bSignalBuy()
  {
   if (openPrice > Open[ 1 ] && openPrice < Close[ 1 ]) //Open[1] и Close[1]- цены открытия и закрытия каждого бара текущего графика.
   
   return ( true );
   
   return ( false );
  }
//+-----------------------------------------------------------------------------------------------+
//|                                                             Функция поиска сигнала на продажу |
//+-----------------------------------------------------------------------------------------------+
bool bSignalSell()
  {
   if (openPrice< Open[ 1 ] && openPrice > Close[ 1 ])

   return ( true );

   return ( false );
  }

openPrice'ı bu şekilde ifade etmeye çalışıyorum ama hata veriyor:

tür dönüştürme nedeniyle olası veri kaybı

Void işlevini doğru şekilde kullanıyor muyum?

   void openPrice()
  {
   int OP= 0 ;
  
   if (GetLotSize()>LotControl) OP = dMA + Deviation * _Point ;
   else OP = dMA;
  }
 

Düğmeye tıkladıktan sonra fare imlecini çizerek ve silerek bir çizgi takip edecek şekilde yaptım.

 void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam)
  {    
     if ( ObjectGetInteger ( 0 , "button_bs" , OBJPROP_STATE )){
       int       x     =( int )lparam;
       int       y     =( int )dparam;
       datetime dt    = 0 ;
       double    price = 0 ;
       int       window= 0 ;
     
       if (id == CHARTEVENT_MOUSE_MOVE ){
         if ( ChartXYToTimePrice ( 0 ,x,y,window,dt,price)){
             ObjectDelete ( 0 , "H Line" );
             ObjectCreate ( 0 , "H Line" , OBJ_HLINE ,window,dt,price);
             ChartRedraw ( 0 );
        }
      }
    }
     else {
       ObjectDelete ( 0 , "H Line" );
    }
  }

Belki başka bir yolu vardır? Ve sonra CPU soğutucusu ses çıkarmaya başlar :)

 
Volodymyr Zubov # :

Her zaman elektriği keseceklerini düşünmeniz gerekiyor vs.

Geçmişten gelen Uzman Danışman, herhangi bir zamanda yapılandırmalı ve çalışmalıdır.

Meli. Ve ne, döngü indeksini hatırlamak, yeniden başlatmanın ardından geçmişten geçmesini nasıl engeller?