MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 86
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
844 nolu mesajı tekrar buraya kod yazmamak için yeniden düzenledim
peki, sıfır boyutlu bir diziyle ilgili olarak - 0 bir tamsayı olabilir, bir boolean false değerine eşdeğer olabilir, boş olabilir veya belki de başlangıç noktası olabilir.
844 nolu mesajı tekrar buraya kod yazmamak için yeniden düzenledim
peki, sıfır boyutlu bir diziyle ilgili olarak - 0 bir tamsayı olabilir, bir boolean false'nin eşdeğeri olabilir, boş olabilir veya belki de başlangıç noktası olabilir.
Ve lütfen beni sizin için doğru gönderiye doğru kodu koymaya zorlamayın:
//| ProjectName |
//| Copyright 2012, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
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= 0 ;
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) && ( OrderType ()< 2 ))
{
count1++;
ArrayResize (orders,count1);
orders[count1- 1 ].Ticket= OrderTicket ();
orders[count1- 1 ].lot= OrderLots ();
orders[count1- 1 ].orderopenprice= OrderOpenPrice ();
orders[count1- 1 ].ordertype= OrderType ();
orders[count1- 1 ].profit= OrderProfit ();
orders[count1- 1 ].stoploss= OrderStopLoss ();
}
}
ArraySort (orders, WHOLE_ARRAY , 0 , MODE_ASCEND );
}
//+------------------------------------------------------------------+
Şimdi hangi diziyi doldurduğunuza ve hangi alana göre sıraladığınıza bir bakın. Ve en önemlisi - neden bu sıralamaya ihtiyacımız var? Bunun anlamı nedir?
Ve lütfen beni sizin için doğru gönderiye doğru kodu koymaya zorlamayın:
sıfırdan başlayarak sipariş dizisini sıralama
örneğin, 20 siparişimiz varsa ve 18'i yanlışlıkla birkaç puan artı gitti ve hemen elimle kapattım
sıfırdan başlayarak sipariş dizisini sıralama
örneğin, 20 siparişimiz varsa ve 18'i yanlışlıkla birkaç puan artı gitti ve hemen elimle kapattım
Kesinlikle bilete göre sıralamaya ihtiyacınız varsa, 2 dizi yapmanız gerekecektir. Biri bir yapılar dizisidir ve ikincisi iki boyutludur, birinci boyutta sipariş biletini ve ikinci boyutta döngü sayacının indeksini, yapı dizisinde siparişle ilgili bilgilerin altında saklandığı indeksi içerir. Ve bu dizileri aynı anda tek bir döngüde doldurun.
Bu soruyu o kadar uzun zamandır çözmeye çalışıyorsun ki, ulaşmak istediğin hedefi artık hatırlamıyorum. Evet ve muhtemelen herkes.
Hala doğru hatırlıyorsam, listedeki numaraya göre belirlenen siparişler listesinden seçim yapmanız gerekiyor. Peki bununla ilgili sorun ne??? Basit bir tek boyutlu dizi yapın, biletleri oraya koyun, sıralayın ve ardından OrderSelect( dizi[gerekli] , SELECT_BY_TICKET) ve bu kadar... o zaman bu siparişle ne istersen yap.
Kesinlikle bilete göre sıralamaya ihtiyacınız varsa, 2 dizi yapmanız gerekecektir. Biri bir yapılar dizisidir ve ikincisi iki boyutludur, birinci boyutta sipariş biletini ve ikinci boyutta döngü sayacının indeksini, yapı dizisinde siparişle ilgili bilgilerin altında saklandığı indeksi içerir. Ve bu dizileri aynı anda tek bir döngüde doldurun.
Bu soruyu o kadar uzun zamandır çözmeye çalışıyorsun ki, ulaşmak istediğin hedefi artık hatırlamıyorum. Evet ve muhtemelen herkes.
Hala doğru hatırlıyorsam, listedeki numaraya göre belirlenen siparişler listesinden seçim yapmanız gerekiyor. Peki bununla ilgili sorun ne??? Basit bir tek boyutlu dizi yapın, biletleri oraya koyun, sıralayın ve ardından OrderSelect( array[gerekli] , SELECT_BY_TICKET) ve bu kadar... o zaman bu siparişle ne istersen onu yap.
Ben de neye ihtiyacım olduğunu hatırlamıyorum. Ama yaptığı şey onun için iyi.
Pekala, ondan özellikle önce bir şey yazmasını istiyorum ve sonra yazılanlara dikkatlice bakmasını istiyorum, böylece kendisi bunun işe yaramayacağını anlar - işlevde başka bir yerel diziye ihtiyacınız var, ihtiyacınız olan sıralayın ve ancak bundan sonra genel diziyi sıralanan diziden doldurun.
Kesinlikle bilete göre sıralamaya ihtiyacınız varsa, 2 dizi yapmanız gerekecektir. Biri bir yapılar dizisidir ve ikincisi iki boyutludur, birinci boyutta sipariş biletini ve ikinci boyutta döngü sayacının indeksini, yapı dizisinde siparişle ilgili bilgilerin altında saklandığı indeksi içerir. Ve bu dizileri aynı anda tek bir döngüde doldurun.
Bu soruyu o kadar uzun zamandır çözmeye çalışıyorsun ki, ulaşmak istediğin hedefi artık hatırlamıyorum. Evet ve muhtemelen herkes.
Hala doğru hatırlıyorsam, listedeki numaraya göre belirlenen siparişler listesinden seçim yapmanız gerekiyor. Peki bununla ilgili sorun ne??? Basit bir tek boyutlu dizi yapın, biletleri oraya koyun, sıralayın ve ardından OrderSelect( dizi[gerekli] , SELECT_BY_TICKET) ve bu kadar... o zaman bu siparişle ne istersen yap.
Hayır, bunu farklı şekilde yapmanın ve diziler olmadan yapmanın birçok yolu olduğunu anlıyorum. Yapılardan biri varsa neden 2.
Çünkü basit bir dizi dizinin ilk boyutundaki değerlere göre sıralanıyor ve yapıların diziliminin nasıl sıralandığı hakkında bir fikrim yok.
Soru ilginç olsa da ... Şimdi bir dizi yapıyı sıralamayı deneyeceğim.
Çünkü basit bir dizi dizinin ilk boyutundaki değerlere göre sıralanıyor ve yapıların diziliminin nasıl sıralandığı hakkında bir fikrim yok .
Soru ilginç olsa da ... Şimdi bir dizi yapıyı sıralamayı deneyeceğim.
Çünkü basit bir dizi, dizinin ilk boyutundaki değerlere göre sıralanıyor ve yapıların diziliminin nasıl sıralandığı hakkında hiçbir fikrim yok.
Soru ilginç olsa da ... Şimdi bir dizi yapıyı sıralamayı deneyeceğim.
yani ne olduğu ve neyle yendiği hakkında hiçbir fikrim yok
ama bu konu açıldığına göre çöpe atmak saçma. Bir de sınıf dizileri var.
Bunun neden bir yapı biçiminde olduğu hakkında hiçbir fikrim yok. mq programı tek dosyaya yazılır, diziyle çalışma tek kaydırmalı kaydırmada gerçekleşir ve tek ekrana sığar. Spor adına bu durumda yapının anlamı nedir?
Evet, her şeyi spor ilgisi adına yazıyoruz. İlk önce neyin ve nasıl çalıştığını anlarız ve ancak o zaman nasıl daha verimli yazılacağını anlamaya başlarız.
Bir dizi yapıyı sıralamaya gelince: beklediğim gibi deney başarısız oldu. Derleme sırasında derleyici " ifadenin hiçbir etkisi yok " dedi.