Nasıl kodlanır? - sayfa 198

 
arshadFX:
1, ticaret kriterleri tetiklendikten sonra bool bayrağı ekleyin

2, sipariş vermeden önce bool bayrağını kontrol edin

3, sipariş verdikten sonra bool bayrağı sıfırlanmalıdır

4, init() içindeki bayrağı da sıfırlayın

Teşekkürler dostum

 

MQL Kılavuzu gerekli =^_^=

#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_renk1 Beyaz

#özellik göstergesi_renk2 Beyaz

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

harici int Signal.period = 5;

//---- arabellekler

çift Tampon1[],

arabellek2[],

b2[],

b3[];

//+------------------------------------------- -------------------+

//| Özel gösterge başlatma işlevi |

//+------------------------------------------- -------------------+

int init()

{

//---- göstergeler

// saymak için kullanılan iki ek tampon

Gösterge Tamponları(4);

GöstergeShortName("MA3_54");

SetIndexStyle(0,DRAW_OK,STYLE_SOLID,3);

SetIndexArrow(0,242); // aşağı 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_OK,STYLE_SOLID,3);

SetIndexArrow(1,241); //YUKARI 225 233 241

SetIndexBuffer(1,b3);

// Bu tamponlar çizilmez, sadece okları belirlemek için kullanılır

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Müşteri göstergesi sıfırlama işlevi |

//+------------------------------------------- -------------------+

int tanım()

{

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Özel gösterge yineleme işlevi |

//+------------------------------------------- -------------------+

int başlangıç()

{

int i, counted_bars=IndicatorCounted();

çift MA5,MA34;

int limit=Barlar-sayılan_barlar;

Print("baskı sınırı = ", sınır);

if(counted_bars>0) limit++;

// Ana hat

for(i=0; i<limit; i++)

{

MA5=iMA(NULL,0,Hızlı.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

Tampon1=MA5-MA34;

}

// Sinyal hattı

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Oklar

for(i=0; i<limit; i++)

{

if(Tampon1 > Tampon2 && Tampon1 < Tampon2)

b2 = Yüksek+10*Puan;

if(Tampon1 Tampon2)

b3 = Düşük-10*Puan;

}

//----

dönüş(0);

}

Bu diziye dayalı olarak EA'nın nasıl oluşturulacağını bana öğretebilir misiniz? ekranda ok göründüğünde ve EA otomatik giriş pozisyonu bu zaman, yapılabilir mi? lütfen bana rehberlik edin çünkü öğrenmeye hevesliyim =^_^=

 

İyi Referans

liew_stanley:
#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 2

............öğrenmeye hevesli olduğum için bana rehberlik et =^_^=

Bu kılavuza bakın gerçekten iyi malzeme MQL4 Eğitimi

 

indis böyle görünüyor

İşte yukarıda belirtilen ok sinyali, EA kodlamasında bana rehberlik edecek birine ihtiyacım var

Oradaki herkese teşekkürler =^_^=

Dosyalar:
untitled.jpg  80 kb
 

Birisi bunu basit bir EA'ya kodlamama yardım edebilir mi?

Merhaba arkadaşlar, biri bu indis'i EA'ya kodlamama yardım edebilir mi? Sadece oklar ekranda göründüğünde pozisyona giren basit bir EA, basit bir EA'da bana yardımcı olabilirse çok takdir ediyorum. =^_^= teşekkürler

#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_renk1 Beyaz

#özellik göstergesi_renk2 Beyaz

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

harici int Signal.period = 5;

//---- arabellekler

çift Tampon1[],

arabellek2[],

b2[],

b3[];

//+------------------------------------------- -------------------+

//| Özel gösterge başlatma işlevi |

//+------------------------------------------- -------------------+

int init()

{

//---- göstergeler

// saymak için kullanılan iki ek tampon

Gösterge Tamponları(4);

GöstergeShortName("Elliott Dalga Osilatörü");

SetIndexStyle(0,DRAW_OK,STYLE_SOLID,3);

SetIndexArrow(0,242); // aşağı 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_OK,STYLE_SOLID,3);

SetIndexArrow(1,241); //YUKARI 225 233 241

SetIndexBuffer(1,b3);

//

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Müşteri göstergesi sıfırlama işlevi |

//+------------------------------------------- -------------------+

int tanım()

{

//

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Özel gösterge yineleme işlevi |

//+------------------------------------------- -------------------+

int başlangıç()

{

int i, counted_bars=IndicatorCounted();

çift MA5,MA34;

int limit=Barlar-sayılan_barlar;

Print("baskı sınırı = ", sınır);

if(counted_bars>0) limit++;

// Ana hat

for(i=0; i<limit; i++)

{

MA5=iMA(NULL,0,Hızlı.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

Tampon1=MA5-MA34;

}

// Sinyal hattı

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Oklar

for(i=0; i<limit; i++)

{

if(Tampon1 > Tampon2 && Tampon1 < Tampon2)

b2 = Yüksek+10*Puan;

if(Tampon1 Tampon2)

b3 = Düşük-10*Puan;

}

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

 

Çoklu Sipariş kodu?

Maxlot bariyerine karşı koşarken birden fazla emir ticareti yapmak için iyi bir kodu olan var mı?

IE Broker sadece 5 lota izin veriyor ve siz 10 ticaret yapmak istiyorsunuz, bu nedenle fonksiyon bunun yerine 2 x 5 lot sipariş takas edecek.

Burada basit bir döngüden fazlasını arıyorum. Sorun, basit bir döngünün her zaman tam olarak tamamlanmayacağı ve yalnızca kısmi bir siparişin açık bırakılabileceğidir.

 

OrderModify hatası 1 nasıl çıkarılır

Merhaba,

OrderModify hatası 1'i önleyemiyorum: değiştirmeden önceki verilerin farklı olduğunu kontrol etmeye çalışsanız bile her zaman görünün! Ben de doublenormalize denedim ... çalışmıyor ...

Bu kod:

if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

if (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VNokta)

{

Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green);

Baska öneri ?

Teşekkürler.

 
liew_stanley:
Merhaba arkadaşlar, biri bu indis'i EA'ya kodlamama yardım edebilir mi? Yalnızca pozisyona giren basit bir EA //+------------+

2 MovingAverage corssing yani 5-34'teki bu aero şov, birçok EA "MA's Cross EA" araması bulabilirsin ve umarım bir tane bulursun

 

Uyarı Sıklığını nasıl ayarlarım?

mq4'te yeniyim ve MACD için bir geçiş olduğunda ekranda bir görüntü oluşturmaya çalışıyorum. Aşağıda kodum var ama uyarılar birkaç dakikada bir açılmaya devam ediyor.

Uyarıları saatte yalnızca bir kez gösterecek şekilde nasıl kodlayabilirim? Veya çubuk başına bir uyarı mı?

int başlangıç()

{

dizi MACD1="";

renk colt9;

double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);

double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0);

double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1);

double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1);

if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="YÜKSELİŞTE"; colt9=LimeYeşil; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="DOWNTTREND'DE"; colt9=Kırmızı; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="YENİ YUKARI GEÇİŞ"; colt9=LimeYeşil; }

if ((MACDM_S11 MACDS_S10)) { MACD1="YENİ AŞAĞI GEÇİŞ"; colt9=Kırmızı; }

dizi MACD2="";

renk colt14;

double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);

double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0);

double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1);

