MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1623

 
makssub # :
Tünaydın. Bana mevcut fiyata en yakın emrin açılış fiyatını nasıl bulacağımı söyle. MQL4. Belki örnekler vardır?

tüm açık pozisyonları inceleriz ve mevcut fiyattan bir anlaşmanın açılmasına kadar olan puan sayısını karşılaştırırız.

Herhangi bir örnek alırsak, biraz daha yüksek bir kod var - bir döngüdeki siparişlerin numaralandırılması.

 
MakarFX # :

OrdersClose nedir?

buraya bak

Anladım, teşekkürler

 
PapaYozh # :


Hayal kurmaya gerek yok. Olanların özü, farklı bir parametre kümesine sahip bir yapıcı olan bir yöntem çağrısıdır. Bunun için herhangi bir nesne oluşturulmaz.

Bir yapıcı çağrısının bir yöntem/işlev çağrısından nasıl farklı olduğunu anlarsınız.

PapaYoz # :

Aynı zamanda istenen sonuca yol açmayan yapıcıya benzer bir çağrı:

konuya göre - yöntemin imzasında ( yöntem olarak adlandırılan yapıcı ? ) referans olarak bir işaretçi aktarımını ekleyin

 
Taras Slobodyanik # :

tüm açık pozisyonları inceleriz ve mevcut fiyattan bir anlaşmanın açılmasına kadar olan puan sayısını karşılaştırırız.

Herhangi bir örnek alırsak, biraz daha yüksek bir kod var - bir döngüdeki siparişlerin numaralandırılması.

Kusura bakmayın yine çarpık yazıyorum. Tekrar deneyeceğim)

Açık siparişlerin bir ızgarası var. Mevcut fiyata en yakın emrin açılış fiyatını (OrderOpenPrice) bulmam gerekiyor. Izgarayı oluşturmaya devam etmek için, aksi takdirde neredeyse kaotik bir şekilde inşa edilirler.

Numaralandırmanın nasıl yazılacağını anlıyorum, ancak doğru çalışması için dilde doğru ifade edemiyorum (bir köpek gibi, her şeyi anlıyorum))

Örnekler veya örneklere bir bağlantı varsa, lütfen yazın. MQL4

 
Igor Makanu # :

Bir yapıcı çağrısının bir yöntem/işlev çağrısından nasıl farklı olduğunu anlarsınız.

konuya göre - yöntemin imzasında ( yöntem olarak adlandırılan yapıcı ? ) referans olarak bir işaretçi aktarımını ekleyin

Java'da bununla, her şey yolunda gibi görünüyor.

Ayrıca üst kurucuyu alt kurucudan da çağırabilirsiniz, tek gereklilik, üst kurucunun alt kurucudaki ilk komut tarafından çağrılmasıdır.

MQL'de, ebeveyn için boş bir kurucu yoksa bir sorun vardır, çünkü bir çocuk oluşturulduğunda, dolaylı olarak çağrılır.

--

not.

Ve ebeveynin parametresiz bir kurucusu ve parametreli bir kurucusu varsa, o zaman hangisi parametreli çocuğun kurucusundan örtük olarak çağrılacak?

 
Igor Makanu # :


konuya göre - yöntemin imzasında ( yöntem olarak adlandırılan yapıcı ? ) referans olarak bir işaretçi aktarımını ekleyin


Koltuk değneğine benziyor.

Değil mi?

 

Merhaba. Muhtemelen aptalca bir soru soracağım ama henüz bir çözüm bulamadım.

Bir gösterge oluşturdu. Grafik üzerinde butonları vardır, butona basıldığında bir çizgi çizilir ve buton aktif hale gelir.

TF'yi değiştirirken, düğmenin etkinliği ve hattın kendisinin konumu korunacak şekilde nasıl yapılır?

Sonuçta, TF'yi değiştirirken, Deinit işlevi bizim için çalışır ve tüm nesnelerin kaldırılmasını içerir. Sanki bir ön koşulmuş gibi, programdaki her şeyi temizleyin.

