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

 
Fast235 :

bu benim için,

Programa göre, derleme sırasında tüm puanlar yerleştirilene kadar fazladan bir gecikme olacaktır.

gerekirse (örneğin, yeniden derlenmiş), OnDeinit'te expetname.deinitreason.ChartId() bir terminal değişkeni oluşturun ve ona geçici bir bayrak verin, neden kodunu buraya koyun. Ekteki verilerle aynı (neye ihtiyacınız olduğunu asla bilemezsiniz)

OnInit'te - değişkenin var olup olmadığına bakın, ardından değerine göre hareket edin.

Ve aynı yerde, her durumda, böyle bir değişkeni silin ..

---

ipucu - anormal tamamlamalar aynı şekilde yakalanır, ancak tam tersi :-) OnInit'te değişken kontrol edilir ve oluşturulur, OnDeinit'te silinir. Kritik bir hata meydana geldiyse ve EA/terminal çökerse, değişken kalacaktır.

 
Maxim Kuznetsov :

gerekirse (örneğin, yeniden derlenmiş), OnDeinit'te expetname.deinitreason.ChartId() bir terminal değişkeni oluşturun ve ona geçici bir bayrak verin, neden kodunu buraya koyun. Ekteki verilerle aynı (neye ihtiyacınız olduğunu asla bilemezsiniz)

OnInit'te - değişkenin var olup olmadığına bakın, ardından değerine göre hareket edin.

Ve aynı yerde, her durumda, böyle bir değişkeni silin ..

---

ipucu - anormal tamamlamalar aynı şekilde yakalanır, ancak tam tersi :-) OnInit'te değişken kontrol edilir ve oluşturulur, OnDeinit'te silinir. Kritik bir hata meydana geldiyse ve EA/terminal çökerse, değişken kalacaktır.

dosyalar ve global değişkenlerle, buna değmez, onu çitlemek için, belki geliştiriciler onu derlemeden kaldırabilir - 0, hatta Terminal'in başladığı durumu bile ekler, örneğin, çok karakterli bir geçmiş yüklemesi ekleyebilirim girdi yerine

 

Merhaba! Fikir, mumların yönüne bağlı olarak (yukarı veya aşağı) mum, hacim, farklı renkler yapmaktı. Ancak son mum, mumun yönünün zamanla değişmesi nedeniyle çok renklidir. Ve zamanla, her şeyin çok renkli olduğu ortaya çıkıyor. Soru, son mumun renginin nasıl değiştirileceği ve geri kalanına dokunulmamasıdır. Ya da belki başka bir fikir.



 //+------------------------------------------------------------------+
//|                                      VSA_Volume_Color            |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 3

//////////////
datetime PrevTime = 0 ;
double iVolume_UP[];
double iVolume_DWN[];
double iVolume_NULL[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   IndicatorDigits( 5 );
//--- indicator buffers mapping
   SetIndexBuffer ( 0 , iVolume_UP);
   SetIndexBuffer ( 1 , iVolume_DWN);
   SetIndexBuffer ( 2 , iVolume_NULL);
//---
   SetIndexStyle( 0 , DRAW_HISTOGRAM ,EMPTY, 2 , clrGreen );
   SetIndexStyle( 1 , DRAW_HISTOGRAM ,EMPTY, 2 , clrWhite );
   SetIndexStyle( 2 , DRAW_HISTOGRAM ,EMPTY, 2 , clrRed );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   int i = 0 , counted_bars = IndicatorCounted();
   i = Bars - counted_bars - 1 ;
   if (counted_bars < 0 )
       return (- 1 );
//---
   if (counted_bars > 0 )
      counted_bars--;
//--- return value of prev_calculated for next call
///////////
   while (i >= 0 )
     {
       if (Close[i] > Open[i])
         iVolume_UP[i] =   iVolume ( NULL , 0 , i) * 1.0 ;
       if (Close[i] < Open[i])
         iVolume_DWN[i] =   iVolume ( NULL , 0 , i) * 1.0 ;
       if (Close[i] == Open[i])
         iVolume_NULL[i] =   iVolume ( NULL , 0 , i) * 1.0 ;
      i--;
     }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   return (rates_total);
  }
//+------------------------------------------------------------------+
Teşekkür ederim!
 

Gereksiz arabellekleri sıfırlayın

iVolume_UP[i]= EMPTY_VALUE ;
 

ayrı bir konuya bağlantı - SERIES_LASTBAR_DATE üzerinden yeni çubuk

baskı, - özel bir olay aracılığıyla göstergeden bir sinyal geldiğinden, SERIES_LASTBAR_DATE kullanılarak yeni bir çubuğun kontrol edilmesinden dolayı sinyalin atlandığını gösterdi ve

baskıda, son çubuğun verileri, yeni değil..., 7 sembol için toplamda yaklaşık 50 işlem için, görebileceğiniz bir atlama, herhangi bir fikir var mı? ping 150.

Ryzen 3700x işlemci 16 iş parçacığı

----

benzer bir çoklu sembol şeması kullanan, bunu gerçek zamanlı olarak 2-3 terminalde ölçtü, örneğin M1'de demo, günde 40-50 işlemle böyle bir geçiş için birkaç saatten yarım güne kadar bekleyin

CPU, neredeyse uykuda olan birkaç robot yüklü.

В моих ТС пропуск сигнала
В моих ТС пропуск сигнала
  • 2021.03.16
  • www.mql5.com
Не люблю создавать новые темы, Небольшие исходные данные: Советник работает в OnChatEvent, 7 символов, циклов нет, прямая передача номера за минусо...
 

30-50'de bir işlem, tamam, hem artı hem de eksi olarak kapatabilir, ancak

Toplam karı hesaplamak için bir sistemim var, oldukça zor ve bu ticaret bir sonraki sinyalde değil, şimdi oraya katılmalı

Daha derine ve 5 yıl önceye inebilirsiniz.

olay modeli bir eğri ise, geliştiricilerden, casusun farklı seçenekleri test ettikleri ilk gönderilere bakılırsa, bunu reddetmeleri için onları bilgilendirmelerini istiyorum, ayrıca bir yayılma ve ihmaller var mıydı?
 
Aleksei Stepanenko :

Gereksiz arabellekleri sıfırlayın

İyi. Her şey çalışıyor). Teşekkür ederim!
 
Beyler, mql5 gösterge arabelleklerinde indeksleme ile kafamın karıştığını söyleyin.
ArraySetAsSeries (Buffer, true ) işlevi uygulanırsa
o zaman sadece indeksleme dağıtılır mı? Yoksa arabellek değerleri de açılmamış mı?
 
Roman :
Beyler, mql5 gösterge arabelleklerinde indeksleme ile kafamın karıştığını söyleyin.
ArraySetAsSeries (Buffer, true ) işlevi uygulanırsa
o zaman sadece indeksleme dağıtılır mı? Yoksa arabellek değerleri de açılmamış mı?
Doğruysa, gösterge arabelleğinin sıfır çubuğu, grafikte en sağdaki çubuktur. Yanlışsa - aşırı sol.
Başka hiçbir şey.
 
Artyom Trishkin :
Doğruysa, gösterge arabelleğinin sıfır çubuğu, grafikte en sağdaki çubuktur. Yanlışsa - aşırı sol.
Başka hiçbir şey.

Teşekkür ederim.
Artyom lütfen bana bir dakika daha anlat.
İşlev

 ChartSetInteger ( ChartID (), CHART_SHOW , false )
kurulu göstergenin ana grafik penceresini ve alt pencerelerini gizler.
Yalnızca ana grafik penceresini nasıl gizleyebilirim? Aynı zamanda, gösterge alt penceresinin görünür kalması için.