double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1);

if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="YÜKSELİŞTE"; colt14=LimeYeşil; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="DOWNTTREND'DE"; colt14=Kırmızı; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="YENİ YUKARI GEÇİŞ"; colt14=LimeYeşil; }

if ((MACDM_L11 MACDS_L10)) { MACD2="YENİ AŞAĞI GEÇİŞ"; colt14=Kırmızı; }

if(MACD1=="YENİ YUKARI GEÇİŞİ"&&MACD2=="YÜKSELİŞTE")

Alert(Symbol()," - ","H1:"," MACD ANA YÜKSELİŞ TREND HAREKETİ",", Teklif, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD1=="YENİ AŞAĞI GEÇİŞİ"&&MACD2=="DÜŞÜK TRENDDE")

Alert(Symbol()," - ","H1:"," MACD ANA AŞAĞI HAREKET", ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="YENİ YUKARI GEÇİŞİ"&&MACD1=="YÜKSELİŞTE")

Alert(Symbol()," - ","H1:"," MACD, ANA TREND YÜKSELİŞE DEĞİŞİM", ", Bid, " - ",TimeToStr(CurTime(),TIME_SANİYE));

if(MACD2=="YENİ AŞAĞI GEÇİŞİ"&&MACD1=="DÜŞÜK TRENDDE")

Alert(Symbol()," - ","H1:"," MACD, AŞAĞIYA ANA TREND DEĞİŞİMİ"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

dönüş(0);

}

 

hangi çiftlerde?