Otomatik Ticaret Şampiyonası 2007: Uzman Danışmanlarda Sık Yapılan Hatalar - sayfa 6

 
" OrderModify hatası 1" hata mesajı, özensiz programlama nedeniyle OrderModify'ı değiştirilmemiş parametrelerle çağırmak anlamına gelir.

OrderModify'ı çağırmadan önce, güncellemeyi tam olarak yeni verilerle mi çağırdığınızı veya mevcut değerleri ayarlamaya mı çalıştığınızı kontrol edin.
 
Uzman Danışmanınızın doğrulaması tamamlandı. Uzman Test Raporu:
----------------------
2007.09.08 17:47 yükleniyor
EURUSD'de mazig:60
17:38:34 2007.01.04 00:01 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:02 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:03 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:04 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:04 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify hatası 1
17:38:34 2007.01.04 00:08 stalker_2 EURUSD,H4: OrderModify hatası 1
0 dak 49 saniye
Hatalar: 20


----------------------

EA kodunuzu düzeltin ve yeni sürümü profil sayfanıza yükleyin:

Robotunuzla ilgili bir şeyler çıldırdı, görünüşe göre çok sayıda katılımcı var :-) uzmanların kafasını karıştırmaya başladı bile. Uzman Danışmanım yorumlara stalker_2 yazmaz ve saatlik grafikte çalışır. Ve OrderModify komutu bunu kullanmaz.
 
Renat :
"OrderModify hatası 1" hata mesajı, özensiz programlama nedeniyle OrderModify'ı değiştirilmemiş parametrelerle çağırmak anlamına gelir.

OrderModify'ı çağırmadan önce, güncellemeyi tam olarak yeni verilerle mi çağırdığınızı veya mevcut değerleri ayarlamaya mı çalıştığınızı kontrol edin.

belki tasarım demek istedin

if ( RefreshRates() == true )

