![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
Merhaba.
Senin numaralarını öğrenmek ve benimkini göstermek için sabırsızlanıyorum.
Merhaba. Senin numaralarını öğrenmek ve benimkini göstermek için sabırsızlanıyorum.
Bu forumda çok güzel şeyler bulacaksınız.
Herhangi bir kısıtlama olmaksızın arama özelliğini okuyun ve kullanın !!!
Herhangi bir şey sormaktan çekinmeyin ... Burada birçok katkıda bulunanlar/yardımcılar var.
FerruFx
Bu kodda, 45 pip için ayarlanmış sondaki durdurmaya sahiptir. Ancak takip eden durak, 45 pip hareket edene kadar Etkinleştir görünmüyor. Takas yapıldığında takip eden durdurmanın etkinleştirilmesi için bunu nasıl değiştirmem gerekir?
extern string Remark1 = "== Main Settings ==";
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = true;
extern double Lots = 4;
extern int Slippage = 2;
extern bool UseStopLoss = false;
extern int StopLoss = 100;
extern bool UseTakeProfit = false;
extern int TakeProfit = 15;
extern bool UseTrailingStop = true;
extern int TrailingStop = 45;
extern bool MoveStopOnce = False;
extern int MoveStopWhenPrice = 50;
extern int MoveStopTo = 1;
extern int MaxConcurrentTrades = 2;
//Version 2.01
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderStopLoss() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(((OrderStopLoss - Ask) > (Point * TrailingStop)) || OrderStopLoss() == 0) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
Kırmızı değiştirildi
Değişiklikleri kırmızı yaptım, ancak şimdi EA çalışmak istemiyor gibi görünüyor. Bir göz atmanız için tüm EA'yı göndereceğim. Teşekkürler!
orderstoploss'tan sonra () koyduğunuzdan emin olun.
Harika, başardı!
Bu göstergeye ne dersiniz....
Fiyatların nasıl açıldığına bağlı olarak farklı renkler göstermesi için değiştirilebilir mi? Mesela önceki çubuktan daha yüksek açılırsa fiyat yeşil olur, daha düşükse kırmızı olur ve hatta o zaman sarı olur mu? Bu renkler seçilebilirken? Ayrıca, sadece 6 yerine 10 açıklık gösterecek şekilde genişletebilir misiniz?
Ayrıca az önce düzelttiğimiz EA'da, "İzleyen Durdurmayı Etkinleştirmek için Pipler" gibi bir giriş ayarını nasıl koyardım. Bunu başka bir EA'da buldum ama nasıl kodlayacağımdan emin değilim.
SiparişYorumu()
Sipariş Bileti()
SiparişLotları()
SiparişStopLoss()
SiparişAlKar()
SiparişAçıkZamanı()
Bunların hepsi potansiyel sipariş filtreleme araçlarıdır.
Bu özel işlemler hakkında onları benzersiz kılan başka neler var?
SiparişYorumu()
Sipariş Bileti()
SiparişLotları()
SiparişStopLoss()
SiparişAlKar()
SiparişAçıkZamanı()
Bunların hepsi potansiyel sipariş filtreleme araçlarıdır.
Bu özel işlemler hakkında onları benzersiz kılan başka neler var?Siparişleri filtrelemek için en önemli iki tanesi OrderSymbol() ve OrderMagicNumber()'dir. Bir diğer not da OrderComment()'dir.
En iyi fikir, bunlardan birini Metaeditor'a girmek, ardından kelimeye tıklayıp ardından F1'e basmaktır. Bunu yapmak, yardımı gösterecek ve tüm sipariş işlevlerini listeleyecektir.
Mutlu programlama,
Hiachiever
OrderComment'ı kullanma
İşlemleri belirlemek için OrderComment() kullanırken dikkatli olun. Bazen komisyoncu yoruma karakterler ekler.
kullanmak en iyisidir
if (StringFind(OrderComment(), UserComment, 0) > 0)
{
// UserComment tarafından tanımlanan sipariş, OrderComment'ta bulundu
}
yerine
if (OrderComment() == KullanıcıYorumu)
{
// sipariş, UserComment tarafından tanımlanabilir
// OrderComment komisyoncu tarafından değiştirilmediyse
}
Robert
Beakeven'da kapanış işlemleri
................