![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
Yazdığınız EA türüne bağlı olarak, yayılmayı da sürekli olarak saklamanız gerekebileceğini unutmayın. aksi halde işe yaramaz
YÜKSEK [0] -- sadece BAŞLAYAN geçerli çubuk
düşük için, bilmiyorum, belki düşük[1]
OrderSend(),OrderModify() koymak için doğru sıra
Bir gün önce forumda OrderSend() ve OrderModify() fonksiyonları hakkında bir konu okudum.
ve bu konu bana neden bazı EA'ların işe yarayıp diğerlerinin çalışmadığına dair bir ipucu veriyor ve OrderSend() ve OrderModify() işlevlerinin düzgün yazılıp yazılmadığını nasıl kontrol edeceğimi merak ediyorum.Örnek var mı?
herkese selam...
Lütfen bana MT4'teki tüm çiftlerin listesini almak için nasıl kod yazacağımı söyleyin?
Teşekkürler
Charles
Merhaba,
Sor[1] yazmam doğru değil ama son tikten Ask-Fiyatını nasıl alabilirim??
Teşekkür ederim!Keneleri gerçek zamanlı olarak kaydetmeniz ve ardından EA veya göstergenizden onlara erişmeniz gerekir. Hala ilgileniyorsanız, sizin için bir örnek kodlamaya çalışabilirim.
herkese selam...
Lütfen bana MT4'teki tüm çiftlerin listesini almak için nasıl kod yazacağımı söyleyin?
Teşekkürler
CharlesAcele etmeyin adamım, Mql5'te yapmanın daha kolay olduğuna inanıyorum, bu yüzden işlerin oturmasını bekleyin.![](https://c.mql5.com/forextsd/smiles/wink.png)
bir değişkende sihirli eğilim değerleri almak ...
merhaba!!
Bir EA üzerinde çalışıyorum ve bir değişkende sihirli eğilim göstergesi değerlerini nasıl elde edebileceğimi merak ediyorum. iMA'nın hareketli ortalamalar için yaptığı gibi, sihirli trend için doğal bir işlev olmadığı açıktır.
Şimdiye kadar sıfırdan kodlamam gerekiyor gibi görünüyor. ama matematik hakkında herhangi bir bilgi bulamıyorum!
birisi yardım edebilir mi?
çok teşekkürler!!!
merhaba!!
Bir EA üzerinde çalışıyorum ve bir değişkende sihirli eğilim göstergesi değerlerini nasıl elde edebileceğimi merak ediyorum. iMA'nın hareketli ortalamalar için yaptığı gibi, sihirli trend için doğal bir işlev olmadığı açıktır.
Şimdiye kadar sıfırdan kodlamam gerekiyor gibi görünüyor. ama matematik hakkında herhangi bir bilgi bulamıyorum!
birisi yardım edebilir mi?
çok teşekkürler!!!MQL4'te ICustom işlevinin nasıl kullanılacağı hakkında bilgi arayın. Bu fonksiyon ile EA'nızdaki harici göstergeleri arayabilirsiniz.
-adam
Robot - EA'yı yaklaşık 2 hareketli ortalama MA hızlı ve yavaş otomatikleştirin
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESEL 4
harici int SihirliSayı = 0;
harici bool SignalMail = Yanlış;
extern bool EachTickMode = True;
dış çift Lot = 0,2;
extern int Kayma = 3;
extern bool UseStopLoss = True;
harici int StopLoss = 15;
extern bool UseTakeProfit = True;
harici int TakeProfit = 30;
extern bool UseTrailingStop = True;
extern int TrailingStop = 20;
int BarCount;
int Akım;
bool TickCheck = Yanlış;
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init() {
BarCount = Barlar;
if (EachTickMode) Akım = 0; başka Akım = 1;
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım() {
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int start() {
int Sıra = SIGNAL_NONE;
int Toplam, Bilet;
çift StopLossLevel, TakeProfitLevel;
if (EachTickMode && Çubuklar != BarCount) TickCheck = False;
Toplam = SiparişlerToplam();
Sıra = SIGNAL_NONE;
//+------------------------------------------- -------------------+
//| Değişken Başlangıç |
//+------------------------------------------- -------------------+
double Var1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double Var2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double Buy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double Buy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double Sell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double Sell1_2 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double CloseBuy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double CloseBuy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double CloseSell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
double CloseSell1_2 = iMA("GBPUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);
//+------------------------------------------- -------------------+
//| Değişken Son |
//+------------------------------------------- -------------------+
//Konumu kontrol et
bool IsTrade = Yanlış;
for (int i = 0; i < Toplam; ben ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = Doğru;
if(OrderType() == OP_BUY) {
//Kapat
//+------------------------------------------- -------------------+
//| Sinyal Başla(Çıkış Satın Al) |
//+------------------------------------------- -------------------+
if (CloseBuy1_1 > CloseBuy1_2 && False) Sipariş = SIGNAL_CLOSEBUY;
//+------------------------------------------- -------------------+
//| Sinyal Sonu(Çıkış Satın Al) |
//+------------------------------------------- -------------------+
if (Sipariş == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Teklif, Rakamlar) + " Satın Alma Kapat");
if (!EachTickMode) BarCount = Çubuklar;
IsTrade = Yanlış;
devam etmek;
}
//Sondaki durdurma
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Nokta * TrailingStop) {
if(OrderStopLoss() < Teklif - Nokta * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Çubuklar;
devam etmek;
}
}
}
} başka {
//Kapat
//+------------------------------------------- -------------------+
//| Sinyal Başla(Çıkış Sat) |
//+------------------------------------------- -------------------+
if (CloseSell1_1 > CloseSell1_2False) Sipariş = SIGNAL_CLOSESELL;
//+------------------------------------------- -------------------+
//| Sinyal Sonu (Çıkış Sat) |
//+------------------------------------------- -------------------+
if (Sipariş == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Kapat Satış");
if (!EachTickMode) BarCount = Çubuklar;
IsTrade = Yanlış;
devam etmek;
}
//Sondaki durdurma
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Sor) > (Nokta * TrailingStop)) {
if((OrderStopLoss() > (Sor + Nokta * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Çubuklar;
devam etmek;
}
}
}
}
}
}
//+------------------------------------------- -------------------+
//| Sinyal Başlıyor(Giriş) |
//+------------------------------------------- -------------------+
if (Buy1_1 < Buy1_2 && Yanlış) Sipariş = SIGNAL_BUY;
if (Sell1_1 < Sell1_2 && False) Sipariş = SIGNAL_SELL;
//+------------------------------------------- -------------------+
//| Sinyal Sonu |
//+------------------------------------------- -------------------+
//Satın almak
if (Sipariş == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {
if(!IsTrade) {
// Serbest marjı kontrol et
if (AccountFreeMargin() < (1000 * Lot)) {
Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());
dönüş(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Puan; başka StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Sor + TakeProfit * Puan; başka TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Bilet > 0) {
if (OrderSelect(Bilet, SELECT_BY_TICKET, MODE_TRADES)) {
Print("Satın alma emri açıldı : ", OrderOpenPrice());
if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Satın Alımı Aç");
} başka {
Print("SATIN AL emri açılırken hata oluştu : ", GetLastError());
}
}
if (EachTickMode) TickCheck = Doğru;
if (!EachTickMode) BarCount = Çubuklar;
dönüş(0);
}
}
//Satmak
if (Sipariş == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {
if(!IsTrade) {
// Serbest marjı kontrol et
if (AccountFreeMargin() < (1000 * Lot)) {
Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());
dönüş(0);
}
if (UseStopLoss) StopLossLevel = Teklif + StopLoss * Puan; başka StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Teklif - TakeProfit * Puan; başka TakeProfitLevel = 0.0;
Bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sat(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Bilet > 0) {
if (OrderSelect(Bilet, SELECT_BY_TICKET, MODE_TRADES)) {
Print(" SAT emri açıldı : ", OrderOpenPrice());
if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Teklif, Rakamlar) + " Açık Satış");
} başka {
Print("SATIŞ emrini açarken hata: ", GetLastError());
}
}
if (EachTickMode) TickCheck = Doğru;
if (!EachTickMode) BarCount = Çubuklar;
dönüş(0);
}
}
if (!EachTickMode) BarCount = Çubuklar;
dönüş(0);
}
//+------------------------------------------- -------------------+
//hata nerede, bilmiyorum çünkü bana yardım et. Teşekkürler
Hangi hatayı alıyorsun?