İşkence hatası ticaret işlemi yok - sayfa 6

 

Bu bulmaca daha da ilginç. Yukarıdaki gönderideki koda dayanarak basit bir Uzman Danışman oluşturdum. Ayrıca her biri 5 dakika süreyle piyasada olmak üzere 5 adet işlem açar ve ardından kapanır. İşte kod:

 #property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   static int test_ticket[ 2 ]={ 0 , 0 };
   if (test_ticket[ 1 ]< 5 && test_ticket[ 0 ]== 0 ) {
      test_ticket[ 0 ]= OrderSend ( _Symbol ,OP_BUY, SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ), NormalizeDouble (Ask, _Digits ), 30 , 0.0 , 0.0 , "test" , 33333 , 0 , clrNONE );
       if (test_ticket[ 0 ]> 0 ) test_ticket[ 1 ]++;
   }   
   if ( OrderSelect (test_ticket[ 0 ],SELECT_BY_TICKET))
       if (OrderCloseTime()== 0 && OrderOpenTime()+ 300 < TimeCurrent ())
         if (OrderClose(test_ticket[ 0 ],OrderLots(), NormalizeDouble (Bid, _Digits ), 30 , clrNONE )) {
             printf ( "Test order closed, ticket #%d" ,test_ticket[ 0 ]);
            test_ticket[ 0 ]= 0 ;
         }   
   
  }
//+------------------------------------------------------------------+

İlk denemede doğrulamayı geçti, ancak NZDUSD için alım satım işlemi yok. Niye ya?


Doğrulayıcı, minimum lotla açmak için yetersiz bir depozito ayarlamış olsa bile, yukarıda yayınlanan mesajda olduğu gibi 134 hatası oluşacaktı. Ve sadece anlaşma yok! Niye ya???

Belki doğrulayıcı hata yapar veya bunun için makul bir açıklama var mı?

 
Renat Akhtyamov :

ve önce doğrulayıcının tam yanıtını buraya koyarsınız

ve neden doğrulayıcının biletleri sizin belirlediğiniz prensibe göre tahsis etmesine karar verdiniz?

5 fırsat açmak için açık fırsatları saymanız ve biletler için endişelenmemeniz gerekir.

Renat, bence anlaşmalar böyle, yakından bak. Kodumu test cihazında bile çalıştırabilirsiniz. İki değerden oluşan bir dizi vardır: test_ticket[0] - sipariş biletini hatırlar, test_ticket[1] - deneme sayısı.

İlk koşuldaki deneme sayısını değiştirerek farklı sayıda işlem açabilirsiniz.

 if (test_ticket[ 1 ] < 5 && test_ticket[ 0 ]== 0 ) {
 

İşte farklısayıda siparişle aşağıdaki denemeler hakkında bir hikaye


Ve burada, sonraki denemelerden birinde, doğrulayıcı gerçekten minimum lotu kullanır ve bu açıkça 1 $ depozito ile açılmayacaktır. Soru, neden daha önce girişimlerde anlaşma yapılmadı? Ve neden bu çalıştırma, bir doğrulama hatasını tetikleyen kasıtlı olarak yanlış bir minimum lot ve depozito kullanıyor?

Vladimir Karputov :

...

Genel olarak, doğrulayıcı hala ana göreviyle başa çıkıyor: Bitmemiş kodu Market'ten ayıklamak.

Mmm...

Ve bu rastgele bir atış değil. İşte sonraki üç deneme.


 

"Böyle bir işlemi açmak için para yok ..." günlüğündeki hata, hala bir ticaret talebi gönderdiğinizi gösterir, ancak bundan önce kesinlikle hiçbir şey (veya hepsi değil) kontrol edildi. Makalede net bir doğrulama algoritması belirtilmiştir.


Unutmayın - "böyle bir işlemi açacak para yok ..." hatası danışmanın mantığında %99 hatadır. Bunlar cevapsız çeklerdir (veya tamamen yokluğu). Bu, kodlama ilkelerinin anlaşılmadığının bir işaretidir.


Unutmayın: gerçek dünyada, depozito 1$ olabilir ve kaldıraç her zaman 1:100 değildir ve minimum lot 0.01 ve 0.02 ve 0.30 ve 1.0 olabilir ve bir çok başka oyun...

 
Vladimir Karputov :

"Böyle bir işlemi açmak için para yok ..." günlüğündeki hata, hala bir ticaret talebi gönderdiğinizi gösterir, ancak bundan önce kesinlikle hiçbir şey (veya hepsi değil) kontrol edildi. Makalede net bir doğrulama algoritması belirtilmiştir.


Unutmayın - "böyle bir işlemi açacak para yok ..." hatası danışmanın mantığında %99 hatadır. Bunlar cevapsız çeklerdir (veya tamamen yokluğu). Bu, kodlama ilkelerinin anlaşılmadığının bir işaretidir.


Unutmayın: gerçek dünyada, depozito 1$ olabilir ve kaldıraç her zaman 1:100 değildir ve minimum lot 0.01 ve 0.02 ve 0.30 ve 1.0 olabilir ve bir çok başka oyun...

Vladimir, fili fark etmedin. Asıl hata şuydu

Senin dilinde cevap verebilirim, moral verebilirim.

 
Vladimir Karputov :

"Böyle bir işlemi açmak için para yok ..." günlüğündeki hata, hala bir ticaret talebi gönderdiğinizi gösterir, ancak bundan önce kesinlikle hiçbir şey (veya hepsi değil) kontrol edildi. Makalede net bir doğrulama algoritması belirtilmiştir.


Unutmayın - "böyle bir işlemi açacak para yok ..." hatası danışmanın mantığında %99 hatadır. Bunlar cevapsız çeklerdir (veya tamamen yokluğu). Bu, kodlama ilkelerinin anlaşılmadığının bir işaretidir.


Unutmayın: gerçek dünyada, depozito 1$ olabilir ve kaldıraç her zaman 1:100 değildir ve minimum lot 0.01 ve 0.02 ve 0.30 ve 1.0 olabilir ve bir çok başka oyun...

Vladimir, genel olarak yazıları mı okuyorsun yoksa ilgini çeken fotoğrafları mı çekiyorsun anlamıyorum. Her şeyi dikkatlice tekrar veya en azından sayfanın başından itibaren birkaç kez okuyun. Ve orada yayınlanan kodu okuyun! Sana her şeyi açıklama zahmetine girmek bile istemiyorum!

 
Andrey Kaunov :

Sana her şeyi açıklama zahmetine girmek bile istemiyorum!

Andrei, aynı şekilde kimse sana daha önce yazılmış ve çiğnenmiş olanı tekrarlamak istemiyor.

 
Evet, ama bir sorun var. Belki bu sitenin güçlü sitesinden biri hala onu anlamaya ve doğrulayıcıyı kontrol etmeye çalışacaktır. Sonuçta, parametresiz en basit şeffaf kod, bazen NZDUSD ve GBPUSDcheck ile anlaşma yapmaz. Ve bazı koşullar eklerseniz ve altın için herhangi bir işlem olmayacaksa, yine hata alım satım işlemi yapılmaz ve kontrol başarısız olur.
 
Andrey Kaunov :
Evet, ama bir sorun var. Belki bu sitenin güçlü sitesinden biri hala onu anlamaya ve doğrulayıcıyı kontrol etmeye çalışacaktır. Sonuçta, parametresiz en basit şeffaf kod, bazen NZDUSD ve GBPUSDcheck ile anlaşma yapmaz. Ve bazı koşullar eklerseniz ve altın için herhangi bir işlem olmayacaksa, yine hata alım satım işlemi yapılmaz ve kontrol başarısız olur.

Doğrulayıcının ticaret sunucusu hataları listesinden bir hata kodu döndüreceği gerçeğine güvenmeyin. Hatayı her zaman kendiniz kaydedin. Emrin uygulanmasının imkansızlığı hakkında bildiğiniz yazıda yazılanları ve bu durumda yapılması gerekenleri dikkatlice okuyunuz.

Validasyon hatalarının nedeni, örneğin lot boyutunun hesaplanması gibi günlükte bir hata mesajının olmaması muhtemeldir.

 
Andrey Kaunov :

İşte farklısayıda siparişle sonraki denemeler hakkında bir hikaye


Ve burada, sonraki denemelerden birinde, doğrulayıcı gerçekten minimum lotu kullanır ve bu açıkça 1 $ depozito ile açılmayacaktır. Soru şu ki, neden daha önce girişimlerde anlaşma yapılmadı? Ve neden bu çalıştırma, bir doğrulama hatasını tetikleyen kasıtlı olarak yanlış bir minimum lot ve depozito kullanıyor?

Mmm...

Ve bu rastgele bir atış değil. İşte sonraki üç deneme.


Takas talebi gönderilirken hata 134 ...

Test eden kişi bu hatayı mı yazdı? Evet ise, bu aynı zamanda doğrulama hatalarının nedenlerinden biridir. Bir pozisyon açma olasılığını bağımsız olarak hesaplamanız gerekir ve bunu yapmak mümkün değilse, günlükte ayarlanan parametrelerle işlem yapmanın imkansızlığı hakkında kendi mesajınızı gösterin ve sunucuya kasıtlı olarak yanlış bir emir göndermeyin. terminalin ve sunucunun sizin için her şeyi yapacağı gerçeği. Bu tür yanlış siparişlerle, sunucuya spam gönderebilir ve gelecekte otomatik ticaretten güvenli bir şekilde yasaklanabilirsiniz. Bu senin hatan, doğrulayıcının değil.

Neden: