Nasıl kodlanır? - sayfa 15

 

Kodlayıcı Gerekli!

Oradaki diğer tüm programcılara, ticaretim için kodlamanız veya benim için EA yapmanız için yardıma ihtiyacım var. EA yapma konusunda hiç deneyimim yok, bu yüzden size ihtiyacım var.

Ea :

LWMA - 5 (yakın)

SMA - 8 (kapat)

Satın al - her iki hat da kesiştiğinde bir sonraki çubuğu bekleyin ve otomatik olarak tetiklemeye başlayın. Kısa gitmek için de aynı.

Stoploss - 30

Kâr Al - 30

Trailstop- 15

Lütfen yardıma ihtiyacım var.

Teşekkürler.

 
Sinar FX:
Oradaki diğer tüm programcılara, ticaretim için kodlamanız veya benim için EA yapmanız için yardıma ihtiyacım var. EA yapma konusunda hiç deneyimim yok, bu yüzden size ihtiyacım var.

Ea :

LWMA - 5 (kapat)

SMA - 8 (kapat)

Satın al - her iki hat da kesiştiğinde bir sonraki çubuğu bekleyin ve otomatik olarak tetiklemeye başlayın. Kısa gitmek için de aynı.

Stoploss - 30

Kâr Al - 30

Trailstop- 15

Lütfen yardıma ihtiyacım var.

Teşekkürler.

Ne zaman çerçevesi?

 

Lütfen özel gösterge kodunu anlamama yardım edin

Merhaba. MQL4'te acemiyim. Çubuk sayma döngüsüne hazırlanmak için birçok özel göstergenin aşağıdaki satırları içerdiğini fark ettim:

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) return(-1);

if( counted_bars > 0 ) counted_bars--;

int limit = Çubuklar - sayılan_barlar;

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

metatrader.info'daki öğreticiye göre, counted_bars = IndicatorCounted(), göstergenin ilk açılışında counted_bars değerini 0 olarak hesaplayacaktır. "Bundan sonra, grafikteki toplam çubuk sayısı eksi bir olacaktır". Neyden sonra? İlk lansmandan sonra mı? Çalışması için göstergeyi iki kez başlatmam gerekir mi? MQL4 başvuru kılavuzu da çok net değil: "IndicatorCounted(), son gösterge başlatıldıktan sonra değişmeyen çubuk sayısını döndürür. Çoğu durumda, aynı sayıda indeks değeri yeniden hesaplamaya gerek duymaz. Hesapları optimize etmek için kullanılır."

Ardından, " grafikteki çubukların sayısı " olan Çubuklar vardır. Neden simpky aşağıdaki çubuk sayma döngüsünü kullanmıyorsunuz:

for(int i=1;i<=Barlar;i++)

Biri İngilizce'de tam olarak ne olduğunu açıklayabilirse anlarım.

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) return(-1);

if( counted_bars > 0 ) counted_bars--;

int limit = Çubuklar - sayılan_barlar;

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

ve çubuklar hangi yönde sayılır: ileri (en eski çubuktan en yeniye) veya geriye doğru? şimdiden teşekkürler!

 

Bu makalenin yardımcı olup olmadığına bakın.

https://www.mql5.com/en/articles/1497

iyi şanslar.

 

Teşekkürler, Maji. Yardımcı oldu. Yanlışım varsa düzelt:

1. IndicatorCounted, çubukları gerçek zamanlı olarak güncellenen grafiklerde kullanışlıdır. Böylece yeni bir çubuk göründüğünde tüm çubuklar için gösterge değerlerini yeniden hesaplamak yerine, yalnızca bu yeni çubuğun gösterge değeri hesaplanır.

2. "limit", göstergenin hesaplanması gereken yeni çubukların sayısıdır.

3. Gösterge indeksi çubukları geriye doğru sayar, i=0 yeni (mevcut) çubuğu gösterir.

Sanırım kafa karışıklığım, yalnızca yeni çubukların hesaplanması gerekse bile tüm çubuklar için gösterge değerlerinin hesaplanacağı şekilde bir gösterge kodunun yazıldığı Wealth-Lab ile önceki deneyimime dayanıyordu. Ancak Wealth-Lab'ın bazı yerleşik akıllılıkları vardır ve göstergelerin yalnızca yeni çubuklar için otomatik olarak yeniden hesaplanması mümkündür. MQL4'ün sizin için bu tür kararlar almak istemediğini ve sizi ekstra programlama adımları yapmaya zorlayarak bu kararları size bıraktığını hissediyorum. Aslında bundan hoşlanıyorum çünkü bir yazılımın sizin yerinize kararlar almasından her zaman nefret ediyorum ve bu kararlar sizinkilerle aynı değil. MQL4 ile ilgili tek sorunum, daha iyi belgelere sahip olmasını dilemem.

 

fıkıh,

Tahminlerinin doğru olduğuna inanıyorum. MT4'ün göstergeleri bir kez hesaplamakta haklı olduğunu düşünüyorum ve WL, kaynakları başka şekilde yapıyor.

Belki yanılıyorum ve umarım daha bilgili başkaları ikimizi de düzeltebilir.

 
 

Nick,

E-postanızı kontrol edin. Orada size bir örnek gönderdim.

Bana bildirin.

Maji

 

Tamam, sanırım bunu şöyle yapabilirsin:

İlk önce hangi saati aradığınızı göstermelisiniz - eğer komisyoncunuz GMT+3 ise, o zaman GMT zamanında Pivotları saymak için komisyoncuların zamanını 3 azaltmalısınız. Yani 00.00 saatini ararsanız, komisyoncu saatinizde 21.00 arayacaksınız. .

Artık bir gün 24 saat ve ekranın sağ tarafından aramaya başlıyoruz. Broker süreniz +3 olduğundan, bu sayıyı shift değerine ekleyeceğiz.

for(int i = 3 ; i <= 27 ; i++)

{

if(TimeHour(Time)==21)

{

//This should be your GMT midnight so u can take OHLC values from here

double open = iOpen(Symbol(),60,i);

double high = iHigh(Symbol(),60,i);

double low = iLow(Symbol(),60,i);

double close = iClose(Symbol(),60,i);

}

}

Bunun basit bir yol olup olmadığını bilmiyorum, ama işe yarıyor.

 

Merhaba,

SimpleDailyRangeBreakoutExpert'in son sürümünde, herhangi bir saat dilimi için mum (OHLC) yapma kodunu bulabilirsiniz.

Neden: