![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
lwma kullanabilirim, bu yüzden gövdede periyodun 30 olmasını istiyorsam, çizelgeye hangi mv'yi iki ma veya sadece bir periyodun matematikte ne kadar iyi olmadığıyla birlikte koymalıyım ve çabanız için çok ama çok teşekkürler dostum
zoroxzyad
Sadece hareketli ortalama kullanamazsınız. Daha önce gönderideki formülü kullanmalısınız.
Henüz yeni metatrader 4 için herhangi bir kılavuz var mı?
Ya da hiç yapacaklar mı?
Henüz yeni metatrader 4 için herhangi bir kılavuz var mı? Ya da hiç yapacaklar mı?
Bildiğim kadarıyla hayır. Sanırım bazıları olacak (bir gelişme noktasında)
Ekli Mladen, ana çizelgede geçiş sinyallerini görüntülemek için değiştirdiğiniz bir göstergedir.
Bu kod yeni sürümden--
arrDn[CB] = EMPTY_VALUE;
state[CB] = state[CB+1];
if (TrendBuffer[CB]>LoBuffer[CB]) state[CB] = 1;
if (TrendBuffer[CB]<LoBuffer[CB]) state[CB] = -1;
if (state[CB]!=state[CB+1])
{
if (state[CB]== 1) arrUp[CB] = Low[CB] -iATR(NULL,0,10,CB)/2.0;
if (state[CB]==-1) arrDn[CB] = High[CB]+iATR(NULL,0,10,CB)/2.0;
}Bu kodun sinyalleri nasıl eklediğini açıklamanın kolay bir yolu var mı?
Teşekkür ederim.
Ekli Mladen, ana çizelgede geçiş sinyallerini görüntülemek için değiştirdiğiniz bir göstergedir.
Bu kod yeni sürümden--
arrDn[CB] = EMPTY_VALUE;
state[CB] = state[CB+1];
if (TrendBuffer[CB]>LoBuffer[CB]) state[CB] = 1;
if (TrendBuffer[CB]<LoBuffer[CB]) state[CB] = -1;
if (state[CB]!=state[CB+1])
{
if (state[CB]== 1) arrUp[CB] = Low[CB] -iATR(NULL,0,10,CB)/2.0;
if (state[CB]==-1) arrDn[CB] = High[CB]+iATR(NULL,0,10,CB)/2.0;
}Bu kodun sinyalleri nasıl eklediğini açıklamanın kolay bir yolu var mı?
Teşekkür ederim.Michael
TrendBuffer ve LoBuffer olmak üzere iki arabellekte çapraz değerler arıyor. İkisinin mevcut durumunu işaretler: TrendBuffer > LoBuffer ise durumu 1'e, TrendBuffer < LoBuffer ise durumu -1'e ayarlar.
Şimdi, mevcut çubuğun durumu bir önceki çubuğun durumundan farklı olduğunda, bir çarpı var demektir. Ve sonra çizer ve çizelgede ok
Yine zahmetli hocam, lütfen bu göstergeyi MT4 göstergelerine dönüştürün, teşekkürler!
colorbars_hlc.mq5
Michael
TrendBuffer ve LoBuffer olmak üzere iki arabellekte çapraz değerler arıyor. İkisinin mevcut durumunu işaretler: TrendBuffer > LoBuffer ise durumu 1'e, TrendBuffer < LoBuffer ise durumu -1'e ayarlar.
Şimdi, mevcut çubuğun durumu bir önceki çubuğun durumundan farklı olduğunda, bir çarpı var demektir. Ve sonra çizer ve çizelgede okTamam, bu TrendBuffer ve LoBuffer'ı açıklıyor.
Ancak arrUp ve arrDn nasıl çalışır?
Sinyaller neden her mumda değil de belirli mumlarda görünüyor ?
Tekrar teşekkürler.
Tamam, bu TrendBuffer ve LoBuffer'ı açıklıyor.
Ancak arrUp ve arrDn nasıl çalışır?
Sinyaller neden her mumda değil de belirli mumlarda görünüyor?
Tekrar teşekkürler.michael
şöyle bir dizi hayal edin (1 TrendBuffer > LoBuffer olduğunda, -1 TrendBuffer < LoBuffer olduğunda)
11111111-1-1-1-1-1-1-1-111111111
Oklar sadece 1 -1 olduğunda veya -1 1 olduğunda ("durum" değiştiğinde) çizilmelidir. Bu yüzden bunu kontrol eden bir satır var (bu satır : if ( durum [ CB ] != durum [ CB + 1 ]) ). Bu nedenle, durum değiştiğinde ok çizilir, aksi takdirde okun çizilmesine gerek yoktur.
hey mladen,
umarım yılın sonuna çok yakın zamanınız olur.
Aşağıdaki kodun bana en son sorulan soruyla ilgisi var. Artıda 2 pip hedefinden sonra bir sipariş için 0,8 pip takip ediyor.
Ancak, tüm siparişleri ve izleri ayrı ayrı kontrol etmesi için bunu nasıl değiştirebilirim?
Çok teşekkürler! Burada yaptığın harika bir iş.
int start()
{
//----
if (OrdersTotal() == 0) {
isStopLoss = false;
}
for(int i=0; i<=OrdersTotal(); i++) {
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
continue;
}
if(OrdersTotal() == 0) {
continue;
}
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(isStopLoss == true) {
if(OrderType() == OP_BUY) {
if(iClose(Symbol(), 0, 0) >= (OrderOpenPrice()+inProfitStopLoss*Point)) { // Zieht bei 2.0 Pips nach! - 200 = 2.0 Pips
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) >= (lastStopLoss+trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss+trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+inProfitStopLoss*Point,0,0,0);
if(OrderStopLoss() >= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
} else if(OrderType() == OP_SELL) {
if(iClose(Symbol(), 0, 0) <= (OrderOpenPrice()-inProfitStopLoss*Point)) {
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) <= (lastStopLoss-trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss-trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-inProfitStopLoss*Point,0,0,0); // 200 ursprünglich
if(OrderStopLoss() <= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
}
lastStopLoss = OrderStopLoss();
continue;
}
if(OrderType() == OP_BUY) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-initialStopLoss*Point,0,0,0);
} else if(OrderType() == OP_SELL) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+initialStopLoss*Point,0,0,0);
}
lastStopLoss = OrderStopLoss();
}
//----
return(0);
}hey mladen,
umarım yılın sonuna çok yakın zamanınız olur.
Aşağıdaki kodun bana en son sorulan soruyla ilgisi var. Artıda 2 pip hedefinden sonra bir sipariş için 0,8 pip takip ediyor.
Ancak, tüm siparişleri ve izleri ayrı ayrı kontrol etmesi için bunu nasıl değiştirebilirim?
Çok teşekkürler! Burada yaptığın harika bir iş.
int start()
{
//----
if (OrdersTotal() == 0) {
isStopLoss = false;
}
for(int i=0; i<=OrdersTotal(); i++) {
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
continue;
}
if(OrdersTotal() == 0) {
continue;
}
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(isStopLoss == true) {
if(OrderType() == OP_BUY) {
if(iClose(Symbol(), 0, 0) >= (OrderOpenPrice()+inProfitStopLoss*Point)) { // Zieht bei 2.0 Pips nach! - 200 = 2.0 Pips
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) >= (lastStopLoss+trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss+trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+inProfitStopLoss*Point,0,0,0);
if(OrderStopLoss() >= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
} else if(OrderType() == OP_SELL) {
if(iClose(Symbol(), 0, 0) <= (OrderOpenPrice()-inProfitStopLoss*Point)) {
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) <= (lastStopLoss-trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss-trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-inProfitStopLoss*Point,0,0,0); // 200 ursprünglich
if(OrderStopLoss() <= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
}
lastStopLoss = OrderStopLoss();
continue;
}
if(OrderType() == OP_BUY) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-initialStopLoss*Point,0,0,0);
} else if(OrderType() == OP_SELL) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+initialStopLoss*Point,0,0,0);
}
lastStopLoss = OrderStopLoss();
}
//----
return(0);
}kibirli makine
Bu gönderiden EA'da takip eden durakların nasıl yönetildiğini kontrol edin: https://www.mql5.com/en/forum/181334 . Sondaki durdurma kaybını işlemek için gereken tüm unsurlara (hata kontrolü dahil) sahip olduğu için size yardımcı olabileceğini düşünüyorum.