Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 486
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
108 numaranızı alırsanız, maksimum değeri 151 - 108 ^ 151 \u003d 1.11426138071861e + 307'nin gücüne yükseltebilirsiniz.
108^152=1.20340229117609e+309 - MKL'de programlama için zaten çok fazla, 108^4096'dan bahsetmiyorum bile
Bu tür ölçeklere ne gibi hesaplamalar gerekiyordu?
Fiyat hareketi analitiği ve NLP dikkat yönetimini sentezlemeye çalışıyorum ve beyin otomatik pilotta :)
MQL4 öğrenmeye başladım ve bir siparişin nasıl seçildiğini anlayamıyorum
öğreticiden:
for(int i=1; i<=OrdersTotal(); i++) // Sipariş üzerinden döngü
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Sonraki Varsa
{
(OrderSymbol()!= Symb) devam ederse;
Bunu anlıyorum: i=1 için, i<= Sipariş sayısı
i-1 konumunda Seçilmiş sıra (yani sıra #0) mevcutsa
Sembolle karşılaştırın
Bundan sonra, i'ye 1(i++) ekleyin ve yeni bir yineleme başlatın
Yorumu anlayamıyorum // Bir sonraki varsa (ne demek istiyorsun: sonraki konumda mı yoksa şu anda seçili olan bu sırada mı?)
Lütfen Rusça açıklayın.
Bir arama emri varsa muhtemelen bir vvilu vardı, yani. i-1 sayısı altında var, sonra bir sonraki koşula geçiyoruz.
Her zaman sıfır sayıda (ve -1 olan) bir sipariş bulur. "Bir sonraki" sırayı belirlemenin bazı vahşi yöntemleri gerçekten yanıltıcıdır...
Her zaman sıfır sayıda (ve -1 olan) bir sipariş bulur. "Bir sonraki" sırayı belirlemenin bazı vahşi yöntemleri gerçekten yanıltıcıdır...
sipariş yoksa, bu yapı ile:
sonraki duruma geçmeyecektir.
çünkü emir yok ve -1 (bizim durumumuzda = 0)
Tabii ki böyle yazmak alışılmış bir şey değil ve neden olduğu da belli değil,
böyle değil:
Merhaba beyler progers, bir sorum var, kodun bir kısmını hesap bakiyesinin yüzdesini kapatmayı öğretemiyorum. kapanıyor ama yüzde değil, ama hepsi bir anda ve piyasada olan tüm emirler.Belli bir emri ve hesaplanan mevduat bakiyesinin yüzdesini kapatmam gerekiyor.Bana neyi yanlış yaptığımı söyle?
dış çift Yüzde = 2.0;
dış int kayma = 2;
çift durak;
OnStart() geçersiz
{
if (Rakamlar == 3 || Basamaklar == 5)
{
kayma *= 10;
}
for(int i = OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if(stop==HesapBalance()/100*Yüzde)
stop=HesapDenge()/100*Yüzde;
if(durdur<=HesapBalance())
{
OrderClose(OrderTicket(),OrderLots(),Ask,Kayma,Aqua);
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Aqua);
}//if(ostop<=AccountBalance())
}//if(ostop==AccountBalance()/100*Yüzde)
}//if (OrderSymbol() == Symbol() )
}//if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
}//for(int i = OrdersTotal()-1; i>=0; i--)
dönüş;
}//geçersiz OnStart()
//+------------------------------------------- ------------------
Bu nasıl?
ve bu:
asla yerine getirilemez
Bu yüzden:
her zaman her siparişte çalışacak.
SONUÇ: Her şey yanlış.
İşlevinin düşünülmesi gerekiyor, hızlı bir cevabım yok.
ama sadece başlamak için:
sipariş yoksa, o zaman bu yapı ile:
sonraki duruma geçmeyecektir.
çünkü emir yok ve -1 (bizim durumumuzda = 0)
Tabii ki böyle yazmak alışılmış bir şey değil ve neden olduğu da belli değil,
böyle değil:
Evet okuyunca ben de neden hemen i=0 koymuyorsunuz diye düşündüm, daha basit ve anlaşılır görünüyor.
İşte betiğin tüm kodu, bakın, belki yazarın i=1 değil de i=0 yazmamasının iyi nedenleri vardır, bu kadarını anlamıyorum ve göremiyorum, ama sadece ihtiyacım var iş mekanizmasını anlamak, böylece daha sonra soru kalmayacak