Butonun durumunu bir değişkende saklamaya çalıştım ama göstergelerde fark ettiğim gibi TF değiştirilirse sıfırlanıyorlar.

Expert Advisor'da böyle bir şey yok, dahili değişkenlerin değeri orada sıfırlanmıyor. Gösterge bazı değerleri hesaplarsa ve bunları dahili değişkenlere kaydederse, TF'yi değiştirirken sıfırlanacakları ortaya çıkıyor. Neden böyle ve nasıl aşılır.

 
makssub # :

Kusura bakmayın yine çarpık yazıyorum. Tekrar deneyeceğim)

Açık siparişlerin bir ızgarası var. Mevcut fiyata en yakın emrin açılış fiyatını (OrderOpenPrice) bulmam gerekiyor. Izgarayı oluşturmaya devam etmek için, aksi takdirde neredeyse kaotik bir şekilde inşa edilirler.

Numaralandırmanın nasıl yazılacağını anlıyorum ama düzgün çalışması için dilde doğru ifade edemiyorum (bir köpek gibi, her şeyi anlıyorum))

Örnekler veya örneklere bir bağlantı varsa, lütfen yazın. MQL4

İlk olarak, döngüden önceki fark 1000'dir. Döngüde, açılış fiyatı eksi cari fiyat modulo farktan küçükse, fark alınan değere eşittir ve bilet bir değişkende saklanır.
 
Igor Makanu # :

Bir yapıcı çağrısının bir yöntem/işlev çağrısından nasıl farklı olduğunu anlarsınız.


Ve bu arada, bir nesne yaratıldığında çağrısının dolaylı olarak gerçekleşmesi dışında nasıl farklıdır?

 
void ClosseAll()
{
   for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
  {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
     {
       if (OrderType() == OP_BUY)
         { 
         if (!OrderClose(OrderTicket(), OrderLots(), Bid, slip))
             Print ( "Не удалось закрыть ордера на покупку!" );
         }
       if (OrderType() == OP_SELL)
         { 
         if (!OrderClose(OrderTicket(), OrderLots(), Ask, slip))
             Print ( "Не удалось закрыть ордер на продажу!" );
         }
     }
  }
}

Güzel gün !!!

Lütfen belirli bir düşüş seviyesine ulaşıldığında Uzman Danışman ızgarasındaki minimum ve maksimum siparişleri kapatmak için bir kod yazmama yardım edin

Minimum ve maksimum siparişlerin karını hesaplamak için iki fonksiyon yazdı

 //+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder()
{
   int max_ticket = 0 ;
   double max_ticket_profit = 0 ;
  {
   for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) 
    {
     if ( OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES)) 
     {
       if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
       {
         if (OrderType() == OP_BUY || OrderType() == OP_SELL)
        {
           if (OrderTicket() > max_ticket) max_ticket = ticket;
          {
           max_ticket_profit =  OrderProfit();
          }
        }
       }
     }
    }
  }
   return ( max_ticket_profit);
}
//+----------------------------------------------------------------------------+
//| Расчет профита минимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
double GetProfitMinOrder()
{
   int min_ticket= INT_MAX ;
   double min_ticket_profit = 0 ;
  {
   for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) 
    {
     if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))
     {
       if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic) 
        {
           if (OrderType() == OP_BUY || OrderType() == OP_SELL)
           {
             if (OrderTicket() < min_ticket)
              min_ticket = OrderTicket();
              {
               min_ticket_profit = OrderProfit(); 
              }
           }
        }
      }
    }
  }
   return (min_ticket_profit);
}

Bu siparişlerin toplamını hesaplayan bir fonksiyon yazdı. Burada sorun yok gibi görünüyor.

Soru sadece bu iki emrin nasıl kapatılacağı, işte ClosseAll() bulduğum fonksiyon.

Soru, tüm siparişleri kapatan OrderTicket() işlevi yerine nasıl

tablodaki yalnızca minimum ve maksimum siparişler için biletleri tanımlayan max_ticket ve min_ticket değişkenlerini vidalayın

Veya bu soruna SİZİN bir çözümünüz var mı?