[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 141

 
artmedia70 :

IMHO - emirlerinizi aramak ve piyasada kapanıp kapanmadığını ve nasıl kapandığını, alarak, durdurarak veya manuel olarak görmek daha iyidir. Buradan sonra farklı yönlerde dans edin.

O zaman kesinlikle her şey mükemmel olacak. Ve global değişkenler kaybolabilir...


Lütfen değişkenleri kaybetmenin ne anlama geldiğini açıklayın? ve danışmanın da bunu kontrol ettiği anlamında bulmak için mi?
 
Begemot7 :
Lütfen değişkenleri kaybetmenin ne anlama geldiğini açıklayın? ve danışmanın da bunu kontrol ettiği anlamında bulmak için mi?

Gerçek ve demo için tüm danışmanlarda değişkenlerde sipariş ve pozisyonlarla ilgili önemli verileri saklamıyorum. EA mantığı için gerekli verileri yazabileceğim maksimum miktar sipariş yorumundadır. Pozisyon olup olmadığını, kaç tane olduğunu, emir varsa, kapanan pozisyonlar, nasıl kapandıklarını bulmam gerektiğinde, piyasa pozisyonları / emirleri veya geçmiş veriler arasında dolaşırım, ihtiyacım olan emri bulur ve ihtiyacım olan bilgiyi çıkarırım. Bu nedenle, bilgisayar beklenmedik bir şekilde kapatıldığında kaybolabileceğinden, tüm önemli bilgiler benim için değişkenlerde saklanmıyor. Daha sonra her zaman çıkarabilirsiniz. Her nasılsa onu terminalin global değişkenlerinde saklamaya çalıştım - bilgisayar kapatıldığında / kilitlendiğinde bilgilerin her zaman oraya kaydedilmediği ortaya çıktı. Ve oradaki taze bilgilerin kaydını sürekli izlemek benim için bir şekilde kasvetli ... İhtiyacım olan şeyi, ihtiyacım olduğu anda bulmak benim için daha kolay.
 
PapaYozh :

Aşağıdaki işlevleri kullanarak göstergenin atıldığı noktanın koordinatlarını alabilirsiniz:

WindowXOnDropped()

PencereYonDropped()

Fiyat ve zaman:

WindowPriceOnDropped()

WindowTimeOnDropped()


gömmeye çalışacağım. Bir örnek şöyle olurdu...
 

Garip bir durumla karşı karşıya kaldı. Lütfen bana söyle...

Kendi kendine yazılan üç danışman vardır. Strateji aynıdır, araca bağlı olarak sadece biraz farklı uygulamalar. Çiftler: EURUSD, EURGBP ve USDJPY. İlk ikisi ile her şey yolunda, sonuncusu ticaret yapmıyor. Komisyoncu - FX-Trend. Hesap mini, minimum 0.01 lot ile (aslında, şu ana kadar maliyeti bu kadar - testler için).

Aynı zamanda: bir demo hesabında her şey yolunda. Test cihazında aynı gerçek hesapta test cihazında başlatıldığında, işlemler açılır. Ama gerçek hayatta, hayır. Bir siparişi (ve diğerlerini) açmak için grafik işaretler başarıyla yerleştirilir. Günlüklerde - kesinlikle hiçbir şey.

Bütün bunlar bir VPS üzerinde dönüyor.


Sanki tüm bilgiler bu kadar. Hangi yöne kazılacağına dair herhangi bir ipucu için minnettar olurum.

 
Sepulca :

Ve böylesi daha iyi (danışmanın yeniden başlatılması durumunda):



Sadece bir sipariş varsa ve bir tane olacaksa, onsuz yapabilirsiniz.


if( SiparişToplam() <1)

{

}

......

 
artmedia70 :
Gerçek ve demo için tüm danışmanlarda değişkenlerde sipariş ve pozisyonlarla ilgili önemli verileri saklamıyorum. EA mantığı için gerekli verileri yazabileceğim maksimum miktar sipariş yorumundadır. Pozisyon olup olmadığını, kaç tane olduğunu, emir varsa, kapanan pozisyonlar, nasıl kapandıklarını bulmam gerektiğinde, piyasa pozisyonları / emirleri veya geçmiş veriler arasında dolaşırım, ihtiyacım olan emri bulur ve ihtiyacım olan bilgiyi çıkarırım. Bu nedenle, bilgisayar beklenmedik bir şekilde kapatıldığında kaybolabileceğinden, tüm önemli bilgiler benim için değişkenlerde saklanmıyor. Daha sonra her zaman çıkarabilirsiniz. Her nasılsa onu terminalin global değişkenlerinde saklamaya çalıştım - bilgisayar kapatıldığında / kilitlendiğinde bilgilerin her zaman oraya kaydedilmediği ortaya çıktı. Ve oradaki taze bilgilerin kaydını sürekli izlemek benim için bir şekilde kasvetli ... İhtiyacım olan şeyi, ihtiyacım olduğu anda bulmak benim için daha kolay.

Bu doğru ... ayrıca güvenli oynayın. Tabii ki, tüm siparişleri sıralamak daha doğru. Ama burada özel bir durum var. Ve GlobalVariables kaybolursa, bu DC'den ayrılmanız gerekir. GlobalVariables, bilgisayarınızda değil, onlara dokunmazsanız DC'nin bağırsaklarında üç aya kadar saklanır. Yoksa yanılıyor muyum?
 
Görünüşe göre kendim çözdüm :). Tam olarak diyorlar - asıl şey formüle etmektir. Genel olarak, piyasada işlem yaparken, dur ve al sıfıra ayarlanır. Sonra olması gerektiği gibi ayarladık. Belki birinin ihtiyacı olur...
 
