"MQL5 Tarif Defteri Alım Satım Seviyelerini Ayarlarken/Değiştirirken Hatalardan Nasıl Kaçınılır?" makalesi için tartışma - sayfa 2

 
tatankaska:
Merhaba, uzman danışmanınızı GOLD üzerinde strateji test cihazında test ederken her zaman Pozisyon açılamadı - Geçersiz durdurmalar - hiçbir pozisyon açılmadı istemleri aldım. Yanlış olan neydi? Bu tür hatalardan kaçınmak için mi yazıldı?
Korkarım size yardımcı olabilmemiz için biraz koda ihtiyacımız var. En olası şey, hatanın kodunuzda mevcut olmasıdır. Duraklarınızın izin verilen minimum mesafeden daha büyük olup olmadığını ve herhangi bir şans eseri alım ve satım duraklarını yanlış yerleştirmediğinizi kontrol edin. Ayrıca, brokerinizin pozisyon açılışında stopların belirlenmesine izin verdiğinden emin olun - bazıları sadece mevcut pozisyonlara stop eklemeyi gerektirir ("piyasa uygulaması" olarak adlandırılır).
 
marketeer:
Korkarım size yardımcı olabilmemiz için biraz koda ihtiyacımız var. En olası şey, hatanın kodunuzda mevcut olmasıdır. Duraklarınızın izin verilen minimum mesafeden daha büyük olup olmadığını ve herhangi bir şans eseri alım ve satım duraklarını yanlış yerleştirmediğinizi kontrol edin. Ayrıca, komisyoncunuzun pozisyon açılışında stopların belirlenmesine izin verdiğinden emin olun - bazıları sadece mevcut pozisyonlara stop eklemeyi gerektirir ("piyasa yürütme" olarak adlandırılır).

Merhaba, herhangi bir değişiklik yapmadan (Positionpropertiesplus) ticaret seviyesini ayarlarken / değiştirirken hatalardan nasıl kaçınılır makalesine ekli yalnızca uzman danışmanı test ettim. Instaforex tarafından Instatrader platformu. Bu danışmandaki işlevler öyle yazılmıştır ki, yanlış durdurma parametreleri ayarlarsam, izin verilen en düşük değere ayarlanırlar. Yani normalde hata uyarısı almamalıyım - bu forex çiftleri için doğrudur. Ancak bu platformdaki GOLD ile, positionpropertiesplus EA'nın stoplu pozisyon açmak için her denemesinde, hata istemi geçersiz stoplar elde ediyorum ve strateji test cihazında hiçbir pozisyon açılmadı. Bahsettiğiniz durum bu mu - instatrader platformu ve komisyoncu ile ilgili sorun mu? GOLD sembol özelliklerinde anında yürütme yazılır.

İşte söz konusu EA'dan stoploss hesaplaması için işlev örneği - Söz konusu makaleye ekli EA'yı herhangi bir değişiklik yapmadan kullandım, sadece forex çiftleri yerine ALTIN kullandım:

//+------------------------------------------------------------------+

//| Zarar Durdurma değerinin hesaplanması|

//+------------------------------------------------------------------+

