Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 95

 
hoz :

Evet. i_ içeren değişkenler girdi değişkenleridir (kullanıcı tarafından değiştirilebilen input kelimesinden ..) ve pt de her yerde görülebilen global bir değişkendir ..

Hayır, parti normalleşmedi. Bununla test cihazında hiç karşılaşmadım .. Ve nesneyle ne ilgisi var (hata 4200)?

Bunun çoklukla ne alakası var? Parti yanlışsa, nesnelerin oluşturulmasına neden olacak olan hata işleme işlevi çağrılır.

Parti yanlışsa, test cihazında bir hata olacaktır. Nesneler inşa etmediğini ama bir işlevde olduğunu söylüyorsun

 void pr ( string txt)

nesneler inşa edilir:

 if (info[i]!= "" ){
cm=info[i];
ObjectCreate ( "txtw" +i, OBJ_LABEL , 0 , 0 , 0 );
ObjectSet    ( "txtw" +i, OBJPROP_CORNER , 1 );
ObjectSet    ( "txtw" +i, OBJPROP_XDISTANCE , 10 );
ObjectSet    ( "txtw" +i, OBJPROP_YDISTANCE , 30 + 15 *i);
ObjectSetText( "txtw" +i,cm, 10 , "Times New Roman" , Green);}

Büyük ihtimalle köpeğin ortalığı karıştırdığı yer orasıydı. Orayı dürt. Bu fonksiyondaki grafik çıktısını yorumlayın. Hata ortadan kalkarsa, işlevde ortaya çıkmasının nedenini arayın.

 void pr ( string txt)
 
vovak_85 :

Tünaydın! Mql programlamada yeniyim. Aşağıdaki bir sorun vardı - özel bir gösterge var, benim tarafımdan yazılmamış, ok şeklinde alım satım sinyalleri veriyor, bunun için göstergenin sırasıyla iki tamponu var, sorun şu ki bunları doğru okuyamıyorum göstergeden danışmana sinyaller verir, böylece bir alım veya satım yapar.

Gösterge kodu:

...

Kodu foruma doğru şekilde yapıştırmak için SRC'ye tıklayın ve ardından kodu kopyalayın.

 

Tünaydın! Mql programlamada yeniyim. Bir iz sorunu vardı - özel bir gösterge var , tarafımdan yazılmamış, ok şeklinde alım satım sinyalleri veriyor bunun için göstergede sırasıyla iki adet tampon var sorun şu ki doğru düzgün yapamıyorum Bu sinyalleri göstergeden danışmana okuyun, böylece bir alım veya satım yapın.

Gösterge kodu:

 #property indicator_chart_window

#property indicator_buffers 7

#property indicator_color1 Red

#property indicator_color2 MediumBlue

#property indicator_color3 Red

#property indicator_color4 MediumBlue

#property indicator_color5 Blue

#property indicator_color6 Red

#property indicator_color7 Blue


extern int MM = 3 ;

extern int MP = 20 ;

double a[];

double b[];

double c[];

double d[];

double e[];

double g[];

double h[];

int x = 0 ;


int init() {

SetIndexStyle( 0 , DRAW_HISTOGRAM , STYLE_SOLID , 1 , Red);

SetIndexBuffer ( 0 , a );

SetIndexStyle( 1 , DRAW_HISTOGRAM , STYLE_SOLID , 1 , MediumBlue);

SetIndexBuffer ( 1 , b);

SetIndexStyle( 2 , DRAW_HISTOGRAM , STYLE_SOLID , 2 , Red);

SetIndexBuffer ( 2 , c);

SetIndexStyle( 3 , DRAW_HISTOGRAM , STYLE_SOLID , 2 , MediumBlue);

SetIndexBuffer ( 3 , d);

SetIndexStyle( 4 , DRAW_ARROW , STYLE_SOLID , 3 );

SetIndexBuffer ( 4 , e);

SetIndexArrow( 4 , 233 );

SetIndexStyle( 5 , DRAW_ARROW , STYLE_SOLID , 3 );

SetIndexBuffer ( 5 , g );

SetIndexArrow( 5 , 234 );

SetIndexStyle( 6 , DRAW_ARROW , STYLE_SOLID , 3 );

SetIndexBuffer ( 6 , h);

SetIndexArrow( 6 , 233 );

SetIndexDrawBegin( 0 , 5 );

SetIndexBuffer ( 0 , a );

SetIndexBuffer ( 1 , b);

SetIndexBuffer ( 2 , c);

SetIndexBuffer ( 3 , d);

return ( 0 );

}


int deinit() {

return ( 0 );

}


