Sormak! - sayfa 51

 
pawang:
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ürler

Bunu 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

Dosyalar:
chart.jpg  11 kb
 
pawang:
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ürler

if(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ı

 
dxx:
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

Evet, bu mümkün.

 
dxx:
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

Burada 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

Dosyalar:
 

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.