double CalculateStopLoss(ENUM_ORDER_TYPE order_type)

  {

//--- Zararı Durdur gerekli ise

   if(StopLoss>0)

     {

      //--- Hesaplanan Zarar Durdurma değeri için

      double sl=0.0;

      //--- Bir ALIŞ pozisyonu için değer hesaplamanız gerekiyorsa

      if(order_type==ORDER_TYPE_BUY)

        {

         // Seviyeyi hesapla

         sl=NormalizeDouble(sym_ask-CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Durdurma seviyesinin alt sınırından düşükse hesaplanan değeri döndürür

         // Değer daha yüksek veya eşitse, düzeltilmiş değeri döndür

         return(sl<sym_down_level ? sl : sym_down_level-sym_offset);

        }

      //--- Bir SATIŞ pozisyonu için değer hesaplamanız gerekiyorsa

      if(order_type==ORDER_TYPE_SELL)

        {

         //--- Seviyeyi hesaplayın

         sl=NormalizeDouble(sym_bid+CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Durdurma seviyesinin üst sınırından yüksekse hesaplanan değeri döndürür

         // Değer daha düşük veya eşitse, düzeltilmiş değeri döndür

         return(sl>sym_up_level ? sl : sym_up_level+sym_offset);

        }

     }

//---

   return(0.0);

  } 
 
tatankaska:
...

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum


Merhaba,

Lütfen kod gönderirken SRC düğmesini kullanın. Teşekkür ederim.


Bu sefer sizin için düzenledim.


 
tatankaska:

Merhaba, herhangi bir değişiklik yapmadan (Positionpropertiesplus) ticaret seviyesini ayarlarken / değiştirirken hatalardan nasıl kaçınılacağı makalesine ekli yalnızca uzman danışmanı test ettim. Instaforex tarafından Instatrader platformu. Bu danışmandaki işlevler öyle yazılmıştır ki, yanlış durdurma parametreleri ayarlarsam, izin verilen en düşük değere ayarlanırlar. Yani normalde hata uyarısı almamalıyım - bu forex çiftleri için doğrudur. Ancak bu platformdaki GOLD ile, positionpropertiesplus EA'nın stoplu pozisyon açmak için her denemesinde, hata istemi geçersiz stoplar elde ediyorum ve strateji test cihazında hiçbir pozisyon açılmadı. Bahsettiğiniz durum bu mu - instatrader platformu ve komisyoncu ile ilgili sorun mu? GOLD sembol özelliklerinde anında yürütme yazılır.

İşte söz konusu EA'dan stoploss hesaplaması için işlev örneği - Söz konusu makaleye ekli EA'yı herhangi bir değişiklik yapmadan kullandım, sadece forex çiftleri yerine ALTIN kullandım:

Evet, durum buydu. Instatrader'da GOLD ile stoplar sadece pozisyon açıldıktan sonra yerleştirilebilir. Pozisyon duraksız açıldığında ve açıldıktan sonra değiştirildiğinde, her şey yolundaydı. Teşekkürler çocuklar.
 

Ekli EA'da durakların (SL / TP) hesaplanmasına bir kez daha - bunlar yalnızca sembol noktasının = sembol tik boyutunun olduğu enstrümanlar tarafından doğru şekilde hesaplanır. GOLD için durum böyle değil.

Duraklar bu durumda (GOLD tarafından) geçerli sembol tik boyutuna göre düzeltilmelidir, aksi takdirde hata istemi alırsınız - geçersiz duraklar .

Dolayısıyla, GOLD tarafından verilen hata uyarıları piyasa uygulamasının sonucu değildir. GOLD ile kullanmak istiyorsanız, EA'nın SL / TP hesaplamasında biraz düzeltmeye ihtiyacı vardır.

 
Bir pozisyonu kapatmaya ne dersiniz? Uzman Danışman'da pozisyonları kapatmak için koşullar (sinyal) varsa, nasıl yapılır, bu tür örnekleri nerede görebilirim?
 
Nauris:
Bir pozisyonu kapatmaya ne dersiniz? Uzman Danışman'da pozisyonları kapatmak için koşullar (sinyal) varsa, nasıl yapılır, bu tür örnekleri nerede görebilirim?
Makalede standart kütüphanenin CTrade sınıfı kullanılmıştır. PositionClose yöntemine sahiptir. Bunu kullanabilirsiniz.
 
Bunu kodda değiştiriyorum

//+------------------------------------------------------------------+
//| Bilgi panelinin ayarlanması|
//|------------------------------------------------------------------+
void SetInfoPanel()
  {
//--- Görselleştirme veya gerçek zamanlı modlar
   if(ShowInfoPanel && (IsVisualMode() || IsRealtime()))
     {
     // SetInfoPanel() fonksiyonunun kalan kodu
     // ...
     }
  }