Sepulca :
Bu doğru ... ayrıca güvenli oynayın. Tabii ki, tüm siparişleri sıralamak daha doğru. Ama burada özel bir durum var. Ve GlobalVariables kaybolursa, bu DC'den ayrılmanız gerekir.

Yani, DC bilerek mi yapıyor? MT4'ün bir komisyoncu tarafından kolayca kontrol edilebilen bir terminal olduğu ve bu nedenle birçok hilenin mümkün olduğu söylendi, kim duydu?
 
Begemot7 :

Yani, DC bilerek mi yapıyor? MT4'ün bir komisyoncu tarafından kolayca kontrol edilebilen bir terminal olduğu ve bu nedenle birçok hilenin mümkün olduğu söylendi, kim duydu?


Gerçekten anlamıyorum.. Küresel değişkenlerinizi yok etmenin anlamı nedir, tabii ki onları x ...... bir bulut olarak üretmediyseniz. Belgelerden alıntı:
"Müşteri terminalinin global değişkenleri, MQL4 programının global seviyesinde bildirilen değişkenlerle karıştırılmamalıdır. Global değişkenler, son erişim anından itibaren 4 hafta boyunca istemci terminalinde bulunur ve ardından otomatik olarak yok edilirler. global değişken sadece yeni bir değer ayarlamakla kalmaz, aynı zamanda global bir değişkenin değerini de okur. İstemci terminalinin global değişkenleri , istemci terminalinde çalışan tüm MQL4 programlarından aynı anda mevcuttur.Gerçek hayatta 100 lot açtı, hazırlanın paran için savaş.

 

Profesyonel yardıma ihtiyacınız var!!! Bu kodla zaten kafam karıştı... 4 tampon var, 2'si doğru çalışıyor (Buffer &buffer2), ancak diğer 2'si çalışmıyor. Belirli bir koşul oluştuğunda, arabellek doldurulur, bu değer onun için yukarı ve saniye için aşağı aşıldığında, arabellekler silinir (sıfırlanır), ancak kalan 2 arabellek hala grafikte asılı kalır. Nasıl düzelteceğimi söyle?

       //--- Функция расчета буферов CountZZ(BuferUp,BuferDn,iPeriod,Dev,Step);
int CountZZ( double & ExtMapBuffer[], double & ExtMapBuffer1[], double & ExtMapBuffer2[], double & ExtMapBuffer3[], int ExtDepth, int ExtDeviation, int ExtBackstep )
{
   int     shift, back,lasthighpos,lastlowpos;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow,lastlow1,lasthigh1;
   int count = iBars(pair,tf)-ExtDepth;

   for (shift=count; shift>= 0 ; shift--)
     {
     //--- Расчитываем буфер BuferUp
      val = iLow(pair,tf,iLowest(pair,tf,MODE_LOW,ExtDepth,shift));
       if (val==lastlow) val= 0.0 ;
       else
        {
         lastlow=val;
         if ((iLow(pair,tf,shift)-val)>(ExtDeviation* Point )) val= 0.0 ;
         else
           {
             for (back= 1 ; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer[shift+back];
               if ((res!= 0 )&&(res>val)) ExtMapBuffer[shift+back]= 0.0 ;
              }
           }
        }
       
          ExtMapBuffer[shift]=val;
       //--------------------------------------------------------------------    
          
     //--- Расчитываем буфер BuferUp2
       if (ExtMapBuffer[shift]> 0.0 )
      {
             if (use.narrow.bands) val = MathMin (iClose(pair,tf,shift),iOpen(pair,tf,shift));
                 else {val = MathMax (iClose(pair,tf,shift),iOpen(pair,tf,shift));
             val = MathMin (val, MathMin (iHigh(pair,tf,shift+ 1 ),iHigh(pair,tf,shift- 1 )));}
       if (ExtMapBuffer[shift+back]== 0.0 ) ExtMapBuffer1[shift+back]= 0.0 ;
      } 
          ExtMapBuffer1[shift]=val;
       //--------------------------------------------------------------------    
          
       //--- Расчитываем буфер BuferDn
      val=iHigh(pair,tf,iHighest(pair,tf,MODE_HIGH,ExtDepth,shift));
     
       if (val==lasthigh) val= 0.0 ;
       else
        {
         lasthigh=val;
         if ((val-iHigh(pair,tf,shift))>(ExtDeviation* Point )) val= 0.0 ;
         else
           {
             for (back= 1 ; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer2[shift+back];
               if ((res!= 0 )&&(res<val)) ExtMapBuffer2[shift+back]= 0.0 ;
              }
           }
        }
      ExtMapBuffer2[shift]=val;
       //-------------------------------------------------------------------
      
       //--- Расчитываем буфер BuferDn2
       if (ExtMapBuffer2[shift]> 0.0 )
      {
             if (use.narrow.bands) val = MathMax (iClose(pair,tf,shift),iOpen(pair,tf,shift));
                 else {val = MathMin (iClose(pair,tf,shift),iOpen(pair,tf,shift));
             val = MathMax (val, MathMax (iLow(pair,tf,shift- 1 ),iLow(pair,tf,shift+ 1 )));}
       if (ExtMapBuffer2[shift+back]== 0.0 ) ExtMapBuffer3[shift+back]= 0.0 ;
      }
      ExtMapBuffer3[shift]=val;
       //-------------------------------------------------------------------
      
     }
           
   // Отсееваем ненужные значения
   lasthigh=- 1 ; lasthighpos=- 1 ;
   lastlow=- 1 ;  lastlowpos=- 1 ;

   for (shift=count; shift>= 0 ; shift--)
     {
      curlow=ExtMapBuffer[shift];
      curhigh=ExtMapBuffer2[shift];
       if ((curlow== 0 )&&(curhigh== 0 )) continue ;
       //---
       if (curhigh!= 0 )
        {
         if (lasthigh> 0 )
           {
             if (lasthigh<curhigh) ExtMapBuffer2[lasthighpos]= 0 ;
             else ExtMapBuffer2[shift]= 0 ;
           }
         //---
         if (lasthigh<curhigh || lasthigh< 0 )
           {
            lasthigh=curhigh;
            lasthighpos=shift;
           }
         lastlow=- 1 ;
        }
       //----
       if (curlow!= 0 )
        {
         if (lastlow> 0 )
           {
             if (lastlow>curlow) ExtMapBuffer[lastlowpos]= 0 ;
             else ExtMapBuffer[shift]= 0 ;
           }
         //---
         if ((curlow<lastlow)||(lastlow< 0 ))
           {
            lastlow=curlow;
            lastlowpos=shift;
           }
         lasthigh=- 1 ;
        }
     }
 
   for (shift=iBars(pair,tf)- 1 ; shift>= 0 ; shift--)
   {
       if (shift>=count) ExtMapBuffer[shift]= 0.0 ;
         else
         {
            res=ExtMapBuffer2[shift];
             if (res!= 0.0 ) ExtMapBuffer2[shift]=res;
         }
   }
}

Neden: