[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 628

 
IgorM :

parametresiz ifade için? - anlam? sonsuz döngüler farklı yazılır ve ikincisi danışman için global değişkenlerdir - terminal için değil, kodun en başında tüm işlevlerden ve start() işlevinden önce açıklanırlar, yazdığınız gibi - start( ) işlevi her işarette çağrılır flagchange=false; ve sonra bu bayrağı önceki durumla karşılaştırmaya çalışırsınız, ancak durumu her zaman yanlış olacaktır.

elinizi yeni denemeye başlıyorsanız - kod tabanından herhangi bir hazır danışmanı alın ve pazara girme koşullarını kendinize göre değiştirin - daha hızlı olacaktır


şarap
Ve danışman hangi amaçla takıntılı?

Yani, start() işlevi her tikte yürütülüyor mu? O zaman döngü gerçekten gerekli değildir.

 

MarkTrade :

Yani, start() işlevi her tikte yürütülüyor mu? O zaman döngü gerçekten gerekli değildir.

https://book.mql4.com/en/programm/special
 

İlginç bir şekilde, kızlar dans ediyor ... koroda kalkıp şarkı söylüyorlar ...

Eklediğim/değiştirdiğim işlevler/koşullar/verilere dayanarak test ettim ve test ettim, optimizasyon olmadan karlılık ve dezavantajlar açısından az çok iyi sonuçlar elde ettim. Tüm geçmişi yeniden yükledim ve boşaltma başladı, hayır - Boşaltma, hatta - Büyük Boşalma ...

Tekliflerin geçmişini yeniden yüklemeden önce ( testten önce, EURUSD'nin tüm geçmişi önceden yüklenmişse , her ihtimale karşı yeniden yükledim, ancak bir nedenden dolayı, 2010'dan beri, bir nedenden dolayı, hatalar bir simülasyon gibiydi. ..) ... bu nedenle, yeniden yükleme tarihinden önce, danışman sakince, iyi, neredeyse sakince çeşitli geri ve ileri testlere dayandı, üç yıllık bir geçmiş üzerinde başarılı bir şekilde işlem gördü ve tekliflerin yeniden yüklenmesinden hemen sonra, ayda iki veya üç kez belirli dezavantajlar yayınlar ve testin başlangıcından itibaren iki veya üç ayı geçmez. .. Hiçbir koşulu değiştirmedim, sadece hikayenin kendisini ...

Sunucuda tarihin yeniden yazıldığı ortaya çıktı mı? SSCB'de çok eski zamanlardan beri nasıl?

O zaman bütün bunların anlamı ne?

 
artmedia70 :

İlginç bir şekilde, kızlar dans ediyor ... koroda kalkıp şarkı söylüyorlar ...

Eklediğim/değiştirdiğim işlevler/koşullar/verilere dayanarak test ettim ve test ettim, optimizasyon olmadan karlılık ve dezavantajlar açısından az çok iyi sonuçlar elde ettim. Tüm geçmişi yeniden yükledim ve boşaltma başladı, hayır - Boşaltma, hatta - Büyük Boşalma ...

Tekliflerin geçmişini yeniden yüklemeden önce ( testten önce, EURUSD'nin tüm geçmişi önceden yüklenmişse , her ihtimale karşı yeniden yükledim, ancak bir nedenden dolayı, 2010'dan beri, bir nedenden dolayı, hatalar bir simülasyon gibiydi. ..) ... bu nedenle, yeniden yükleme tarihinden önce, danışman sakince, iyi, neredeyse sakince çeşitli geri ve ileri testlere dayandı, üç yıllık bir geçmiş üzerinde başarılı bir şekilde işlem gördü ve tekliflerin yeniden yüklenmesinden hemen sonra, ayda iki veya üç kez belirli dezavantajlar yayınlar ve testin başlangıcından itibaren iki veya üç ayı geçmez. .. Hiçbir koşulu değiştirmedim, sadece hikayenin kendisini ...

Sunucuda tarihin yeniden yazıldığı ortaya çıktı mı? SSCB'de çok eski zamanlardan beri nasıl?

O zaman bütün bunların anlamı ne?

Hiçbir şeyin üzerine yazılmaz - Uzman Danışmanlarımda birçok kez kontrol ettim - eşit koşullar altında, sonuçlar aynı. test cihazını başlattığınızda veya optimize ettiğinizde, MT sunucudan bir spread (vs.) alır. Yani spread 1 pip olduğunda her şey süper olacak ama başka bir zaman 4-5'e çıkarsa Expert Advisor muhtemelen birleşmeye başlayacak. Doğal olarak, en kötü koşullar altında optimize etmek daha iyidir, çünkü gerçek ticarette daha olasıdırlar.

 

İşte biraz değişti.

глобальные переменные (в самом начале, под #property link )
bool flagchange = false ;
bool PrevFlag = false ;
bool flag = false ; 

int start()
  {
   //---вход в позицию
   //int    spread=MarketInfo("EURUSD",MODE_SPREAD);
   int Slippage = 3 ;
   int i = 0 ;
   double lt = getLots() ; // минимальный лот
   RefreshRates();
   int total = OrdersTotal();   
   int ticket = - 1 ;
      flag = GetEma();
         if (PrevFlag != flag) // проверим, сигнал ема изменился?
         {flagchange = true ;       // изменился!
         PrevFlag = flag;}
         else flagchange = false ;
         if (flagchange == True)
         {       
           int Total=OrdersTotal(); // есть открытые позиции?
           if (Total> 0 )
            {
               for (i=Total- 1 ; i>= 0 ; i--) 
              {
                 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)== true ) 
                  {
                     if (OrderType()==OP_BUY || OrderType()==OP_SELL) // Только Buy и Sell
                     {
                       if (OrderType()==OP_BUY) 
                         bool Result=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,CLR_NONE);
                       else
                         Result=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,CLR_NONE);
                     if (Result!= true ) 
                        {          
                          Print( "LastError = " ,GetLastError()); 
                         }              
                      }
                   }
                 else 
                   if (flag == true ) OrderSend(Symbol(),OP_BUY,lt,Ask,Slippage,Bid - sl * Point, 0 , "Buy" , 888 , 0 ,Blue);
                   else OrderSend(Symbol(),OP_SELL,lt,Bid,Slippage,Ask + sl * Point, 0 , "Seel" , 888 , 0 ,Red);
              }
           }                                            
        }
     
   return ( 0 );
  }
       /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
   bool GetEma() {
   //----Получим значение EMA1
       int ma1= iMA(Symbol(),PERIOD_H1,ema1, 0 , 1 , 6 , 0 );
   //----Получим значение EMA2   
       int ma2= iMA( "" ,PERIOD_H1,ema2, 0 , 1 , 6 , 0 ); 
       if (ma1>ma2) return (True);
       else return (False);}
   /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// //  
         // посчитаем разтер лота
   double getLots() 
        {
                 double minlot = MarketInfo(Symbol(), MODE_MINLOT);
                 int round = MathAbs(MathLog(minlot) / MathLog( 10.0 )) + 0.5 ;
                 double lot = minlot;
//---- select lot size
                 lot = NormalizeDouble(AccountFreeMargin() * Risk / 1000.0 , round);
                 if (AccountFreeMargin() < lot * MarketInfo(Symbol(), MODE_MARGINREQUIRED)) 
                        {
                                lot = NormalizeDouble(AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED), round);
                        }
                 if (lot < minlot) lot = minlot;
                 double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
                 if (lot > maxlot) lot = maxlot;
//---- return lot size
   return (lot);
        }

Hala takas yok :(

 
chief2000 :

Hiçbir şeyin üzerine yazılmaz - Uzman Danışmanlarımda birçok kez kontrol ettim - eşit koşullar altında, sonuçlar aynı. test cihazını başlattığınızda veya optimize ettiğinizde, MT sunucudan bir spread (vs.) alır. Yani spread 1 pip olduğunda her şey süper olacak ama başka bir zaman 4-5'e çıkarsa Expert Advisor muhtemelen birleşmeye başlayacak. Doğal olarak, en kötü koşullar altında optimize etmek daha iyidir, çünkü gerçek ticarette daha olasıdırlar.

Bütün bunlar uzun zamandır açık ve anlaşılır... AMA bugün Cumartesi... Salgın bugün değişebilir mi? Hayır... Şimdi muhtemelen minimumdur, yani. daha iyi koşullar... Ama hayır... Herhangi bir yayılmayla bile, danışman geçmişi yeniden yüklemeden önce... iyi ticaret yaptı.
 
artmedia70 :
Bütün bunlar uzun zamandır açık ve anlaşılır... AMA bugün Cumartesi... Salgın bugün değişebilir mi? Hayır... Şimdi muhtemelen minimumdur, yani. daha iyi koşullar... Ama hayır... Herhangi bir yayılmayla bile, danışman geçmişi yeniden yüklemeden önce... iyi ticaret yaptı.
Peki, grafikte ticaretin seyrine bakarsanız ne değişti?
 
Techno :
Peki, grafikte alım satımın seyrine bakarsanız, ne değişti?
Özkaynak düşüşü birçok kez arttı... Pozisyon açmak için daha fazla koşulun olduğu ortaya çıktı. Aslında daha fazla pozisyon açar...
 
MarkTrade :

İşte biraz değişti.

Hala takas yok :(

koşullarda/mantıkta bir yerde bir hata olmalı
MetaEditor'un hata ayıklayıcısı olmadığı için şunu yapıyorum:

kodun sonuna ekleyin

Yorum ( "bayrak= ", bayrak, " ÖncekiBayrak=", ÖncekiBayrak, ......);

dönüş(0);

}

ve test cihazında düşük hızda görselleştirme modunda, neyin değişip neyin değişmediğini görün

 
artmedia70 :
Öz sermaye düşüşü birçok kez arttı... Açık pozisyonlar için daha fazla koşul olduğu ortaya çıktı. Aslında daha fazla pozisyon açar...
Yani bir test çizelgesi değil, yaklaşık olarak bir teklif çizelgesi, açılışlarda, kapanışlarda ne gibi değişiklikler var?
Neden: