Nasıl kodlanır? - sayfa 270

 

IndicatorCounted ve gösterge arabelleğini senkronize halde tutuyor.

Merhaba,

Sorum, arabelleği özel göstergede kaydırmakla ilgili. Başka bir forumda sordum ama nafile.

Örneğin:

Kod:

#define MAX_LOOK_BACK 5

#property indicator_minimum 0

#property indicator_maximum 100

#property indicator_color1 DodgerBlue

#property indicator_separate_window

double rsiBuf[];

int start()

{

int limit;

int counted_bars = IndicatorCounted();

//---- check for possible errors

if(counted_bars < 0)

return(-1);

//---- the last counted bar will be recounted

if(counted_bars > 0)

counted_bars--;

limit=Bars-counted_bars;

//---- main loop

Print("indicator limit: ", limit);

if(MAX_LOOK_BACK < limit)

limit = MAX_LOOK_BACK;

//Calculate from right to left

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

{

rsiBuf = iRSI(Symbol(), NULL, 14, PRICE_CLOSE, i);

}

}

Çalışırken gösterge, en son 5 çubuğun en son RSI değerlerini hesaplayacaktır. (Kolay test için bir MAXLOOK_BACK maksimum değeri koydum) Örneğin, bir EA'da iCustom aracılığıyla arama yaparken testlerimde limit==2 (ve limit==2 çok fazla oluyorsa) o zaman çubuk 0 ve çubuk 1'i hesaplayacaktır. değerleri ve sırasıyla RSI[0] ve RSI[1]'ye yazın ve arabelleğin geri kalanına dokunmaz. Gördüğüm her özel gösterge bu şekilde yazılmıştır. Sınır < MAX_LOOK_BACK ise arabelleği kaydırmamız gerekmez mi? RSI[0] ve RSI[1] öğelerinin üzerine yazdığı için ancak bu öğelerin önceki değerleri RSI[2] ve RSI[3]'te olmalıdır, değil mi?

Görselleştirmek için:

Tick=0 VE limit = 5 ==> RSI[0] = 33.33 RSI[1] =44,44 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77.77

Şimdi en son 2 RSI değerinin 88,88 ve 99,99 olduğunu ve dizinin aşağıdaki gibi görüneceğini varsayalım:

İşaret=1 VE limit = 2 ==> RSI[0] = 88,88 RSI[1] =99,99 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77,77

AMA bu olmamalı mı:

İşaret=1 VE limit = 2 ==> RSI[0] = 88,88 RSI[1] =99,99 RSI[2]=33,33 RSI[3]=44,44 RSI[4] = 55,55

2 yeni çubuk geldiğinde önceki çubuk değerlerini 2 kaydırmamız gerekmez mi? öncekiNeden tüm göstergeler bu şekilde yazılmıştır ve değerler kayması yoktur. Ve neden trend çizgilerini doğru çiziyorlar.

 

Bir pozisyondan çıkmak için (hem kâr hem de zarar için) Keltner bandını kullanan bir EA üzerinde çalışıyorum, ancak ne zaman 2 lot ile ortalamayı düşürsem EA ilk girişi görmezden geliyor. Yeni bir çizelge ile giren bu BESİDES'in bir çözümü var mı? teşekkürler

Dosyalar:
 
mezarashii:
Bir pozisyondan çıkmak için (hem kâr hem de zarar için) Keltner bandını kullanan bir EA üzerinde çalışıyorum, ancak ne zaman 2 lot ile ortalamayı düşürsem EA ilk girişi görmezden geliyor. Yeni bir çizelge ile giren bu BESİDES'in bir çözümü var mı? teşekkürler

Ea'yı buraya gönderin.

 

Kodlayıcı henüz bana kaynak kodunu vermedi, umarım bu kendi başına faydalı olur. Herhangi bir geri bildirim büyük beğeni topluyor.

Dosyalar:
 

Koşullu Silme Beklemede

Koşullu silme bekleyen bir komut dosyası veya kodu arıyorum.

Temelde yürütebilmek istiyorum:

EĞER Ask 200MA H1 ise

Bekleyen siparişleri 200MA'nın altında açık/canlı tutmak

Herhangi bir fikir?

 
 
 

Aynı anda 10 Çift için Haftalık açık fiyatlar alın

Merhaba, MT4'te yeniyim. Aynı anda 10 çiftin haftalık açık fiyatlarına erişmek için bir komut dosyası yazarak tekniğimi otomatikleştirmeye çalışıyorum. Haftalık bir çizelgeye tek tek erişmek için tek bir EA veya komut dosyası kullanamıyorum. Birisi lütfen bana bunu yapmanın en iyi yolunun ne olduğunu söyleyebilir mi? Çok teşekkürler .....

 
novalight:
Merhaba, MT4'te yeniyim. Aynı anda 10 çiftin haftalık açık fiyatlarına erişmek için bir komut dosyası yazarak tekniğimi otomatikleştirmeye çalışıyorum. Haftalık bir çizelgeye tek tek erişmek için tek bir EA veya komut dosyası kullanamıyorum. Birisi lütfen bana bunu yapmanın en iyi yolunun ne olduğunu söyleyebilir mi? Çok teşekkürler .....

Merhaba,

iOpen işlevini birleştirmeniz gerekir.

Örneğin, gbpusd, eurusd ve usdjpy'nin açık fiyatlarını yorumda göstermek istediğinizi varsayalım.

o zaman kod parçacığı şöyle görünür:

double openPair1 = iOpen("EURUSD",PERIOD_W1,0);

çift openPair2 = iOpen("GBPUSD",PERIOD_W1,0);

çift openPair3 = iOpen("USDJPY",PERIOD_W1,0);

Comment("EURUSD haftalık açılış: "+openPair1+\nGBPUSD haftalık açılış: "+openPair1+"\nUSDJPY haftalık açılış: "+openPair1);

 

Çiftlerin 2 ek girişle birlikte giriş olarak olmasını tercih ederim.

Ön ek ve son ek girdileri, aracılar temel çift adına bir şey eklediğinde güçlüklerden kaçınır.

harici string pair_preffix = "";

harici string pair_suffix = ""; // IBFX mini hesapları için m girin

harici string çifti1 = "EURUSD;

harici string çifti2 = "GBPUSD";

harici string çifti3 = "USDJPY";

dizi benimPair1, benimPair2, benimPair3;

int init()

{

myPair1 = çift_önek + çift1 + çift_sonek;

myPair2 = çift_önek + çift2 + çift_sonek;

myPair3 = pair_prefix + pair3 + pair_suffix;

dönüş(0);

}

int başlangıç()

{

double openPair1 = iOpen(myPair1, PERIOD_W1,0);

çift openPair2 = iOpen(myPair2, PERIOD_W1,0);

çift openPair3 = iOpen(myPair3, PERIOD_W1,0);

Comment(pair1 + "haftalık açılış: "+openPair1+"\n" + çift2 + " haftalık açılış: "+openPair2+"\n" + çift3 " " haftalık açılış: "+openPair3);

}

Tabii ki 10 çift kullanırken bunun için dizileri kullanırdım.

Robert Hill, diğer adıyla MrPip