Kodlama yardımı - sayfa 212

 
zoroxzyad:
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ı?

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

arrUp[CB] = EMPTY_VALUE;

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.

Dosyalar:
 
michaelB:
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--

arrUp[CB] = EMPTY_VALUE;

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

Dosyalar:
 
mladen:
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

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.

 
michaelB:
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);

}
 
arroganzmaschine:
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.