MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 70
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
OrdersTotal() işleviyle siparişleri sıralarken neden -1 yazdıklarını söyleyin.
Örnek: for (i=OrdersTotal()-1 ;i>=0; i--)
neden sadece OrdersTotal() değil?
Bu fonksiyondaki emir sayısı 0'dan mı yoksa 1'den mi başlıyor? Yani, bir sipariş varsa, OrdersTotal() 0'a mı yoksa 1'e mi eşit?
OrdersTotal() işleviyle siparişleri sıralarken neden -1 yazdıklarını söyleyin.
Örnek: for (i=OrdersTotal()-1 ;i>=0; i--)
neden sadece OrdersTotal() değil?
Bu fonksiyondaki emir sayısı 0'dan mı yoksa 1'den mi başlıyor? Yani, bir sipariş varsa, OrdersTotal() 0'a mı yoksa 1'e mi eşit?
OrdersTotal() miktarı gösterir, yani bir sipariş varsa, OrdersTotal() bire eşit olacaktır, ancak sipariş listesinde rapor sıfırdan başlar.
0 - ilk sipariş
1 - ikinci sıra
2 - üçüncü
vb.
Bu nedenle, numaralandırmaya listenin sonundan başlarsak, toplam OrdersTotal() sipariş sayısından bir çıkarmamız gerekir.
OrdersTotal() miktarı gösterir, yani bir sipariş varsa, OrdersTotal() bire eşit olacaktır, ancak sipariş listesinde rapor sıfırdan başlar.
0 - ilk sipariş
1 - ikinci sıra
2 - üçüncü
vb.
Bu nedenle, numaralandırmaya listenin sonundan başlarsak, toplam OrdersTotal() sipariş sayısından bir çıkarmamız gerekir.
ama ilk ifadede bir çıkarmazsak bu bir hata olmayacak, bir sıramız varsa iki iterasyon gerçekleşecek. Tek seferde yapılması gereken her şey yapılabiliyorken gerçekten iki tekrar yapmaya gerek yok mu yani -1, doğru mu anladım?
Evet doğru
Tam olarak doğru değil.
Önek azaltma kullanabilirsiniz.
Madem bir sürü siparişimiz var, neden doğru olanı alıp hemen çekemiyoruz? (gerekli) ve onlarla ne istersen yap? örneğin sipariş (i-4)
Çünkü sadece MT4 test cihazında çalışacaktır. Veya yalnızca bir sembol ve bu danışmandan yalnızca biri ile işlem yaparken.
Peki, düşünürseniz, danışman her çift için aynıdır, sadece hesap bakiyesi ortaktır (geçiş en son olacaktır)
filtre, danışman tarafından açılan piyasa türü koşulunu karşılayan tüm siparişlerden geçer - sembol eşleşirse
ne öyle değil mi
Peki, düşünürseniz, danışman her çift için aynıdır, sadece hesap bakiyesi ortaktır (geçiş en son olacaktır)
filtre, danışman tarafından açılan piyasa türü koşulunu karşılayan tüm siparişlerden geçer - sembol eşleşirse
ne öyle değil mi
Eh, neyin yanlış olduğunu zaten yukarıda açıkladınız. Yalnızca kendi siparişlerinizi sayın ve toplam sayı için dizi dizinlerini alın - boş hücreler içeren bir dizi elde edersiniz. Ve neden gerekli? Ve dizi boş değilse, o zaman "ekstra" alanlarda - gereksiz çöpler, hatalara yol açar, ancak paradan bahsediyoruz.
tamam hadi yapalım
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int count1= 0 ;
void CalcOrders()
{
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) && ( OrderType ()< 2 ))
orders[count1].Ticket= OrderTicket ();
orders[count1].lot= OrderLots ();
orders[count1].orderopenprice= OrderOpenPrice ();
orders[count1].ordertype= OrderType ();
orders[count1].profit= OrderProfit ();
orders[count1].stoploss= OrderStopLoss ();
count1++;
}
}
Sağ?