[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 1129

 

Sonuç olarak gösterge penceresinde neden hiçbir şey görüntülenmediğini lütfen açıklayın.

kod:

#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 1
#özellik göstergesi_renk1 Kırmızı
//---- arabellekler
çift Buf_0[];

int init()
{
//---- göstergeler

SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_LINE, STYLE_SOLID,2);
//----
dönüş(0);
}

int başlangıç()
{
int i, counted_bars=IndicatorCounted();
i=Barlar-sayılan_barlar-1;


while(i>=0)
{
Buf_0[i]=Kapat[i]/Kapat[i+1];
ben--;
}
dönüş(0);
}
//+------------------------------------------- --------------------+

 
Abzasc :
nerede ??? kesinlikle doğru?


Bu koşul, if (up>=1||down>=1) filtrelemelidir, uyarılar, bunlardan en az biri sıfırdan büyük olmalıdır, ancak bu böyle değildir.

Burada

 
Dimka-novitsek :


Bu koşul, if (up>=1||down>=1) filtrelemelidir, uyarılar, bunlardan en az biri sıfırdan büyük olmalıdır, ancak bu böyle değildir.

Burada


 int start()
{ int y;
y= WindowFirstVisibleBar(); Alert ( "y" ,y);
for ( y= 1 ; y>= 0 ;y--) // первое выражение 
{ double up= iFractals ( Symbol (), PERIOD_M15 ,MODE_UPPER,y);
double down= iFractals ( Symbol (), PERIOD_M15 ,MODE_LOWER,y);
if (up>= 1 ||down>= 1 ){
Alert ( "Previous upper fractal is:" , up, " Previous lower fractal is:" , down); Alert ( "y" ,y);}}

return ( 0 );
}
 
Galion :


Editör penceresini iki parçaya ayırmanız yeterli :) Tamam, Tanrı onu korusun, bir çift tıklama ile. MQL4 dosyaları için sözdizimi vurgulamayı yüklediniz mi? Değilse, dosyayı MQL kaynak koduyla açtıktan sonra, düzenleyicide Sözdizimi'ni tıklamanız ve listenin en altındaki MQL4'ü seçmeniz gerekir - vurgu, meta düzenleyicidekiyle tamamen aynı olacaktır.

 
Ama benim hatam nerede anlamıyorum?
 
Hayır, tabi ki ama yok saymak ya da içine y=1 yazmak hiçbir şeyi değiştirmiyor, kontrol ettim!
 
Dimka-novitsek :
Ama benim hatam nerede anlamıyorum?

Gereksiz kaldırıldı

 int start()
{ int y;
y= WindowFirstVisibleBar(); Alert ( "y" ,y);
// for (y=5;y>=0;y--)
//{ 
double up= iFractals ( Symbol (), PERIOD_M15 ,MODE_UPPER,y);
double down= iFractals ( Symbol (), PERIOD_M15 ,MODE_LOWER,y);
if (up>= 1 ||down>= 1 ){
Alert ( "Previous upper fractal is:" , up, " Previous lower fractal is:" , down); Alert ( "y" ,y);}
//}
//----

//----
return ( 0 );
}

böyle çıktı

O?

 
dzhini :

Büyük ihtimalle soru yanlış soruldu. Ticaret saatlik zaman diliminde gerçekleşir, işlemin ne zaman gerçekleşeceği bilinmez, ancak gün içinde bir olması gerekir. Aynı zamanda, bu özelliği değiştirilebilir hale getirmek istiyorum. Bu kod parçasına sahip olan var mı?


Bir kod parçası aramanıza gerek yok - tüm hayatınızı bu tür aramalarda geçirebilir ve yine de hiçbir şey bulamayabilirsiniz. Kendiniz bir kod parçası oluşturmanın bir yolunu aramanız gerekir. Kodu aptalca kopyalaması için değil, özellikle basit olduğu için içini dışını anlamanız için verdim. Kod aşağıdaki gibi çalışır. Piyasa emirlerinin listesini gözden geçirir ve bugün açılan geçmiş emirlerle özetler. Tutar sıfırdan büyükse, siparişler bugün verilmiş demektir ve alım satım yasaktır . Bugün kaç sipariş açabileceğinizi hesaba katmanıza izin veren bir anahtara ihtiyacınız varsa, basit işlemlerin yardımıyla onu koda bağlayabilirsiniz. Derdiniz, programınızın algoritmasının kafanızda olmamasıdır - programınızın nasıl ve hangi sırayla çalışması gerektiğini hiç anlamıyorsunuz. Bir algoritma yapın yoksa kafanızda yulaf lapası olur.

 
Seninle konuştum ve hemen her şeyi anladım))) düzeltilmişe baktım - haklıydın (sorunu çözmek için algoritmamdan atlayamadım). Tüm ipuçları için teşekkürler. Şimdi önerilen tüm seçenekleri zaten ele aldım: hangi durumlarda hangisi işe yarar.
 
dzhini :
Seninle konuştum ve hemen her şeyi anladım))) düzeltilmişe baktım - haklıydın (sorunu çözmek için algoritmamdan atlayamadım). Tüm ipuçları için teşekkürler. Şimdi önerilen tüm seçenekleri zaten ele aldım: hangi durumlarda hangisi işe yarar.

Size gösterdiğim sipariş döngülerinde, siparişin büyüsünün dikkate alınmadığını lütfen unutmayın - bu, danışmanın kendi emirlerini başkalarının emirlerinden ayırt edebileceği bir işarettir. Bakın, MAGIC, EA'nın bir sipariş açıldığında bir siparişe atayabileceği bir sayıdır - tüm siparişlerinin numarası aynıdır (veya gerekirse, otomatik olarak farklı numaralar oluşturulur). Bir tüccarın manuel olarak açtığı emirler için sihir her zaman sıfırdır! Bu, danışmana magic = 0 eklenirse, danışmanın tüccarın manuel işlemlerine müdahale edeceği anlamına gelir. Danışmanın tüccarın emirlerine dokunmamasını ve yalnızca kendisininkileri manipüle etmesini istiyorsanız, sıfırdan farklı bir sihirli değer ayarlamanız gerekir. Bu durumda, böyle bir büyüye sahip olmayan tüm emirler, danışman başkasınınki gibi algılayacak ve dokunmayacaktır.