MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 402
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
Bir grafik nesne üzerinde fare tıklama olayı
CHARTEVENT_OBJECT_CLICK
X koordinatı
Y koordinatı
Olayın meydana geldiği grafik nesnenin adı
Vay, her şey yolunda görünüyor)
Yardımın için teşekkürler!
Grafikte görüntülemek için "r" sonucunu arabelleğe nasıl bağlayacağımı bilmiyorum, lütfen bana söyleyin.
Ders kitaplarındaki örnekleri öğrenemiyorum, insanlara sordum
write - ""p"nin değeri arabelleğe yazılır ve grafikte görüntülenecektir." ve "Genellikle arabellek bir for döngüsü aracılığıyla yazılır."
ama bu bana bir şey söylemiyor!
bir sonuç sadece "r" harfi ve o kadar, onu hiçbir yerde bulamıyorum.
Bir şey daha
örneğin "r" sonucunun nasıl düzgünleştirileceği
İlginiz için teşekkür ederim!Hata nerede? Test cihazında çalışırken, işlev bekleyen siparişi siler , ancak bazen silmez. Niye ya? Çalışma prensibi şu şekildedir: Bir Alış emri TP tarafından kapatıldığında BuyLimit kaldırılır. Söylemek
Hata nerede? Test cihazında çalışırken, işlev bekleyen siparişi siler , ancak bazen silmez. Niye ya? Çalışma prensibi şu şekildedir: Bir Alış emri TP tarafından kapatıldığında BuyLimit kaldırılır. Söylemek
OrdersTotal() != OrdersHistoryTotal()
Teşekkür ederim.
Merhaba.
Stochstick'e dayalı basit bir Uzman Danışman yaptım (en tepede satıyor, en altta alıyor) ve derleyici birdenbire hata veriyor.
Birisi bana nedeninin ne olduğunu ve bu hatanın ne anlama geldiğini söyleyebilir mi? İlk başta braketi bir yere koymayı unuttuğumu düşündüm.
Ama hayır, birkaç kez kontrol ettim - parantezlerde her şey yolunda görünüyor. Yardım için çok minnettar olurum.
Derleyici hataları şunlardır: ')' - tüm kontrol yolları bir değer döndürmez Stokastik-Sinyaller-33.mq4 177 3
İşte EA'nın kendisi ve ekli mq4 dosyası:
Ayrıca buraya bir danışmanın ne kadar güzel ekleneceğini de söyleyin (renkli harflerle editörde olduğu gibi)
//+------------------------------------------- --------------------+
//| Stokastik-Sinyaller-33.mq4 |
//| Telif Hakkı 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif Hakkı 2017, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
//+------------------------------------------- --------------------+
bool New_Bar=false; // Yeni çubuk bayrağı
dış çift H_line=80; // Üst (aşırı alım) Stokastik çizgi
dış çift L_line=20; // Alt (aşırı satım) Stokastik çizgi
extern int Kayma=2; // kayma
harici int SL; // verilen siparişin SL'si
harici dahili TP; // verilen siparişin TP'si
dış çift Lts; // Verilen siparişin parti büyüklüğü
bool B_Flag=false, // SATIN AL sinyal bayrağı
S_Flag=false, // SATIŞ sinyal bayrağı
ORD_Buy=false, // Açık bir Satın Alma pozisyonunun bayrağı
ORD_Sell=yanlış; // Açık pozisyonun bayrağı Sat
bool İş=doğru; // EA'nın çalışmasına izin veren bayrak. true - kritik bir hata yok, false - var.
dize Symb; // Finansın adı. alet
int Crit_Error=1111111; // Kritik hata numarası
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
int
Toplam, // Penceredeki sipariş sayısı
İpucu=-1, // Tür seçili. siparişler (B=0,S=1)
bilet; // Sipariş numarası
çift
M_1, M_2, M_3, // 1, 2 ve 3 çubuklarda MAIN değeri
çok güzelsin; // Miktar seçilen sırayla lotlar
bool Ans_Close; // Başarılı sipariş kapatma bayrağı (1-kapalı, 0-kapalı değil)
boolAns_Open; // Başarılı sipariş açma bayrağı (1-açıldı, 0-açılmadı)
//------------------------------------------------ --------------- 1 --
// Kritik hatayı kontrol et
if(İş==yanlış) // Kritik hata
{
Alert("Kritik hata. Expert Advisor çalışmıyor.");
dönüş; // başlangıçtan çık()
}
//------------------------------------------------ --------------- 2 --
// Yeni çubuk
Fun_New_Bar(); // Fonksiyonlara erişim
if (New_Bar==false) // Bar yeni değilse..
dönüş; // ..sonra ayrılıyoruz
//------------------------------------------------ ------------- 3 --
// Siparişler için muhasebe
Sembol=Sembol(); // fin.instr'nin adı.
toplam=0; // Sipariş sayısı
for(int i=1; i<=OrdersTotal(); i++) // Sipariş üzerinden döngü
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Sonraki Varsa
{ // Siparişlerin analizi:
eğer (OrderSymbol()!=Symb)devam ederse; // Bizim Fincemiz değil. alet
Bilet=SiparişTicket(); // Seçilen numara. ord.
Tip=SiparişTürü(); // Seçilen siparişin türü.
Parti=SiparişLots(); // Parti sayısı
}
başka
{
Alert("OrderSelect() bir hata döndürdü - ",GetLastError()); // Bir sipariş seçmek mümkün değilse, o zaman ...
dönüş; // Baştan çık
}
}
//------------------------------------------------ ------------- 4 --
// Ticaret kriterleri Durum analizi
M_1=iStochastic(NULL,0,8,3,3,MODE_EMA,0,MODE_MAIN,1);// 1 bar
M_2=iStochastic(NULL,0,8,3,3,MODE_EMA,0,MODE_MAIN,2);// 2 bar
M_3=iStochastic(NULL,0,8,3,3,MODE_EMA,0,MODE_MAIN,3);// 3 bar
//------------------------------------------------ ------------- 5 --
if(M_2>=H_line) // Stokastik aşırı alım çizgisini geçerse
{
if(M_3 <= M_2 && M_2 > M_1) // Stokastik'te bir üst tepe belirdi ...
{
if(S_Flag==true) // Bir Satış pozisyonu açıksa, o zaman...
dönüş; // başlangıçtan çık()
// Satış pozisyonu açık değilse, o zaman ...
S_Flag=true; // SATIŞ sinyali olduğu bayrağını ayarlayın
B_Flag=yanlış; // SATIN AL sinyali olmadığı bayrağını ayarlayın
if(ORD_Buy==true) // Açık varsa Sipariş satın al...
{
if(Tip!=0) // Kontrol edin: Emir TİPİ açık emir BAYRAĞI ile eşleşmiyor...
{
iş=yanlış; // Expert Advisor çalışmayacak
Alert("Sipariş TİPİ, açık bir emrin BAYRAĞI ile eşleşmiyor. Çıkış başlıyor."); // Bir uyumsuzluk varsa, EA işini bitirir
dönüş; // Baştan çık
}
Ans_Close=Close_Order(Bilet,Parti,Kayma,Tip); // Açık bir Satınalma siparişini kapat
if(Ans_Close==false) // Kapatma başarısız olursa...
{
Alert("Sipariş kapatılamadı. EA çalışmayı durduruyor.\n Kritik hata numarası ", Crit_Error);
dönüş; // Çıkış başlangıcından
}
}
Ans_Open=Open_Order(Symb,Lts,SL,TP,1); // KISA BİR POZİSYON AÇ
if(Ans_Open==false) // Satışı açmak mümkün değilse, o zaman...
{
Alert("Sipariş açılamadı. EA çalışmayı durdurur.\n Kritik hata numarası ", Crit_Error);
dönüş; // Çıkış başlangıcından
} // Sat'ı açmak mümkün olsaydı, o zaman...
ORD_Sell=doğru; // KISA pozisyonun açık olduğu bayrağını ayarlayın
ORD_Buy=yanlış; // UZUN pozisyon olmadığı bayrağını ayarlayın
}
dönüş; // Baştan çık
}
//------------------------------------------------ -------------------------- 6 --
if(M_2<=L_line) // Stokastik aşırı satım çizgisini geçerse
{
if(M_3 >= M_2 && M_2 < M_1) // Alt Tepe Göründü(SİNYAL AL)
{
if(B_Flag==true) // Bir Buy pozisyonu açıksa, o zaman...
dönüş; // başlangıçtan çık()
// Al pozisyonu açık değilse, o zaman ...
B_Flag=true; // SATIN AL sinyalinin göründüğü bayrağı ayarlayın
S_Flag=yanlış; // SATIŞ sinyali olmadığı bayrağını ayarlayın
if(ORD_Sell==true) // Açık varsa. Satış emri,...
{
if(Tip!=1) // Kontrol edin: Emir TİPİ, açık emir BAYRAĞI ile eşleşmiyor...
{
iş=yanlış; // Expert Advisor çalışmayacak
Alert("Sipariş TİPİ, açık bir emrin BAYRAĞI ile eşleşmiyor. Çıkış başlıyor."); // Bir uyumsuzluk varsa, EA işini bitirir
dönüş; // Baştan çık
}
Ans_Close=Close_Order(Bilet,Parti,Kayma,Tip); // Açık bir Satış emrini kapatın
if(Ans_Close==false) // Kapatma başarısız olursa...
{
Alert("Sipariş kapatılamadı. EA çalışmayı durduruyor.\n Kritik hata numarası ", Crit_Error);
dönüş; // Çıkış başlangıcından
}
}
Ans_Open=Open_Order(Symb,Lts,SL,TP,0); // UZUN BİR POZİSYON AÇ
if(Ans_Open==false) // Buy'u açmak mümkün değilse, o zaman...
{
Alert("Sipariş açılamadı. EA çalışmayı durdurur.\n Kritik hata numarası ", Crit_Error);
dönüş; // Çıkış başlangıcından
} // Satın Al'ı açmayı başardıysak, o zaman...
ORD_Sell=yanlış; // KISA pozisyon olmadığı bayrağını ayarlayın
ORD_Buy=doğru; // UZUN bir pozisyonun açık olduğu bayrağını ayarlayın
}
dönüş; // Baştan çık
}
}
//+------------------------------------------- ------------------- 7 --
void Fun_New_Bar() // Algılama işlevi ..
{ // .. yeni çubuk
statik tarihsaat New_Time=0; // Geçerli çubuğun zamanı
New_Bar=yanlış; // Yeni çubuk yok
if(New_Time!=Time[0]) // Zamanı Karşılaştır
{
New_Time=Zaman[0]; // Şimdi zaman
New_Bar=true; // Yeni bir çubuk aldım
}
}
//------------------------------------------------ --------------- sekiz --
bool Close_Order(int F_Ticket,double F_Lot,int F_Slippage,int F_Tip) // Sipariş kapatma fonksiyonu
{
double Close_Price=0; // Emir kapanış fiyatı
süre(doğru)
{
Yeniler(); // Veriyi güncelle
if(F_Tip==0) // Sipariş Buy ise ...
Close_Price=Teklif; // Teklif kapanış fiyatı
Close_Price=Sor; // Ve eğer emir Sat ise kapanış fiyatı Ask olur.
bool Ans_Close=SiparişKapat(F_Ticket,F_Lot,Close_Price,F_Slippage); // Al veya Sat kapat
if (Ans_Close==true) // Anladım :)
dönüş(doğru); // close işlevinden çık
Crit_Error=GetLastError(); // Hata numarasını düzelt
if (Fun_Error(Crit_Error)==1) // Hata İşleme
devam etmek; // Yeniden dene
dönüş(yanlış); // Fonksiyon çıkışı
}
}
//------------------------------------------------ --------------- dokuz --
// Emirleri açma
bool Open_Order(string F_Symb,çift F_Lts,int F_SL,int F_TP,int F_Tip)
{
çift Open_Price; // Açık fiyat
string Tip_Deal; // Anlaşma yönü (Al veya Sat)
çift f_sl; // Zararı durdur emirleri
çift f_tp; // Kar almak
int bileti; // Sipariş biletini aç
while(true) // Sipariş kapatma döngüsü.
{
Yeniler(); // Veriyi güncelle
if(F_Tip==1) // Bir SATIŞ açmanız gerekiyorsa, o zaman...
{
open_price=teklif;
Tip_Deal="OP_SELL";
f_sl=NormalizeDouble(Teklif+F_SL*Puan,Rakamlar);
f_tp=NormalizeDouble(Teklif-F_TP*Point,Rakamlar);
}
//-------------------------------- BUY'ı açmanız gerekiyorsa, o zaman...
open_price=sor;
Tip_Deal="OP_BUY";
f_sl=NormalizeDouble(Teklif+F_SL*Puan,Rakamlar);
f_tp=NormalizeDouble(Teklif-F_TP*Point,Rakamlar);
Ticket=OrderSend(F_Symb,Tip_Deal,F_Lts,Open_Price,2,f_sl,f_tp);//SİPARİŞ Açma
if (Bilet > 0) // Başarılı :)
dönüş(doğru); // Fonksiyon çıkışı
Crit_Error=GetLastError(); // Hata numarasını düzelt
if (Fun_Error(Crit_Error)==1) // Hata İşleme
devam etmek; // Yeniden dene
dönüş(yanlış); // Fonksiyon çıkışı
}
}
//------------------------------------------------ --------------- on --
int Fun_Error(int Error) // Hata İşleme Fonksiyonu
{
geçiş (Hata)
{ // Önlenebilir hatalar
case 4: Alert("Ticaret sunucusu meşgul. Tekrar deneyelim..");
uyku(3000); // Basit bir çözüm
dönüş(1); // Fonksiyon çıkışı
case 135:Alert("Fiyat değişti. Tekrar deneyelim..");
Yeniler(); // Veriyi güncelle
dönüş(1); // Fonksiyon çıkışı
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
dönüş(1); // Fonksiyon çıkışı
case 137:Alert("Aracı meşgul. Tekrar deniyor..");
uyku(3000); // Basit bir çözüm
dönüş(1); // Fonksiyon çıkışı
case 146:Alert("Ticaret alt sistemi meşgul. Tekrar deneniyor..");
Uyku(500); // Basit bir çözüm
dönüş(1); // Fonksiyon çıkışı
// Kritik hatalar
durum 2: Alert("Genel hata.");
dönüş(0); // Fonksiyon çıkışı
case 5: Alert("Eski terminal versiyonu.");
iş=yanlış; // artık çalışma
dönüş(0); // Fonksiyon çıkışı
case 64: Alert("Hesap bloke edildi.");
iş=yanlış; // artık çalışma
dönüş(0); // Fonksiyon çıkışı
case 133:Alert("Ticaret yasaktır.");
dönüş(0); // Fonksiyon çıkışı
case 134:Alert("İşlemi tamamlamak için yeterli para yok.");
dönüş(0); // Fonksiyon çıkışı
varsayılan: Alert("Bir hata oluştu",Hata); // Diğer seçenekler
dönüş(0); // Fonksiyon çıkışı
}
}
//------------------------------------------------ -------------- on bir --
Birisi bana nedeninin ne olduğunu ve bu hatanın ne anlama geldiğini söyleyebilir mi? İlk başta braketi bir yere koymayı unuttuğumu düşündüm.
Ama hayır, birkaç kez kontrol ettim - parantezlerde her şey yolunda görünüyor. Yardım için çok minnettar olurum.
Derleyici hataları şunlardır: ')' - tüm kontrol yolları bir değer döndürmez Stohastic-Signals-33.mq4 177 3
')' - tüm kontrol yolları bir değer döndürmez Stokastik-Sinyaller-33.mq4 210 3
//------------------------------------------------ --------------- sekiz --
bool Close_Order(int F_Ticket,double F_Lot,int F_Slippage,int F_Tip) // Sipariş kapatma fonksiyonu
{
double Close_Price=0; // Emir kapanış fiyatı
süre(doğru)
{
Yeniler(); // Veriyi güncelle
if(F_Tip==0) // Sipariş Buy ise ...
Close_Price=Teklif; // Teklif kapanış fiyatı
Close_Price=Sor; // Ve eğer emir Sat ise kapanış fiyatı Ask olur.
bool Ans_Close=SiparişKapat(F_Ticket,F_Lot,Close_Price,F_Slippage); // Al veya Sat kapat
if (Ans_Close==true) // Anladım :)
dönüş(doğru); // close işlevinden çık
Crit_Error=GetLastError(); // Hata numarasını düzelt
if (Fun_Error(Crit_Error)==1) // Hata İşleme
devam etmek; // Yeniden dene
dönüş(yanlış); // Fonksiyon çıkışı
}
}
MetaEditor'da Derle düğmesini tıklayın ve hata mesajını okuyun - bir satır numarası ve konum numarası var
Program kodunu SRC düğmesiyle girin - bu şekilde yerel okuyucular daha çok beğeniyor !!! ve uzun ayak beziniz - BRRRRR
Buton mesaj metnine kaynak kodu eklemek için tasarlanmıştır. Tıklandığında, kodu yapıştırmanız gereken boş bir pencere belirir ve ardından Ekle düğmesini tıklayın.
MetaEditor'da Derle düğmesini tıklayın ve hata mesajını okuyun - bir satır numarası ve konum numarası var
Program kodunu SRC düğmesiyle girin - bu şekilde yerel okuyucular daha çok beğeniyor !!! ve uzun ayak beziniz - BRRRRR
Düğme, kaynak kodunu mesaj metnine eklemek için tasarlanmıştır. Tıklandığında, kodu yapıştırmanız gereken boş bir pencere belirir ve ardından Ekle düğmesini tıklayın.
Teşekkür ederim.