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

 
makssub # :

Bir örnek yazın, yoksa biraz kafam karıştı. Zor değilse. teşekkürler

sipariş döngüsünde:

 if (OrderOpenPrice()<previous_value)
   {
   previous_value=OrderOpenPrice();
   nearest_order=OrderTicket();
   }

döngüden önce, önceki_değer=DBL_MAX'ı en yakın_sıra=0'ı başlat

 
Taras Slobodyanik # :

sipariş döngüsünde:

döngüden önce, önceki_değer=DBL_MAX'ı en yakın_sıra=0'ı başlat

Aynen öyle. Teşekkür ederim. İşler

 
Taras Slobodyanik # :

sipariş döngüsünde:

döngüden önce, önceki_değer=DBL_MAX'ı en yakın_sıra=0'ı başlat

DBL_MAX kategorik olarak öyle.)
 
Valeriy Yastremskiy # :
DBL_MAX kategorik olarak öyle.)

ana işler)

Maksimum OrderOpenPrice ile OP_BUY nasıl bulunur ve OrderProfit'i nasıl belirlenir.
Onları hiçbir şekilde bir araya getiremiyorum, her şey jo ile çalışıyor ... Sadece bir örnek verebilirseniz) Teşekkürler)

 
makssub # :

ana işler)

Maksimum OrderOpenPrice ile OP_BUY nasıl bulunur ve OrderProfit'i nasıl belirlenir.
Onları hiçbir şekilde bir araya getiremiyorum, her şey jo ile çalışıyor ... Sadece bir örnek verebilirseniz) Teşekkürler)

previous_value= 0 ;

if (OrderOpenPrice()>previous_value)
   {
   previous_value=OrderOpenPrice();
   profit_order=OrderProfit();
   }
 
MakarFX # :

Sadece her şeyi yaptığımı söylemek istedim.

Ama hepsini daha kompakt bir şekilde yaptınız. senin seçeneğini alıyorum)

teşekkürler

 
Bir mql5 programında bir dosya ile dosyayı diske yazmadan nasıl çalışılır, ancak hızlandırmak için yalnızca RAM'de çalışır. Bir mql5 programından bilgisayarımdaki bir programa veri aktarmak istiyorum. Ağ işlevleri olmadan mümkün mü? Mutlaka bir dosya, bir dizi veya bir değişken mümkün değildir, daha da iyisi. Python entegrasyon modülü ve web soketi olmak üzere sadece iki yol biliyorum, ancak böyle bir şey yapmak mümkün mü?
 

OnDeInit() içindeki bir döngüdeki tüm nesneleri siliyorum (sinyal çubuklarını ve bir düğmeyi gösteren oklar):

 const int obj_total= ObjectsTotal ();

Print (" ObjectsTotal ",obj_total);

for ( int i= 0 ; i < obj_total ; i++){
 Print (" ObjectName ", ObjectName (i),", i = ",i);
 ObjectDelete ( ObjectName (i));
}

ObjectsDeleteAll() olduğunun farkındayım, ancak yine de bunu bir döngü üzerinden yaparsanız, birinden sonra nesnelerin yalnızca yarısı silinir. Aslında, işte döngünün işi ve bunun neden olduğunu anlamıyorum:

 2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 20
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 19
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 18
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 17
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 16
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 15
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 14
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 13
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 12
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName , i = 11
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName button1, i = 10
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowUp0008, i = 9
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowUp0006, i = 8
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowUp0004, i = 7
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowUp0002, i = 6
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowUp0000, i = 5
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowDown0008, i = 4
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowDown0006, i = 3
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowDown0004, i = 2
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowDown0002, i = 1
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectName ArrowDown0000, i = 0
2021.09 . 30 04 : 47 : 30.462      2021.01 . 04 03 : 56 : 45   test EURUSD,M1: ObjectsTotal 21
 
Nerd Trader # :

OnDeInit() içindeki bir döngüdeki tüm nesneleri siliyorum (sinyal çubuklarını ve bir düğmeyi gösteren oklar):

ObjectsDeleteAll() olduğunun farkındayım, ancak yine de bunu bir döngü üzerinden yaparsanız, birinden sonra nesnelerin yalnızca yarısı silinir. Aslında, işte döngünün işi ve bunun neden olduğunu anlamıyorum:

Silme döngüsü tersine çevrilmelidir:

 for ( int i=obj_total- 1 ; i>= 0 ; i--)

ve bu sadece grafik nesnelerin silinmesi için değil, genel olarak terminal listelerinde bulunan tüm nesnelerin silinmesi için de geçerlidir.

 
Nerd Trader # :

OnDeInit() içindeki bir döngüdeki tüm nesneleri siliyorum (sinyal çubuklarını ve bir düğmeyi gösteren oklar):

ObjectsDeleteAll() olduğunun farkındayım, ancak yine de bunu bir döngü üzerinden yaparsanız, birinden sonra nesnelerin yalnızca yarısı silinir. Aslında, işte döngünün işi ve bunun neden olduğunu anlamıyorum:

ve eğer böyle denerseniz - sadece tüm isimleri girmeniz yeterlidir

 string    m_name[]= { "button1" , "ArrowUp0008" , "ArrowDown0008" , "ArrowUp0006" , "ArrowDown0006" };
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   for ( int i= 0 ; i< ArraySize (m_name); i++)
     {
       ObjectDelete ( 0 ,m_name[i]);
     }
//---
  }
//+------------------------------------------------------------------+