int start() {

double qw;

double qe;

double qr;

double qt;

double as;

double ad;

double af;

double ag;

int i,razmer;


if ( Bars <= 10 ) return ( 0 );

x = IndicatorCounted();

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

if (x > 0 ) x--;

for ( int zx = Bars - x - 1 ; zx >= 0 ; zx--) {

qw = iMA ( NULL , 0 , MP, 0 , MM, PRICE_CLOSE , zx);

qe = iMA ( NULL , 0 , MP, 0 , MM, PRICE_LOW , zx);

qr = iMA ( NULL , 0 , MP, 0 , MM, PRICE_OPEN , zx);

qt = iMA ( NULL , 0 , MP, 0 , MM, PRICE_HIGH , zx);

as = (c[zx + 1 ] + (d[zx + 1 ])) / 2.0 ;

ag = (qw + qt + qr + qe) / 4.0 ;

ad = MathMax (qt, MathMax (as, ag));

af = MathMin (qr, MathMin (as, ag));

if (as < ag) {

a[zx] = af;

if (a[zx] < b[zx] && a[zx + 1 ] < b[zx + 1 ] && a[zx + 2 ] > b[zx + 2 ] && a[zx + 3 ] > b[zx + 3 ])

e[zx] = af - 10.0 * Point ;

else {

razmer= ArrayRange ( 4 , 1 );

for (i= 1 ;i<razmer;i++)

e[i]= 0 ; }

b[zx] = ad;

} else {a[zx] = ad;

b[zx] = af;

if (a[zx] > b[zx] && a[zx + 1 ] > b[zx + 1 ] && a[zx + 2 ] < b[zx + 2 ] && a[zx + 3 ] < b[zx +

3 ]) g[zx] = af + 10.0 * Point ;

}

c[zx] = as;

d[zx] = ag;

}

return ( 0 );

}
 Код советника для получения значений из индикатора и совершения сделки
 double L_B= iCustom ( 0 , 0 , "Makedonskii" ,MM,MP, 0 , 4 );

double L_S= iCustom ( 0 , 0 , "Makedonskii" ,MM,MP, 0 , 5 );

if (L_B!= 0 ) Ticket= OrderSend ( Symbol (), OP_BUY, Lot, Ask, 10 , Bid - 15 * Point , Ask + 15 * Point , "" , MagicNumber, 0 , Green);

if (L_S!= 0 ) Ticket= OrderSend ( Symbol (), OP_BUY, Lot, Bid, 10 , Ask + 15 * Point , Bid - 15 * Point , "" , MagicNumber, 0 , Green);
Кому несложно подскажите как правильно получать значения на покупку и продажу
 
vovak_85 :
Bileceğim, teşekkürler! düzeltmek?
Lütfen önceki mesajınızda düzeltin.
 
vovak_85 :
Bileceğim, teşekkürler! düzeltmek?
Kesinlikle! Gereksiz ayak örtüsünü çıkarmak!
 
hoz :

pr - yazdırma işlevi. Ve hata zaten standart bir sabittir. Mantıken, böyle bir senaryoda olmak genellikle kabul edilemez. pr işlevi hakkında hala bir şüpheniz varsa, işte burada:


Peki, normal bir baskı ile değiştirin ve günlüğe bakın.

orada bir nesne yaratılıyor, nesnenin adı benzersiz değil , nesneyi oluştururken hata bu.

 
artmedia70 :

Bunun çoklukla ne alakası var? Parti yanlışsa, nesnelerin oluşturulmasına neden olacak olan hata işleme işlevi çağrılır.

Parti yanlışsa, test cihazında bir hata olacaktır. Nesneler inşa etmediğini ama bir işlevde olduğunu söylüyorsun

nesneler inşa edilir:

Büyük ihtimalle köpeğin ortalığı karıştırdığı yer orasıydı. Orayı dürt. Bu fonksiyondaki grafik çıktısını yorumlayın. Hata ortadan kalkarsa, işlevde ortaya çıkmasının nedenini arayın.



Bunu zaten kendim düşündüm ve şimdi cevabınız aynı noktaya geldi. Bu işlevle yerlerin yorumlanmasıyla sorun ortadan kalktı. Görünüşe göre, onu kullanırken, girişte tüm nesneleri bir kerede silmeniz gerekiyor, değil mi? Onlar. pr fonksiyonunun en başında, yani...
 
hoz :

Bunu zaten kendim düşündüm ve şimdi cevabınız aynı noktaya geldi. Bu işlevle yerlerin yorumlanmasıyla sorun ortadan kalktı. Görünüşe göre, kullanırken girişteki tüm nesneleri bir kerede silmeniz gerekiyor, değil mi? Onlar. pr fonksiyonunun en başında, yani...

Dürüst olmak gerekirse, işlevinin mantığını bilmiyorum. Nesneleri kaldırmalı mı yoksa inşa etmeli mi bilmiyorum. Bana ondan ne istediğini söyle ve mantıkta aksaklığın nerede olduğunu görelim. Ancak f-tion bir grafik oluşturmaya çalıştığı için. nesne, ancak bir hata veriyor, bu yüzden zaten var. Programınızın mantığına göre sırada ne var? Farklı bir adla yeni bir nesne oluşturabilirsiniz (örneğin, nesne adlarına geçerli saati ekleyin (TimeToStr(TimeCurrent()))) veya nesne zaten varsa, ancak özelliklerini değiştirmeniz gerekiyorsa, nesneyi yeni bir şekilde oluşturun, ancak özelliklerini değiştirin. O zaman hata artık görünmeyecek.

Her şey basit. Önemli olan ne istediğini bilmek... :)

 
vovak_85 :

Tünaydın! Mql programlamada yeniyim. Aşağıdaki bir sorun vardı - özel bir gösterge var, benim tarafımdan yazılmamış, ok şeklinde alım satım sinyalleri veriyor, bunun için göstergenin sırasıyla iki tamponu var, sorun şu ki bunları doğru okuyamıyorum göstergeden danışmana sinyaller verir, böylece bir alım veya satım yapar.

Gösterge kodu:


Tüm küme parantezlerine sahip olduğunuzdan emin misiniz? Yer yer yoklar. Mantık bu yüzden sakat. Ve büyük olasılıkla, sonuç beklediğiniz gibi değil.