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
Merhaba
Sorum çok basitse çok üzgünüm.
mql4 öğreniyorum.
Lütfen bu matematik koşullarını mql4'te nasıl ifade edeceğime yardım edin:
EĞER( (A>B) AND (|X| <1) AND (Y<Z) ) o zaman.. ... ... ...
|X| mutlaktır; (X 1) anlamına gelir
MetaEditor'dan mesaj aldım
"İFADE ÇOK KARMAŞIK İSE"
Defalarca denedikten sonra,... Daha fazla fikrim yok.. O yüzden lütfen bana nasıl yapacağımı söyle..
teşekkürlerBunu dene:
if((a>b && MathAbs(x)<1) && y<z)
{
//ne olması gerektiğini buraya yaz
}
Kehanet için soru...
EA'nızın bir Optimizasyon çalıştırmasını ve ayarları her gün otomatik olarak yapmasını sağlamak için yine de var mı?
16 parametre için 30 günlük kar faktörü optimizasyonu yapmak istiyorum. ve tekrar ticarete başlamadan önce ayarları uygulamasını sağlayın. Yaklaşık 8 saat boyunca her gün otomatik olarak kapanır. çalıştırmak için mükemmel bir zaman olurdu...
onu nasıl kodlayacağını bilen var mı... Onu Great EA seviyesinden Insanley karlı AI seviyesine getirecekti...
Bu aynı zamanda herkesin orada kullanması için iyi bir kod olabilir. EA'nın pazarları, EA'larımızın neden daha akıllı hale gelmesi gerektiğine sürekli olarak uyum sağlar.
Bunu EA fourm'de de yayınlamıştım, şimdiye kadar bunu bilmiyordum..
Yardımın için teşekkürler.
öneri lütfen
Gönderdiğim resimdeki gösterge gibi ayrı pencerelerde çubuk göstergeleri oluşturmak mümkün mü? vb. Ayrıca, fiyatın hareketli ortalamanın altına düşüp düşmediğini söylemek için aynı çubuk gösterge pencerelerini oluşturmak da mümkün mü?
Bu aptalca bir soru gibi görünüyorsa lütfen bana tahammül edin. Bir grafikteki göstergelere baktığımda, fiyatın ne yapacağını tahmin etme eğilimindeyim, bu yüzden hepsi aynı rengi gösterdiğinde ticaret yapacağım ayrı pencere göstergeleri denemek ve denemek istiyorum. [Psikolojik nedenler]. Bu ayrı çubuk tipi göstergelerin oluşturulması, herhangi bir dilde bir programcıdan çok uzakta, oluşturmayı öğrenebileceğim bir şey mi?
herhangi bir tavsiye çok takdir edilecektir.
gün
Merhaba
Sorum çok basitse çok üzgünüm.
mql4 öğreniyorum.
Lütfen bu matematik koşullarını mql4'te nasıl ifade edeceğime yardım edin:
EĞER( (A>B) AND (|X| <1) AND (Y<Z) ) o zaman.. ... ... ...
|X| mutlaktır; (X 1) anlamına gelir
MetaEditor'dan mesaj aldım
"İFADE ÇOK KARMAŞIK İSE"
Defalarca denedikten sonra,... Daha fazla fikrim yok.. O yüzden lütfen bana nasıl yapacağımı söyle..
teşekkürlerif(a>b && (x 1) && y<z){
;senin kodun
}
veya (x 1) yerine x == 0 olabilir, çünkü x=0 olduğunda MathAbs(x) < 1'in tek yolu doğrudur
http://docs.mql4.com/basis/operations/bool
diğer düşüncede belki sadece buna ihtiyacınız var:
if(a>b && x<1 && y<z)
veya bu
if(a>b && x<-1 && y<z)
tanımınıza göre x asla 0 veya -1 olmadığı için
Mutlak değer tanımınızla kafam karıştı
Gönderdiğim resimdeki gösterge gibi ayrı pencerelerde çubuk göstergeleri oluşturmak mümkün mü? vb. Ayrıca, fiyatın hareketli ortalamanın altına düşüp düşmediğini söylemek için aynı çubuk gösterge pencerelerini oluşturmak da mümkün mü?
Bu aptalca bir soru gibi görünüyorsa lütfen bana tahammül edin. Bir grafikteki göstergelere baktığımda, fiyatın ne yapacağını tahmin etme eğilimindeyim, bu yüzden hepsi aynı rengi gösterdiğinde ticaret yapacağım ayrı pencere göstergeleri denemek ve denemek istiyorum. [Psikolojik nedenler]. Bu ayrı çubuk tipi göstergelerin oluşturulması, herhangi bir dilde bir programcıdan çok uzakta, oluşturmayı öğrenebileceğim bir şey mi?
herhangi bir tavsiye çok takdir edilecektir.
günEvet, bu mümkün.
Gönderdiğim resimdeki gösterge gibi ayrı pencerelerde çubuk göstergeleri oluşturmak mümkün mü? vb. Ayrıca, fiyatın hareketli ortalamanın altına düşüp düşmediğini söylemek için aynı çubuk gösterge pencerelerini oluşturmak da mümkün mü?
Bu aptalca bir soru gibi görünüyorsa lütfen bana tahammül edin. Bir grafikteki göstergelere baktığımda, fiyatın ne yapacağını tahmin etme eğilimindeyim, bu yüzden hepsi aynı rengi gösterdiğinde ticaret yapacağım ayrı pencere göstergeleri denemek ve denemek istiyorum. [Psikolojik nedenler]. Bu ayrı çubuk tipi göstergelerin oluşturulması, herhangi bir dilde bir programcıdan çok uzakta, oluşturmayı öğrenebileceğim bir şey mi?
herhangi bir tavsiye çok takdir edilecektir.
günBurada tam olarak istediğiniz şeysiniz, aynı göstergenin 4'ünü de aşağıda gösterildiği gibi farklı ayarlarla tek bir tabloya yükleyin, tümü kırmızı satarken, tümü mavi alırken.
ayarlar
15 dakika önce ayarla
ikinci 30 dakika
üçüncü 60 dakika
ileri 140 dakika
Teşekkürler
Beyler, teşekkürler, yayınlanan göstergeleri keşfedeceğim#
çok takdir
Başka bir pencerede sabit kene çizelgeleri veya sabit aralık çubukları çizen bir tür gösterge yazmak mümkün müdür? Bunlar, zamana dayalı olmayan farklı grafik biçimleridir. Örneğin, fiyat her 100 tik hareket ettiğinde 100 tik çubuğu oluşur. Yani küçük hacimde çubuk oluşmaz. Fiyat bir aralıkta belirli sayıda kene hareket ettiğinde sabit bir aralık çubuğu oluşur. Örneğin, fiyat 20 piplik bir aralığı doldurduğunda 20 formda ayarlanmış bir aralık çubuğu. Ardından bir sonraki çubuk başlatılır. Bunlar zamana dayalı olmadığından, bu platformda mümkün olup olmayacağından emin değilim.
EA'ya basit bir uyarı ekleyin
Merhaba, ihtiyacım olan küçük yardımı burada bulmayı umuyorum! Örneğin, bu EA için nasıl bir uyarı ekleneceğini bana gösterebilir misiniz? tam alım için şartlar oluştuğunda beni de uyarıyor.
Teşekkür ederim,
Aslan
harici int SihirliSayı = 0;
harici bool SignalMail = Yanlış;
extern bool EachTickMode = False;
dış çift Lot = 1.0;
extern int Kayma = 3;
extern bool StopLossMode = True;
harici int StopLoss = 30;
extern bool TakeProfitMode = True;
harici int TakeProfit = 60;
extern bool TrailingStopMode = True;
extern int TrailingStop = 30;
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESEL 4
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 Buy1_1 = iMA(NULL, 0, 89, 0, MODE_SMA, PRICE_CLOSE, Mevcut + 0);
double Buy1_2 = iClose(NULL, 0, Current + 0);
double Buy2_1 = iMA(NULL, 0, 445, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);
double Buy2_2 = iClose(NULL, 0, Current + 0);
//+------------------------------------------- -------------------+
//| 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) |
//+------------------------------------------- -------------------+
//+------------------------------------------- -------------------+
//| 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(TrailingStopMode && 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) |
//+------------------------------------------- -------------------+
//+------------------------------------------- -------------------+
//| 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(TrailingStopMode && 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 && Buy2_1 < Buy2_2) Sipariş = SIGNAL_BUY;
//+------------------------------------------- -------------------+
//| 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 (StopLossMode) StopLossLevel = Sor - StopLoss * Puan; başka StopLossLevel = 0.0;
if (TakeProfitMode) 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 (StopLossMode) StopLossLevel = Teklif + StopLoss * Puan; başka StopLossLevel = 0.0;
if (TakeProfitMode) 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);
}
//+------------------------------------------- -------------------+
Teşekkürler ve diğer görevler
Soruma cevap verdiğiniz için teşekkürler.
yenidijital, Kalenzo,asmdev
Ve hepsi için teşekkürler
Sıradaki sorum.
1.) Olmuş ve olmuş bir şeyin değeri nasıl karşılaştırılır?
örneğin, "n" şimdi ise, zamanın değişkeni, na = "a" şimdiden önceki zaman.
(na) ve RSIn(şimdi)'de gerçekleştiğinde RSI'nin değeri nasıl karşılaştırılır.
veya MA50'yi şimdiki üç çubukla ve son çubuk için nasıl karşılaştırabilirim?
2.) 1. noktaya göre) gerçek durum şudur... bir yükseliş/düşüş ayrışması nasıl yaratılır?
Koşullar ne zaman: Tanımlanmış bir zaman çerçevesinin en yüksek Fiyatı ve en yüksek RSI'sı vardır. Ve sonra zaman dolduktan sonra... yeni bir en yüksek Fiyatla karşılaşırız, ancak bunu yeni RSI'ın en yüksek seviyesi takip etmez (RSI yeni bir zirve yapamaz).
Hepimiz bu durumun yüksek gerçekçilikli bir satış sinyali olduğunu biliyoruz ve satın alma sinyali terstir, bu yüzden EA'mın bunu bilmesini istiyorum.
Tekrar teşekkürler.