MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 84
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
O zaman lütfen önceki soruma cevap ver
1) Bir dizi yapı yazmak
2) diğer işlevlere geçiş
3) bir dizi yapı elemanlarının çıkarılması ve birbirleriyle karşılaştırılması
4) bir dizi yapı yazdırın
girişin kendisi benim için bir kod biçiminde önemlidir, böylece nasıl görünmesi gerektiğini anlayabilirim
Her şey eldeki göreve bağlıdır. Görevler keyfi olarak farklı olabileceğinden, tam olarak ne gösterilmelidir?
Eh, yazacağım, zaman geçireceğim ama yazdıklarım kare. Delik üçgendir. Ve o zaman kareyi nereye itmeli?
Her şey eldeki göreve bağlıdır. Görevler keyfi olarak farklı olabileceğinden, tam olarak ne gösterilmelidir?
Eh, yazacağım, zaman geçireceğim ama yazdıklarım kare. Delik üçgendir. Ve o zaman kareyi nereye itmeli?
699 postasını ve çevresini al
bunu diğer fonksiyonlara nasıl geçireceğim ve yapının elemanını önceki elemanla nasıl karşılaştıracağım
ve böylece sırayla bir tür sipariş alıp tüm değerleri yazdırabilirim
Aradaki fark, bir sayı olmaması ve diğer kayıt kurallarının geçerli olmasıdır.
699 postasını ve çevresini al
bunu diğer fonksiyonlara nasıl geçireceğim ve yapının elemanını önceki elemanla nasıl karşılaştıracağım
ve böylece sırayla biraz sipariş alıp tüm değerleri yazdırabilirim
Aradaki fark, bir sayı olmaması ve diğer kayıt kurallarının geçerli olmasıdır.
İhtiyacınız olan tüm siparişler arasında geçiş yapmanız gerekir.
Bir sonraki gerekli sırayı belirledikten sonra diziyi 1 artırın ve bu sipariş için tüm verileri yeni hücresine yazın. Dizinin kendi hücresine , siparişin açılış saatini yazın (eğer kapalı olanları arıyorsanız, kapanış saatini). Kalan verileri yapının alanlarına girin
Döngünün bitiminden sonra diziyi artan düzende sıralayın.
Önce bunu yap. Gerisi daha fazla tartışılabilir.
Bir döngü içinde bu sorun çözülmez.
Teşekkür ederim.
//| test.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[][ 5 ];
int i;
int Magic= 444 ;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
CalcOrders();
}
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=- 1 ;
ArrayResize (orders, AccountInfoInteger ( ACCOUNT_LIMIT_ORDERS ), 10 );
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) && ( OrderType ()< 2 ))
{
count1++;
orders[count1][ 0 ].Ticket= OrderTicket ();
orders[count1][ 1 ].lot= OrderLots ();
orders[count1][ 2 ].orderopenprice= OrderOpenPrice ();
orders[count1][ 3 ].ordertype= OrderType ();
orders[count1][ 4 ].profit= OrderProfit ();
orders[count1][ 5 ].stoploss= OrderStopLoss ();
}
}
ArraySort (orders, WHOLE_ARRAY , 0 , MODE_ASCEND );
}
//+------------------------------------------------------------------+
Kodunuzu yazınıza ekledim.
Ve şimdi anlamaya başlarsan, o zaman
Kodunuzu yazınıza ekledim.
Ve şimdi anlamaya başlarsan, o zaman
1) X sipariş Y parametre numarasının bu görev için daha uygun olduğunu düşündü
2) Hesabın türüne bağlı olarak 50 veya 100'e eşitim ve başka bir şey yok
3) öyleyse say1++; her geçişte artacak ve dizi değerini alacak
1) X sipariş Y parametre numarasının bu görev için daha uygun olduğunu düşündü
2) Hesabın türüne bağlı olarak 50 veya 100'e eşitim ve başka bir şey yok
3) öyleyse say1++; her geçişte artacak ve dizi değerini alacak
1. O zaman yapı nedir?
2. "Ne gitti, ne gitti" piyasa pozisyonları dizisi için bu parametreye ihtiyacınız var... Döngüden önceki dizinin sıfır boyutu olmalıdır.
3. Her şey doğru. Başlangıçta, dizinin boyutu sıfırdır. Her yeni bulunan siparişle, dizi, ihtiyacınız olan sipariş sayısına eşit boyutta olur.
1. O zaman yapı nedir?
2. "Ne gitti, ne gitti" piyasa pozisyonları dizisi için bu parametreye ihtiyacınız var... Döngüden önceki dizinin sıfır boyutu olmalıdır.
3. Her şey doğru. Başlangıçta, dizinin boyutu sıfırdır. Her yeni bulunan siparişle, dizi, ihtiyacınız olan sipariş sayısına eşit boyutta olur.
1) ikinci boyut ayarlanmadıysa derleyici yemin eder, hemen "sınıf türünü belirtin, bilinmeyen parametreler" belirir.
2) daha sonra bot, "aralık dışı kritik hata dizisi" ile başlangıçta hemen ölecektir
3) hemen ayarlayın int sayı1=- 1 ; Sonra döngüden geçiyoruz. Burada sorun ne?
1) ikinci boyut sağlanmazsa derleyici yemin eder
2) daha sonra bot, "aralık dışı kritik hata dizisi" ile başlangıçta hemen ölecektir
3) hemen ayarlayın int sayı1=- 1 ; Burada sorun ne?
1. Size sadece boyutlardan birinin çıkarılması gerektiğini söylüyor. Tek boyutlu bir dizi bildiriyorsunuz, ancak onu iki boyutlu bir diziye yazmak istiyorsunuz. Sonuç nedir? Elbette derleyiciden bir hata alacaksınız.
2. Ölmemek için, diziyi bir döngüde doğru bir şekilde doldurmanız ve bilinmeyen bir boyuta ayarlamamanız ve sonra onu-anlamadan-ne kadar-ne kadar itmeniz gerekir.
3. Değişkeni -1 olarak ayarladınız. Ve dizinin döngüden önce sıfır boyutu olmalıdır. Burada net olmayan ne var?
Dernekler oynayalım:
- Sıfır iç hacme (sıfır dizi boyutu) sahip sönük bir balonunuz (boş dizi) olduğunu hayal edin. Bu topun içine (bir diziye) jeton eklemek istersiniz (ihtiyacınız olan siparişler). Burada, her madeni para, bir topun içinde saklamaya uygun olduğuna karar verir vermez (her biri gerekli düzen bulundu), topun iç hacmini artıracaktır (sadece madeni paranın kendisi topu gerecektir ve şaşırmanız gerekir). bununla kendiniz - dizi boyutunu 1 artırın ve ona bir izin verin).
Derneğiniz böyle.Sonunda, tüm madeni paraları bulup topun içine ittiğinizde, artık sönmeyecek - iç hacmi madeni paralar tarafından gerildi (gerekli siparişleri arama döngüsünün sonunda, dizi, bulunan gerekli siparişlerin sayısına eşit olacaktır, çünkü dizi boyutunu bulunan her gerekli siparişle birlikte artırdınız.
Şimdi madeni paraları başlangıçta lastik olan ve boyutunu değiştirebilen bir topun içine değil, sınırlı bir hacme sahip küçük bir kumbaraya koyduğunuzu hayal edin (başlangıçta dizinin boyutunu ayarladınız ve artık artırmadınız) . Ne olacak? Tüm paralar kumbaraya sığmaz. Ve her şey bir topun içinde.