Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 363

 
Tapochun :
Soruyu burada sorduğunu sanmıyorum. Ayrı bir konu oluşturun, gösterge kodunu oraya ekleyin ve birinin yardımcı olacağını umalım. Kod olmadan... birinin size söylemesi pek olası değildir.
Gösterge satın almaz veya satmaz.)
 
Teknik görevi yazarken, algoritmayı nasıl doğru bir şekilde tanımlayacağımı anlayamadığım bir durumla karşılaştım. Söyle bana, bir danışmanın işinde bir pozisyonu kısmen kapatmak mümkün mü?
 
Nikolay Lampickiy :
Teknik görevi yazarken, algoritmayı nasıl doğru bir şekilde tanımlayacağımı anlayamadığım bir durumla karşılaştım. Söyle bana, bir danışmanın işinde bir pozisyonu kısmen kapatmak mümkün mü?
Bunu yapmak için, lotu pozisyonun lotundan daha az kapatmak için belirtmeniz gerekir (bu, MT4 ise MT5'te daha küçük bir lot ile zıt bir pozisyon açabilirsiniz, bunun sonucunda örtüşürler). Kalan lotu olan bir pozisyon piyasada kalacaktır.
 
Nikolay Lampickiy :
Teknik görevi yazarken, algoritmayı nasıl doğru bir şekilde tanımlayacağımı anlayamadığım bir durumla karşılaştım. Söyle bana, bir danışmanın işinde bir pozisyonu kısmen kapatmak mümkün mü?
Bu kadar zor olan ne? Fiyat, kâr için belirli bir puan mesafesini geçer, pozisyonun yarısı kapanır, eğer pozisyon eşit olarak bölünmezse (örneğin, 0.09), o zaman çoğu kapanır (0.05) ve stop başabaşa taşınır, sonra başka bir mesafeyi geçiyoruz, kalanın yarısını tekrar kapatıyoruz (0.02) ve duruyoruz, onu kapatma adımının mesafesine kadar hareket ettiriyoruz artı ve böylece tüm pozisyon kapanana veya durdurma devre dışı kalana kadar. Adım, ticaret sistemine bağlı olarak sabitlenebilir veya her seferinde bir aralıktan hesaplanabilir.
 
Vladimir Zubov :
Bu kadar zor olan ne? Fiyat, kâr için belirli bir puan mesafesini geçer, pozisyonun yarısı kapanır, eğer pozisyon eşit olarak bölünmezse (örneğin, 0.09), o zaman çoğu kapanır (0.05) ve stop başabaşa taşınır, sonra başka bir mesafeyi geçiyoruz, kalanın yarısını tekrar kapatıyoruz (0.02) ve duruyoruz, onu kapatma adımının mesafesine kadar hareket ettiriyoruz artı ve böylece tüm pozisyon kapanana veya durdurma devre dışı kalana kadar. Adım, ticaret sistemine bağlı olarak sabitlenebilir veya her seferinde bir aralıktan hesaplanabilir.

Doğru şekilde anladım? MQL4 programlama dilinde lot 10 gibi bir piyasa emrinin hacminin sadece yarısının kapanmasını resmileştirmek ve fiyat istenilen seviyeye ulaştığında 5 lotu kapatmak mümkündür.

Yoksa 1/3 ihtimali var mı?

Yoksa bu fikri bir Expert Advisor'da farklı siparişler vererek uygulamak daha mı kolay? Fiyat istenilen seviyeye ulaştığında bir emir kapanır, diğeri piyasa emir hacminin kısmen kapatıldığı yerde kalır. Sen ne diyorsun?

 
Vitalie Postolache :
Bunu yapmak için, lotu pozisyonun lotundan daha az kapatmak için belirtmeniz gerekir (bu, MT4 ise MT5'te daha küçük bir lot ile zıt bir pozisyon açabilirsiniz, bunun sonucunda örtüşürler). Kalan lotu olan bir pozisyon piyasada kalacaktır.
ters pozisyon uymuyor... cevap için teşekkürler
 
Nikolay Lampickiy :

Doğru şekilde anladım? MQL4 programlama dilinde lot 10 gibi bir piyasa emrinin hacminin sadece yarısının kapanmasını resmileştirmek ve fiyat istenilen seviyeye ulaştığında 5 lotu kapatmak mümkündür.

Yoksa 1/3 ihtimali var mı?

Yoksa bu fikri bir Expert Advisor'da farklı siparişler vererek uygulamak daha mı kolay? Fiyat istenilen seviyeye ulaştığında bir emir kapanır, diğeri piyasa emir hacminin kısmen kapatıldığı yerde kalır. Sen ne diyorsun?

Her iki şekilde de mümkündür. OrderClose, kendisine gösterilen birimi kapatmanıza izin verir. https://docs.mql4.com/ru/trading/orderclose

Tabii ki, farklı kar seviyelerine sahip birkaç emir de açabilirsiniz, bir bağlantı kesilmesi durumunda daha da güvenilir olacaktır, çünkü kar al seviyeleri sunucuda depolanır ve fiyat onları geçerse yürütülür.

OrderClose - Документация на MQL4
  • docs.mql4.com
OrderClose - Документация на MQL4
 
Vladimir Zubov :

Her iki şekilde de mümkündür. OrderClose, kendisine gösterilen birimi kapatmanıza izin verir. https://docs.mql4.com/ru/trading/orderclose

Tabii ki, farklı kar seviyelerine sahip birkaç emir de açabilirsiniz, bir bağlantı kesilmesi durumunda daha da güvenilir olacaktır, çünkü kar al seviyeleri sunucuda depolanır ve fiyat onları geçerse yürütülür.

Cevap için teşekkürler..)))
 

Hepinize iyi günler! Bir sorunla karşılaştım, profesyonellerin veya daha deneyimli MT5 kullanıcılarının görüşlerini duymak istiyorum. Göstergenin olaylar oluşturduğu yardımıyla CEventBase sınıfının yanı sıra bir gösterge yazdım . Bu olayları işleyen Expert Advisor'ları başlatırken, er ya da geç, gerçek zamanlı olarak başlatıldığında hatalar ortaya çıkıyor: 4001, 4102, 4104. "Parçalanmaya" başladıktan sonra bunu yapmayı bırakmazlar) Generate işlevinin kodunu ekliyorum, aslında tüm bu sıkıntıların kaynağı olan Bu konudaki görüşlerinizi duymak isterim...

Herkese iyi günler!


 bool CEventBase::Generate( long _chart_id, int _id_ind, SEventData &_data,
                           const bool _is_custom= true )
  {
   bool is_generated = true ;
   // если индекс id события в массиве не верен
   if (_id_ind < 0 || _id_ind >= aEvents.Total())
    {
     Print ( "Не верно задан индекс ID события" );
     return ( false );
    }
   // заполняем поля 
   CEvent *event = aEvents.At(_id_ind);
   this ._id = ( ushort )( CHARTEVENT_CUSTOM +event.id);
   this ._data = _data;
   this ._data.sparam = event.name; // сохраняем имя события
   
   if (_is_custom)
     {
       ResetLastError ();
      is_generated = EventChartCustom (_chart_id, event.id, this ._data.lparam,
                                       this ._data.dparam, this ._data.sparam);
       if (!is_generated && _LastError != 4104 )
         {
           Print ( "is_generated = " , is_generated);
           PrintFormat ( "%s Error while generating a custom event: %d" , __FUNCTION__ , _LastError );
           Print ( ChartSymbol (_chart_id), " " ,PeriodToString( ChartPeriod (_chart_id)), "Ошибка! _chart_id =" , _chart_id, " event.id = " , event.id, " data.dparam = " , this ._data.dparam, " data.sparam = " , this ._data.sparam);
          
         }
     }
   return is_generated;
  }


 
dariamap :

Hepinize iyi günler! Bir sorunla karşılaştım, profesyonellerin veya daha deneyimli MT5 kullanıcılarının görüşlerini duymak istiyorum. Göstergenin olaylar oluşturduğu yardımıyla CEventBase sınıfının yanı sıra bir gösterge yazdım . Bu olayları işleyen Expert Advisor'ları başlatırken, er ya da geç, gerçek zamanlı olarak başlatıldığında hatalar ortaya çıkıyor: 4001, 4102, 4104. "Parçalanmaya" başladıktan sonra bunu yapmayı bırakmazlar) Generate işlevinin kodunu ekliyorum, aslında tüm bu sıkıntıların kaynağı olan Bu konudaki görüşlerinizi duymak isterim...

Herkese iyi günler!

Sizin sunduğunuz yöntemin geçişli olduğu aşikar. Hata büyük olasılıkla onda değil. Sunulan verilerden ne olduğu net değil. Birkaç seçenek olabilir:

  • Grafik tanımlayıcısı yanlış belirtildi (4101 hatasıyla belirtildiği gibi).
  • Çok sık istekler;
  • Geçersiz diğer parametreler (örneğin olay kimlikleri).

Yazdığınız kodun seviyesine bakılırsa hatanın her yerde ve her şeyde olabileceğini söyleyebiliriz.