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
Teşekkürler mntiwana ve malden. ama neden tekrar satın almam gerekiyor? Bu göstergeleri mesaj olarak gönderebilir misiniz?
Bu göstergeyi satın aldığınızda aldığınız bağlantıyla birlikte orijinal e-postayı support@forex-tsd.com adresine gönderin ve her şey doğruysa, güncellenmiş bir sürüm alacaksınız.
Pekala. ancak nmc'den önceki gösterge, nmc'den sonrakinden daha ilginç görünüyor. Sadece benim hislerim mi?
Pekala. ancak nmc'den önceki gösterge, nmc'den sonrakinden daha ilginç görünüyor. Sadece hislerim mi?
"nmc" sürümünün sonuçları, "nmc öncesi" sürüme kıyasla hiç değişmez. "nmc", "yeni metatrader uyumlu" anlamına gelir
Herşey gönlünce olsun
Niye ya ?
Mladen,
Lütfen bana bu ea'nın neden çalışmadığını söyleyebilir misiniz?
//----------------------- EA PARAMETRE
dış dize
Expert_Name = "---------- Bekleyen Sipariş EA v1",
Expert_Name2 = "---------- Mevcut fiyat seti için EntryLevel = 0";
dış çift
Giriş Seviyesi = 1.8600,
Mesafe = 100,
StopLoss = 50,
Kâr Al = 50,
İzleyenDurdur = 50;
dış dize
Order_Setting = "---------- Sipariş Ayarı";
dış int
Deneme Sayısı = 5,
kayma = 5,
SihirliSayı = 1234;
dış dize
MM_Parameters = "---------- Para Yönetimi";
dış çift
lot =0.01;
dış bool
MM = false, //Para Yönetimini kullan veya kullanma
AccountIsMicro = true; //Mikro Hesap kullan veya kullanma
dış int
Risk = 0; //10%
dış dize
Testing_Parameters= "---------- Geri Test Parametresi";
dış bool
Show_Settings = doğru;
//----------------------- KÜRESEL DEĞİŞKEN
statik int
Zaman Çerçevesi = 0;
sicim
TicketComment = "PendingOrderEA v2",
SonTicaret;
bool
TradeAllow = doğru,
EntryAllow = doğru;
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//----------------------- SİHİRLİ NUMARA VE BİLET YORUMU OLUŞTUR
//----------------------- KAYNAK: PENGIE
MagicNumber = subGenerateMagicNumber(MagicNumber, Symbol(), Period());
TicketComment = StringConcatenate(TicketComment, "-", Symbol(), "-", Period());
//-------------------------- EA AYARI ŞEKİLDE GÖSTERİN
//----------------------- KAYNAK : CODERSGURU
if(Show_Settings) subPrintDetails();
başka Yorum("");
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----------------------- KULLANICI ZAMAN ÇERÇEVESİNİ DEĞİŞTİRİRKEN YENİDEN SAYIM YAPILMASINI ÖNLEYİN
//----------------------- KAYNAK : CODERSGURU
TimeFrame=Periyot();
dönüş(0);
}
//+------------------------------------------- -------------------+
//| |
//+------------------------------------------- -------------------+
int başlangıç()
{
çift
//Seviye satın al,
Satış Seviyesi;
int
cnt,
bilet,
Toplam;
//----------------------- AL ve SATIŞ FİYATINI BELİRLE
if(EntryLevel==0) EntryLevel = Teklif;
// BuyLevel = GirişSeviyesi + Mesafe*Noktası;
SellLevel = GirişSeviyesi - Mesafe*Noktası;
// if((BuyLevel-Ask)<10*Puan || (Bid-SellLevel)<10*Puan)
// {
// Comment("Geçersiz Giriş Fiyatı veya Mesafe");
// dönüş(0);
// }
//----------------------- PARA YÖNETİMİNİ KULLANIYORSANIZ ÇOK AYARLAYIN
if(MM) Parti = subLotSize();
//----------------------- GİRİŞ
//----------------------- SİHİRLİ SAYI VE SEMBOL ÜZERİNE TOPLAM SİPARİŞ TABAN
toplam = altToplamTicaret();
//-------------------------- SADECE 1 KEZ SİPARİŞ VER
if(Ticaret İzni)
{
//----------------------- TİCARET YOKSA
if(toplam<1 && EntryAllow)
{
bilet = OrderSend(Symbol(),OP_SELLSTOP,Lots,SellLevel,Slippage,SellLevel+StopLoss*Point,SellLevel-TakeProfit*Point,TicketComment,MagicNumber,0,Red);
// bilet = OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyLevel,Slippage,BuyLevel-StopLoss*Puan,BuyLevel+TakeProfit*Puan,TicketComment,MagicNumber,0,Green);
EntryAllow = yanlış;
dönüş(0);
}
if(toplam==1)
{
subDeleteOrder();
TradeAllow = yanlış;
}
}
//----------------------- İZLEME DUR BÖLÜMÜ
if(TrailingStop>0 && subTotalTrade()>0){
toplam = SiparişlerToplam();
for(cnt=0;cnt<toplam;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SAT &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
subTrailingStop(OrderType());
dönüş(0);
}
}
}
dönüş(0);
}
//----------------------- PROGRAMI SONLANDIR
//+------------------------------------------- -------------------+
//| FONKSİYON TANIMLARI
//+------------------------------------------- -------------------+
//----------------------- PARA YÖNETİM FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
çift altLotSize()
{
çift lotMM = MathCeil(AccountFreeMargin() * Risk / 1000) / 100;
if(AccountIsMicro==false) //normal hesap
{
if(lotMM < 0.1) lotMM = Lot;
if((lotMM > 0,5) && (lotMM < 1)) lotMM = 0,5;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
başka //mikro hesap
{
if(lotMM < 0.01) lotMM = Lot;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
dönüş (lotMM);
}
//----------------------- SEMBOL VE SİHİRLİ SAYI İŞLEVİNE GÖRE SİPARİŞ SAYISI
int altToplamTicaret()
{
int
cnt,
toplam = 0;
for(cnt=0;cnt<SiparişlerToplam();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SAT &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber) toplam++;
}
dönüş(toplam);
}
//----------------------- SİPARİŞ İŞLEVİNİ SİL
geçersiz subDeleteOrder()
{
int
cnt,
toplam = 0;
toplam = SiparişlerToplam();
for(cnt=toplam-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
geçiş(SiparişTürü())
{
// durum OP_BUYLIMIT :
// OP_BUYSTOP durumu:
durum OP_SELLLIMIT:
durum OP_SELLSTOP :
OrderDelete(OrderTicket());
}
}
}
}
//----------------------- İZLEME DURDURMA FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
//----------------------- DEĞİŞTİRİLDİ: YANGIN
void subTrailingStop(int Type)
{
if(Type==OP_BUY) // satın alma pozisyonu açıldı
{
if(Bid-OrderOpenPrice()>Point*TrailingStop &&
OrderStopLoss()<Teklif Noktası*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
dönüş(0);
}
}
if(Type==OP_SELL) // satış pozisyonu açıldı
{
if(OrderOpenPrice()-Ask>Point*TrailingStop)
{
if(OrderStopLoss()>Ask+Point*TrailingStop || OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
dönüş(0);
}
}
}
}
//----------------------- SEMBOL VE ZAMAN ÇERÇEVESİ FONKSİYONUNA GÖRE SİHİRLİ SAYI TABANI OLUŞTURMA
//----------------------- KAYNAK: PENGIE
//----------------------- DEĞİŞTİRİLDİ: YANGIN
int subGenerateMagicNumber(int MagicNumber, dize sembolü, int timeFrame)
{
int sembol = 0;
if (sembol == "EURUSD") isimbol = 1;
else if (sembol == "GBPUSD") isymbol = 2;
else if (sembol == "USDJPY") isymbol = 3;
else if (sembol == "AUDCAD") isymbol = 4;
else if (sembol == "AUDUSD") isymbol = 5;
else if (sembol == "USDCAD") isimbol = 6;
else if (sembol == "EURGBP") isymbol = 7;
else if (sembol == "EURJPY") isymbol = 8;
else if (sembol == "EURCHF") isymbol = 9;
else if (sembol == "EURAUD") isymbol = 10;
else if (sembol == "EURCAD") isymbol = 11;
else if (sembol == "GBPUSD") isymbol = 12;
else if (sembol == "GBPJPY") isymbol = 13;
else if (sembol == "GBPCHF") isymbol = 14;
else if (sembol == "GBPAUD") isymbol = 15;
else if (sembol == "GBPCAD") isymbol = 16;
başka simge = 17;
if(isymbol<10) MagicNumber = MagicNumber * 10;
dönüş (StrToInteger(StringConcatenate(MagicNumber, isymbol, timeFrame)));
}
//----------------------- YORUM YAZDIR FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
geçersiz subPrintDetails()
{
string sYorum = "";
string sp = "-------------------------------------------\n";
string NL = "\n";
sYorum = sp;
sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + " | ";
sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + NL;
sYorum = sYorum + sp;
sComment = sComment + "Lots=" + DoubleToStr(Lots,2) + " | ";
sComment = sComment + "MM=" + subBoolToStr(MM) + " | ";
sComment = sComment + "Risk=" + DoubleToStr(Risk,0) + "%" + NL;
sYorum = sYorum + sp;
Yorum(larYorum);
}
//----------------------- BOOLEN DEĞİŞKENİ DİZE FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
dize subBoolToStr ( bool değeri)
{
if(değer) döndürme ("Doğru");
başka bir dönüş ("Yanlış");
}
//-------------------------- SON İŞLEV
Şimdiden teşekkürler.
Jo
mladen,
umarım iyisindir. aşağıdaki derlemede iki hata var. nazikçe yardımcı
mladen, umarım iyisindir. aşağıdaki derlemede iki hata var. nazikçe yardımcı
şeker adam752
Şimdi deneyin: rstochalert-4tf_1.mq4
Sevgili MLADEN,
(sorularım her zaman yardım kodlamaktan çok yardımı onarmakla ilgilidir)
anlamak için bir ricam var.....eklediğim 2 resimde bakın 1 hata ile 70 ve 72. satıra ait 2 uyarı var.... uyarı kaldırıldı......sorum şu ki...bu şekilde yapmak doğru mu....ve 80. satırın gerisinde kalan 2. uyarı ile ilgili ikinci soru...olduğu gibi bırakılırsa sorun olmaz çalışır durumda mı?
Saygılarımızla
mtivana
Sevgili MLADEN,
(sorularım her zaman yardım kodlamaktan çok yardımı onarmakla ilgilidir)
anlamak için bir ricam var.....eklediğim 2 resimde bakın 1 hata ile 70 ve 72. satıra ait 2 uyarı var.... uyarı kaldırıldı......sorum şu ki...bu şekilde yapmak doğru mu....ve 80. satırın gerisinde kalan 2. uyarı ile ilgili ikinci soru...olduğu gibi bırakılırsa sorun olmaz çalışır durumda mı?
Saygılarımızla
mtivanamtivana
bu şekilde her şey yolunda. değişiklikleri yaptın tamam
mntiwana bu şekilde her şey yolunda. değişiklikleri yaptın tamam
Meraklı bir öğrenciyi cesaretlendirdiğiniz için çok teşekkürler büyük patron.
en iyi dileklerimle
Mladen,
Lütfen bana bu ea'nın neden çalışmadığını söyleyebilir misiniz?
//----------------------- EA PARAMETRE
dış dize
Expert_Name = "---------- Bekleyen Sipariş EA v1",
Expert_Name2 = "---------- Mevcut fiyat seti için EntryLevel = 0";
dış çift
Giriş Seviyesi = 1.8600,
Mesafe = 100,
StopLoss = 50,
Kâr Al = 50,
İzleyenDurdur = 50;
dış dize
Order_Setting = "---------- Sipariş Ayarı";
dış int
Deneme Sayısı = 5,
kayma = 5,
SihirliSayı = 1234;
dış dize
MM_Parameters = "---------- Para Yönetimi";
dış çift
lot =0.01;
dış bool
MM = false, //Para Yönetimini kullan veya kullanma
AccountIsMicro = true; //Mikro Hesap kullan veya kullanma
dış int
Risk = 0; //10%
dış dize
Testing_Parameters= "---------- Geri Test Parametresi";
dış bool
Show_Settings = doğru;
//----------------------- KÜRESEL DEĞİŞKEN
statik int
Zaman Çerçevesi = 0;
sicim
TicketComment = "PendingOrderEA v2",
SonTicaret;
bool
TradeAllow = doğru,
EntryAllow = doğru;
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//----------------------- SİHİRLİ NUMARA VE BİLET YORUMU OLUŞTUR
//----------------------- KAYNAK: PENGIE
MagicNumber = subGenerateMagicNumber(MagicNumber, Symbol(), Period());
TicketComment = StringConcatenate(TicketComment, "-", Symbol(), "-", Period());
//-------------------------- EA AYARI ŞEKİLDE GÖSTERİN
//----------------------- KAYNAK : CODERSGURU
if(Show_Settings) subPrintDetails();
başka Yorum("");
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----------------------- KULLANICI ZAMAN ÇERÇEVESİNİ DEĞİŞTİRİRKEN YENİDEN SAYIM YAPILMASINI ÖNLEYİN
//----------------------- KAYNAK : CODERSGURU
TimeFrame=Periyot();
dönüş(0);
}
//+------------------------------------------- -------------------+
//| |
//+------------------------------------------- -------------------+
int başlangıç()
{
çift
//Seviye satın al,
Satış Seviyesi;
int
cnt,
bilet,
Toplam;
//----------------------- AL ve SATIŞ FİYATINI BELİRLE
if(EntryLevel==0) EntryLevel = Teklif;
// BuyLevel = GirişSeviyesi + Mesafe*Noktası;
SellLevel = GirişSeviyesi - Mesafe*Noktası;
// if((BuyLevel-Ask)<10*Puan || (Bid-SellLevel)<10*Puan)
// {
// Comment("Geçersiz Giriş Fiyatı veya Mesafe");
// dönüş(0);
// }
//----------------------- PARA YÖNETİMİNİ KULLANIYORSANIZ ÇOK AYARLAYIN
if(MM) Parti = subLotSize();
//----------------------- GİRİŞ
//----------------------- SİHİRLİ SAYI VE SEMBOL ÜZERİNE TOPLAM SİPARİŞ TABAN
toplam = altToplamTicaret();
//-------------------------- SADECE 1 KEZ SİPARİŞ VER
if(Ticaret İzni)
{
//----------------------- TİCARET YOKSA
if(toplam<1 && EntryAllow)
{
bilet = OrderSend(Symbol(),OP_SELLSTOP,Lots,SellLevel,Slippage,SellLevel+StopLoss*Point,SellLevel-TakeProfit*Point,TicketComment,MagicNumber,0,Red);
// bilet = OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyLevel,Slippage,BuyLevel-StopLoss*Puan,BuyLevel+TakeProfit*Puan,TicketComment,MagicNumber,0,Green);
EntryAllow = yanlış;
dönüş(0);
}
if(toplam==1)
{
subDeleteOrder();
TradeAllow = yanlış;
}
}
//----------------------- İZLEME DUR BÖLÜMÜ
if(TrailingStop>0 && subTotalTrade()>0){
toplam = SiparişlerToplam();
for(cnt=0;cnt<toplam;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SAT &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
subTrailingStop(OrderType());
dönüş(0);
}
}
}
dönüş(0);
}
//----------------------- PROGRAMI SONLANDIR
//+------------------------------------------- -------------------+
//| FONKSİYON TANIMLARI
//+------------------------------------------- -------------------+
//----------------------- PARA YÖNETİM FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
çift altLotSize()
{
çift lotMM = MathCeil(AccountFreeMargin() * Risk / 1000) / 100;
if(AccountIsMicro==false) //normal hesap
{
if(lotMM < 0.1) lotMM = Lot;
if((lotMM > 0,5) && (lotMM < 1)) lotMM = 0,5;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
başka //mikro hesap
{
if(lotMM < 0.01) lotMM = Lot;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
dönüş (lotMM);
}
//----------------------- SEMBOL VE SİHİRLİ SAYI İŞLEVİNE GÖRE SİPARİŞ SAYISI
int altToplamTicaret()
{
int
cnt,
toplam = 0;
for(cnt=0;cnt<SiparişlerToplam();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SAT &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber) toplam++;
}
dönüş(toplam);
}
//----------------------- SİPARİŞ İŞLEVİNİ SİL
geçersiz subDeleteOrder()
{
int
cnt,
toplam = 0;
toplam = SiparişlerToplam();
for(cnt=toplam-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
geçiş(SiparişTürü())
{
// durum OP_BUYLIMIT :
// OP_BUYSTOP durumu:
durum OP_SELLLIMIT:
durum OP_SELLSTOP :
OrderDelete(OrderTicket());
}
}
}
}
//----------------------- İZLEME DURDURMA FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
//----------------------- DEĞİŞTİRİLDİ: YANGIN
void subTrailingStop(int Type)
{
if(Type==OP_BUY) // satın alma pozisyonu açıldı
{
if(Bid-OrderOpenPrice()>Point*TrailingStop &&
OrderStopLoss()<Teklif Noktası*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
dönüş(0);
}
}
if(Type==OP_SELL) // satış pozisyonu açıldı
{
if(OrderOpenPrice()-Ask>Point*TrailingStop)
{
if(OrderStopLoss()>Ask+Point*TrailingStop || OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
dönüş(0);
}
}
}
}
//----------------------- SEMBOL VE ZAMAN ÇERÇEVESİ FONKSİYONUNA GÖRE SİHİRLİ SAYI TABANI OLUŞTURMA
//----------------------- KAYNAK: PENGIE
//----------------------- DEĞİŞTİRİLDİ: YANGIN
int subGenerateMagicNumber(int MagicNumber, dize sembolü, int timeFrame)
{
int sembol = 0;
if (sembol == "EURUSD") isimbol = 1;
else if (sembol == "GBPUSD") isymbol = 2;
else if (sembol == "USDJPY") isymbol = 3;
else if (sembol == "AUDCAD") isymbol = 4;
else if (sembol == "AUDUSD") isymbol = 5;
else if (sembol == "USDCAD") isimbol = 6;
else if (sembol == "EURGBP") isymbol = 7;
else if (sembol == "EURJPY") isymbol = 8;
else if (sembol == "EURCHF") isymbol = 9;
else if (sembol == "EURAUD") isymbol = 10;
else if (sembol == "EURCAD") isymbol = 11;
else if (sembol == "GBPUSD") isymbol = 12;
else if (sembol == "GBPJPY") isymbol = 13;
else if (sembol == "GBPCHF") isymbol = 14;
else if (sembol == "GBPAUD") isymbol = 15;
else if (sembol == "GBPCAD") isymbol = 16;
başka simge = 17;
if(isymbol<10) MagicNumber = MagicNumber * 10;
dönüş (StrToInteger(StringConcatenate(MagicNumber, isymbol, timeFrame)));
}
//----------------------- YORUM YAZDIR FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
geçersiz subPrintDetails()
{
string sYorum = "";
string sp = "-------------------------------------------\n";
string NL = "\n";
sYorum = sp;
sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + " | ";
sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + NL;
sYorum = sYorum + sp;
sComment = sComment + "Lots=" + DoubleToStr(Lots,2) + " | ";
sComment = sComment + "MM=" + subBoolToStr(MM) + " | ";
sComment = sComment + "Risk=" + DoubleToStr(Risk,0) + "%" + NL;
sYorum = sYorum + sp;
Yorum(larYorum);
}
//----------------------- BOOLEN DEĞİŞKENİ DİZE FONKSİYONU
//----------------------- KAYNAK : CODERSGURU
dize subBoolToStr ( bool değeri)
{
if(değer) döndürme ("Doğru");
başka bir dönüş ("Yanlış");
}
//-------------------------- SON İŞLEV
Şimdiden teşekkürler.
JoJo,
Lütfen mq4 dosyasını ekler misiniz? bu şekilde test etmek çok zor