[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 163
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
Herkese merhaba...
Lütfen bana MetaTrader 4 geçmiş dosyalarının yolunu nasıl toplayacağımı söyler misiniz? "c:\program files\metatrader 4\history\alpari-classic\" gibi
Çok teşekkürler, sergeev , sanırım anladım ...
Print("Terminal path: ", TerminalPath() + "\\history\\" + AccountServer() + "\\");
bu satır, editörün renklerde yanlış olmasına rağmen doğru yolu gösteriyor... Kodu muhtemelen bir not defterine yazmalısınız. Şaka.
Herkese iyi akşamlar!
Sergey Kovalev'in ders kitabında bir uzman buldum - takip eden bir durdurma. MetaEditor'a kopyaladım, derledim ama program çalışmıyor. Lütfen bana sebebinin ne olduğunu söyle. Belki yanlış bir şey yapıyorum.
mql ile mi yazılmış?
kodu gönder
//------------------------------------------------ -------------------- // changestoploss.mq4 // MQL4 eğitiminde örnek olarak kullanılmak üzere tasarlanmıştır. //------------------------------------------------ -------------------- harici int Tral_Stop=10; // Mah. zulüm //------------------------------------------------ --------------- 1 -- int start() // Özel. başlatma işlevi { string Symb=Sembol(); // Finans. alet //------------------------------------------------ --------------- 2 -- for(int i=1; i<=OrdersTotal(); i++) // Sipariş üzerinden döngü { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Sonraki Varsa { // Siparişlerin analizi: int İpucu=SiparişTürü(); // Sipariş türü if(OrderSymbol()!=Symb||Tip>1)continue;// Bizim siparişimiz değil double SL=OrderStopLoss(); // Seçilen siparişin SL'si. //------------------------------------------------ ------ 3 -- while(true) // Döngüyü Değiştir { çift TS=Tral_Stop; // başlangıç değeri int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);//Min. uzak if (TS<Min_Dist) // İzin verilenden az ise TS=Min_Dist; // Yeni TS değeri //------------------------------------------------ --- 4 -- bool Değiştir=yanlış; // modifiyeye atanmamış switch(İpucu) // Sipariş tipine göre { durum 0 : // Siparişi satın al if (NormalizeDouble(SL,Digits)< // Daha düşük isteniyorsa. NormalizeDouble(Teklif-TS*Puan,Rakamlar)) { SL=Teklif-TS*Noktası; // sonra değiştir string Metin="satın al"; // Satın Al için Metin Değiştir=doğru; // modifiyeye atandı. } kırmak; // Çıkış anahtarı durum 1: // Satış emri if (NormalizeDouble(SL,Digits)> // Daha yüksek isteniyorsa. NormalizeDouble(Sor+TS*Puan,Rakamlar) || NormalizeDouble(SL,Digits)==0)//veya sıfır { SL=Sor+TS*Puan; // sonra değiştir Metin="Sat"; // Satış için Metin Değiştir=doğru; // modifiyeye atandı. } } // bitiş anahtarı if (Değiştir==yanlış) // Değiştirilmediyse kırmak; // iken çık //------------------------------------------------ --- 5 -- çift TP =OrderTakeProfit(); // Seçilen siparişin TP'si. doublePrice=OrderOpenPrice(); // Fiyat seçildi. ord. int Bilet=OrderTicket(); // Seçilen numara. ord. Uyarı ("Değiştirme",Metin,Bilet". Cevap bekleniyor.."); bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Değiştirin! //------------------------------------------------ --- 6 -- if (Ans==true) // Anladım :) { Alert("Sipariş",Metin,Bilet" değiştirildi :)"); kırmak; // Değiştir döngüsünden. } //------------------------------------------------ --- 7 -- int Hata=GetLastError(); // İşe yaramadı :( switch(Error) // Önlenebilir Hatalar { case 130:Alert("Yanlış duraklar. Tekrar deneyelim."); Yeniler(); // Veriyi güncelle devam etmek; // Yolda. yineleme case 136:Alert("Fiyat yok. Yeni bir onay işareti bekleniyor.."); while(RefreshRates()==false) // Bir sonraki onay işaretine kadar Uyku(1); // Döngüde gecikme devam etmek; // Yolda. yineleme case 146:Alert("İşlem alt sistemi meşgul. Tekrar deneyelim"); Uyku(500); // Basit bir çözüm Yeniler(); // Veriyi güncelle devam etmek; // Yolda. yineleme // Kritik hatalar durum 2: Alert("Genel hata."); kırmak; // Çıkış anahtarı case 5 : Alert("Müşteri terminalinin eski versiyonu."); kırmak; // Çıkış anahtarı case 64: Alert("Hesap bloke edildi."); kırmak; // Çıkış anahtarı case 133:Alert("Ticaret yasak"); kırmak; // Çıkış anahtarı varsayılan: Alert("Bir hata oluştu ",Hata);//Diğer. hatalar } kırmak; // Değiştir döngüsünden. } // Değiştirme döngüsünün sonu. //------------------------------------------------ ------ sekiz -- } // Sipariş analizi sonu. } // Sipariş numaralandırmasının sonu. //------------------------------------------------ --------------- dokuz -- dönüş; // başlangıçtan çık() } //------------------------------------------------ -------------- on --Herkese iyi akşamlar!
Sergey Kovalev'in ders kitabında bir uzman buldum - takip eden bir durdurma. MetaEditor'a kopyaladım, derledim ama program çalışmıyor. Lütfen bana sebebinin ne olduğunu söyle. Belki yanlış bir şey yapıyorum.
Bunu kullan:
Kullanıcı değişkenlerinde şunu yazıyoruz:
Danışmanın başında şunu yazıyoruz:
// ----------------------------- Тралим ордера ------------------------------------ TrailingRyn_b(TrailingStop,TrailingStep,Proskalz,MAGIC,WaitProfit,false);Başladıktan sonra, kullanıcı rutinlerinde şunu yazıyoruz:
ModifError() gibi işlevler benim özel işlevlerimdir - sadece bir hata mesajı yazdırırlar. Bunun yerine mesajlarınızı yazın.
https://docs.mql4.com/en/indicators/iBands