{

....

OrderModify(Bilet,...

}

izimde

her sırayı değiştirdikten sonra döngüde Resresh() var

35p kâra ulaşıldığında başabaş noktasına geri çekilme

dış değişkenler, en küçük değer

FirstTralStopSell = 35;

50p'ye ulaştığında sonraki iz

130 hatasının nasıl oluştuğunu tam olarak anlamadım - Testlerde böyle bir hatam yok

OrderModify komutunu verdikten sonra, test sisteminin fiyatın 50p'den daha fazla geri dönmesi için zamanı olacak şekilde bir yeniden teklifi taklit etmesi mümkündür.

Ama sonra böyle bir durumdan nasıl kaçınılır?

ayrıca, LOG'larım, test sisteminin bana verdiği günlüğe girmiyor!?

if (hata != 0 )
{
if ( ECHO hatası == 1 )
Print("Error("+err+") Open="+OrderOpenPrice()+" "+OrderStopLoss()+" SL'yi değiştirir: "+(Ask+Point*FirstTralStopSell)+" TP "+(0)+" "+ msgErrors(hata));
}

 void TralYZ ( int lLockTralSell , int lLockTralBuy )
{
   int err ;
   int cnt = OrdersTotal () ;
   int LocalDinamicTrallSELL ;
   int LocalDinamicTrallBUY ;
   int FirstTralStopSell ;
   int FirstTralStopBuy ;
   LocalDinamicTrallSELL = oDinamicTrallSELL ; // значения по умолчанию 
   LocalDinamicTrallBUY =  oDinamicTrallBUY  ;
   FirstTralStopSell = oFirstTralStopSell ;             // первый безуюыток 
   FirstTralStopBuy = oFirstTralStopBuy ;
 
 
   while ( cnt >= 0 )
   {
      RefreshRates () ;
      
      OrderSelect ( cnt , SELECT_BY_POS , MODE_TRADES ) ;
      Sleep ( 10000 ) ;
      int Ticket = OrderTicket () ;
      int IDorder ;
      IDorder = FindID ( Ticket ) ;
      if ( OrderSymbol () == Symbol () )
      {
         if ( OrderType () == OP_SELL && lLockTralSell == 0 ) 
         {         
            if ( OrderMagicNumber () == MAGIC3 )
               FirstTralStopSell = d3FirstTralStopBuy ;
            if ( OrderMagicNumber () == MAGIC2 )
               FirstTralStopSell = d2FirstTralStopBuy ;
            if ( OrderMagicNumber () == MAGIC1 )
               FirstTralStopSell = d1FirstTralStopBuy ;
            if ( OrderMagicNumber () == cMAGIC3 )
               FirstTralStopSell = c3FirstTralStopSell ;
            if ( OrderMagicNumber () == cMAGIC2 )
               FirstTralStopSell = c2FirstTralStopSell ;
            if ( OrderMagicNumber () == cMAGIC1 )
               FirstTralStopSell = c1FirstTralStopSell ;
            if ( 
               ( OrderStopLoss () == 0  && ( OrderOpenPrice () - Ask ) >= ( FirstTralStopSell * Point ) + Ask - Bid ) ||
               ( OrderStopLoss () > OrderOpenPrice ()  && ( OrderOpenPrice () - Ask ) >= ( FirstTralStopSell * Point ) + Ask - Bid ) 
               )
            {                  
               if ( DEBUG == 1 )
                  Print ( " 1 SL= " + OrderStopLoss () + " > OP= " + OrderOpenPrice () + " && ( OP " + OrderOpenPrice () + " - Ask " + Ask + " ) " + ( OrderOpenPrice () - Ask ) + " >= ( " + FirstTralStopSell + " *  " + Point + " )  " + Ask + " - " + Bid + " = " + ( Ask - Bid )) ;
               lotlib_PrevLots = OrderLots () ;  
               lotlib_PrevProfit = OrderProfit () ;
               OrderModify ( Ticket , OrderOpenPrice () , Ask + ( Point * FirstTralStopSell ) , 0 , 0 , Purple ) ;
               Sleep ( 10000 ) ;
               err = GetLastError () ;
               if ( err != 0 )
               {
                  if ( ECHOerror == 1 )
                     Print ( " Error( " + err + " ) Open= " + OrderOpenPrice () + " " + OrderStopLoss () + " modifying SL: " + ( Ask + Point * FirstTralStopSell ) + " TP " + ( 0 ) + " " + msgErrors ( err )) ;
               }
            }
 
Aynı EA kodunu üç kez kontrol ettim .. ilk iki seferde hata yoktu ve üçüncü seferde aniden bir hata belirdi ve şimdi EA kodunu değiştirmem gerekiyor. Aynı uzman kodunu neden birkaç kez kontrol etmeniz gerektiği açık değil mi?
 
Renat :
" OrderModify hatası 1" hata mesajı, özensiz programlama nedeniyle OrderModify'ı değiştirilmemiş parametrelerle çağırmak anlamına gelir.

OrderModify'ı çağırmadan önce, güncellemeyi tam olarak yeni verilerle mi çağırdığınızı veya mevcut değerleri ayarlamaya mı çalıştığınızı kontrol edin.


tasarımdan sonra

                     if ( RefreshRates () == true )
                        OrderModify ( Ticket , OrderOpenPrice () , Bid - Point * LocalDinamicTrallBUY , 0 , 0 , Purple ) ;

testlerde, trol 208 terminal sürümüyle hiç çalışmıyor

çalışmıyor RefreshRates() == doğru mu?

LocalDinamicTrallBUY = 50;

trol girişi

              if ( OrderStopLoss () > OrderOpenPrice () && ( Bid - OrderStopLoss () )  >= ( LocalDinamicTrallBUY * Point ) + Ask - Bid )
                  {
                     lotlib_PrevLots = OrderLots () ;  
                     lotlib_PrevProfit = OrderProfit () ;
                     if ( RefreshRates () == true )
                        OrderModify ( Ticket , OrderOpenPrice () , Bid - Point * LocalDinamicTrallBUY , 0 , 0 , Purple ) ;

görünüşe göre bilmediğim incelikler var

 
YuraZ :
Renat :
"OrderModify hatası 1" hata mesajı, özensiz programlama nedeniyle OrderModify'ı değiştirilmemiş parametrelerle çağırmak anlamına gelir.

OrderModify'ı çağırmadan önce, güncellemeyi tam olarak yeni verilerle mi çağırdığınızı veya mevcut değerleri ayarlamaya mı çalıştığınızı kontrol edin.

belki tasarım demek istedin


Bu, OrderModify'da zaten orada olan aynı StopLoss değerini ayarlamaya çalıştığınız anlamına gelir. Örneğin, StopLoss 1.3020 ise ve tekrar 1.3020'de durmaya çalışırsanız, OrderModify kod 1'i döndürür. Bu, OrderModify belgelerinde açıkça yazılmıştır:

bool OrderModify( int bilet, çift fiyat, çift stoploss, çift kâr, tarih saat sona erme, color arrow_color=CLR_NONE)
Daha önce açılmış pozisyonların veya bekleyen emirlerin parametrelerini değiştirir. İşlev başarıyla tamamlandığında TRUE döndürür. İşlev başarısız olduğunda YANLIŞ döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir.

Not: Açılış fiyatı ve bitiş zamanı sadece bekleyen emirler için değiştirilebilir.
Değişmeyen değerler fonksiyon parametreleri olarak iletilirse, bu durumda hata 1 (ERR_NO_RESULT) üretilecektir.
Bazı alım satım sunucuları bekleyen emir sona erme tarihlerinin kullanılmasını yasaklayabilir. Bu durumda, süre sonu parametresinde sıfır olmayan bir değer ayarlama girişimi, 147 hatası (ERR_TRADE_EXPIRATION_DENIED) üretecektir.
 
Renat :
YuraZ :
Renat :
"OrderModify hatası 1" hata mesajı, özensiz programlama nedeniyle OrderModify'ı değiştirilmemiş parametrelerle çağırmak anlamına gelir.

OrderModify'ı çağırmadan önce, güncellemeyi tam olarak yeni verilerle mi çağırdığınızı veya mevcut değerleri ayarlamaya mı çalıştığınızı kontrol edin.

belki tasarım demek istedin


Bu, OrderModify'da zaten orada olan aynı StopLoss değerini ayarlamaya çalıştığınız anlamına gelir. Örneğin, StopLoss 1.3020 ise ve tekrar 1.3020'de durmaya çalışırsanız, OrderModify kod 1'i döndürür. Bu, OrderModify belgelerinde açıkça yazılmıştır:

bool OrderModify( int bilet, çift fiyat, çift stoploss, çift kâr, tarih saat sona erme, color arrow_color=CLR_NONE)
Daha önce açılmış pozisyonların veya bekleyen emirlerin parametrelerini değiştirir. İşlev başarıyla tamamlandığında TRUE döndürür. İşlev başarısız olduğunda YANLIŞ döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir.

Not: Açılış fiyatı ve bitiş zamanı sadece bekleyen emirler için değiştirilebilir.
Değişmeyen değerler fonksiyon parametreleri olarak iletilirse, bu durumda hata 1 (ERR_NO_RESULT) üretilecektir.
Bazı alım satım sunucuları bekleyen emir sona erme tarihlerinin kullanılmasını yasaklayabilir. Bu durumda, süre sonu parametresinde sıfır olmayan bir değer ayarlama girişimi, 147 hatası (ERR_TRADE_EXPIRATION_DENIED) üretecektir.


VAY!!! kesinlikle!!! Teşekkürler Renat!

eklenen iz giriş koşulu

&& OrderStopLoss() != Ask+Puan*LocalDinamicTrallSELL

 if ( 
                         OrderStopLoss ()  < OrderOpenPrice ()
                      && ( OrderStopLoss () - Ask ) >= ( LocalDinamicTrallSELL * Point ) + Ask - Bid   
                      && OrderStopLoss () !=  Ask + Point * LocalDinamicTrallSELL    
                       ) 
                  {                     
                     if ( DEBUG == 1 )
                        Print ( " 2 SL= " + OrderStopLoss () + " < OP= " + OrderOpenPrice () + " && ( OP " + OrderOpenPrice () + " - Ask " + Ask + " ) " + ( OrderOpenPrice () - Ask ) + " >= ( " + LocalDinamicTrallSELL + " *  " + Point + " )  " + Ask + " - " + Bid + " = " + ( Ask - Bid )) ;
                     lotlib_PrevLots = OrderLots () ;  
                     lotlib_PrevProfit = OrderProfit () ;
                     if ( RefreshRates () == true )
                        OrderModify ( Ticket , OrderOpenPrice () , Ask + Point * LocalDinamicTrallSELL , 0 , 0 , Purple ) ;
                     err = GetLastError () ;
                     if ( err != 0 )
                     {   
                        if ( ECHOerror == 1 )
                           Print ( " Error( " + err + " ) Open= " + OrderOpenPrice () + " " + OrderStopLoss () + " modifying SL: " + ( Ask + Point * LocalDinamicTrallSELL ) + " TP " + ( 0 ) + " " + msgErrors ( err )) ;
                     }
                  }

Ancak test sırasında günlüklerde hata yoktu! - biraz garip

 
pilgrim :

Robotunuzla ilgili bir şeyler çıldırdı, görünüşe göre çok sayıda katılımcı var :-) uzmanların kafasını karıştırmaya başladı bile. Uzman Danışmanım yorumlara stalker_2 yazmaz ve saatlik grafikte çalışır. Ve OrderModify komutu bunu kullanmaz.
Otomatik test cihazının komut dosyası, diğer kişilerin günlüklerini yakaladı - zaten düzeltildi.
 
onlar. iki kez bana uzmanın testi başarıyla geçtiğini ve kaydımı yaptırdığımı e-posta ile yazdılar ... ve üçüncüsünde kodda bir hatam olduğunu söylüyor . .. neden uzmanın kodunu değiştirmem gerekiyor, bir kere profilime yükledim?
 
folver :
onlar. iki kez e-posta ile uzmanın testi başarıyla geçtiğini ve kayıtlı olduğumu yazdılar ... ve üçüncü kez kodda bir hatam olduğunu söylüyor. .. neden uzmanın kodunu değiştirmem gerekiyor, bir kere profilime yükledim?
Sonuçlara bakılırsa, EA bir marj çağrısı yakaladı. Ben bir şey söyleyememek iken. Yarın sabah sonraki kontroller tamamlanacak ve sonucu kontrol edeceğiz.