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

 
Techno :
olabilmek. normal EA/komut dosyası

Belki zaten benzer bir şey vardır, onu nerede bulabileceğinizi söyleyin? Ya da kim yazabilir biliyor musunuz?

 

profesyonel yardım lütfen

kod parçası çalışmıyor (aşağıda)

MA değerleri hesaplanır ve MA değişkenine atanır

doğru, ancak dizi atanmamış. Çift olarak tanımlanan dizi

dinamik. Yazdırma prosedürü dizinin sıfır değerlerini yazdırır.Pusu nedir?

i=i_maks; // ..verilen miktarı hesapla.

if (flag_NewBar==true) // sadece ilk tik geldiğinde yeniden hesapla

{

while(i>=0) // Sayılamayan çubuklar arasında dolaş

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i);

MA=NormalizeÇift(MA, Rakamlar );

mas_MA[i]=MA;

ben--; }

 

Hatanın neden 130 olduğu belli değil mi? yardım lütfen

İşte kod:

   double myPrice      = NormalizeDouble (Bid - 10 *Pnt* 10 , Digits );
   double myTakeProfit = NormalizeDouble (myPrice + TakeProfit * Pnt* 10 , Digits );                                                     //
   if (RAVI0_2_24_D1 > 1 && RAVI0_2_24_D1 < 5 && RAVI0_2_24_D1_1 < RAVI0_2_24_D1 && RAVI0_2_24_D1_2 < RAVI0_2_24_D1_1 && RAVI0_2_24_D1_3 < RAVI0_2_24_D1_2) myTakeProfit = myTakeProfit + 25 * Pnt* 10 ;
   double myStopLoss   = NormalizeDouble (myPrice - StopLoss * Pnt* 10 , Digits );
   datetime myTimeEnd  = TimeCurrent () + wait* 60 ;
   Alert ( "OP_BUYLIMIT: Spread=" ,MarketInfo( Symbol (),MODE_SPREAD), " Stop=" ,DoubleToStr(MarketInfo( Symbol (), MODE_STOPLEVEL), 2 ), " lot=" ,DoubleToStr(lotMM, 3 ), " Pr=" ,DoubleToStr(myPrice, 6 ), " SL=" ,DoubleToStr(myStopLoss, 6 ), " TP=" ,DoubleToStr(myTakeProfit, 6 ));
   ticket= OrderSend ( Symbol (),OP_BUYLIMIT,lotMM,myPrice,Slippage,myStopLoss,myTakeProfit,ExpertName, MagicNumber,myTimeEnd,myColor);

Sorunu görmek için özellikle Uyarı'yı ekledim, ancak bulamıyorum.

İşte uyarı mesajı:

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: OrderSend hatası 130

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: Uyarı: OP_SELLLIMIT: Spread=1 Stop=10.00 lot=0.010 Pr=1.280300 SL=1.320300 TP=1.240300

 
VNG :

profesyonel yardım lütfen

kod parçası çalışmıyor (aşağıda)

MA değerleri hesaplanır ve MA değişkenine atanır

doğru, ancak dizi atanmamış. Çift olarak tanımlanan dizi

dinamik. Yazdırma prosedürü dizinin sıfır değerlerini yazdırır.Pusu nedir?

i=i_maks; // ..verilen miktarı hesapla.

if (flag_NewBar==true) // sadece ilk onay geldiğinde yeniden hesapla

{

while(i>=0) // Sayılamayan çubuklar arasında dolaş

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i);

MA=NormalizeÇift(MA,Rakamlar);

mas_MA[i]=MA;

ben--; }

IMHO dizileri, "çizim" amaçlı göstergelerdeki diziler dışında belirli bir boyuta sahip olmalıdır. Sanırım şunu koymalıyım:
 ArrayResize (mas_MA,i_max);
 
globad :

Millet, söyleyin lütfen! 10-11p fiyatına geçerken ses sinyali veren bir program yapmak mümkün mü? 0.1-0.4s için.?

Ben farklı öneriyorum, 0.1-0.4s. bu yaklaşık olarak bir tık, tik başına tüm piyasa saatinin talebindeki değişiklik.
Dosyalar:
temp_4.mq4  4 kb
 
ikatsko :

Hatanın neden 130 olduğu belli değil mi? yardım lütfen

İşte kod:

Sorunu görmek için özellikle Uyarı'yı ekledim, ancak bulamıyorum.

İşte uyarı mesajı:

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: OrderSend hatası 130

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: Uyarı: OP_SELLLIMIT: Spread=1 Stop=10.00 lot=0.010 Pr=1.280300 SL=1.320300 TP=1.240300


Açılış fiyatının (bekleyen fiyattan daha yüksek olduğu için) stop-stop kaymasını kademeli olarak sabitlere değiştirin, pratik olarak hatanın nerede olduğunu bulun.

"Bekleyen bir emrin yanlış açılış fiyatı olması durumunda 130 hatası (ERR_INVALID_STOPS) oluşturulacaktır." yardımından.

ticket= OrderSend ( Symbol (),OP_BUYLIMIT,1,Close[0]+DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 2)*2,15,0,0,ExpertName, MagicNumber,myTimeEnd,myColor);
 
VNG :

profesyonel yardım lütfen

kod parçası çalışmıyor (aşağıda)

MA değerleri hesaplanır ve MA değişkenine atanır

doğru, ancak dizi atanmamış. Çift olarak tanımlanan dizi

dinamik. Yazdırma prosedürü dizinin sıfır değerlerini yazdırır.Pusu nedir?

i=i_maks; // ..verilen miktarı hesapla.

if (flag_NewBar==true) // sadece ilk onay geldiğinde yeniden hesapla

{

while(i>=0) // Sayılamayan çubuklar arasında dolaş

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i);

MA=NormalizeÇift(MA,Rakamlar);

mas_MA[i]=MA;

ben--; }

okuyup tanışıyoruz

https://book.mql4.com/ru/operators/while

https://docs.mql4.com/ru/series/iBarShift

yapardım

 if (flag_NewBar) // пересчитываем только во время прихода первого тика
 for (i=i_max;i>= 0 ;i--) // Цикл по непосчитанным барам
    mas_MA[i]= NormalizeDouble ( iMA (g_ext_smb,g_ext_TameFrame,g_ext_Period_MA, 0 ,g_ext_Method,g_ext_PRICE,
                                                             iBarShift(g_ext_smb,g_ext_TameFrame,Time[i],false)), Digits );
if (flag_NewBar==true) // пересчитываем только во время прихода первого тика
while (i>= 0 ){ // Цикл по непосчитанным барам
mas_MA[i]= NormalizeDouble ( iMA (g_ext_smb,g_ext_TameFrame,g_ext_Period_MA, 0 ,g_ext_Method,g_ext_PRICE,i), Digits );
i--; 
} 
 
söyle bana, nesneleri çizmek için sıfırdan küçük kaç ibarshift kullanılabilir? minimum nedir?
 
costy_ :

Açılış fiyatının (bekleyen fiyattan daha yüksek olduğu için) stop-stop kaymasını kademeli olarak sabitlere değiştirin, pratik olarak hatanın nerede olduğunu bulun.

"Bekleyen bir emrin yanlış açılış fiyatı olması durumunda 130 hatası (ERR_INVALID_STOPS) oluşturulacaktır." yardımından.

Evet, UZH :) Gerçekten de hata, lagünün açılış fiyatının güncel fiyatına yakın olması. Düzeltildi, gitti. TEŞEKKÜR EDERİM

 
eddy :
söyle bana, nesneleri çizmek için sıfırdan küçük kaç ibarshift kullanılabilir? minimum nedir?

ybarshift, zamana göre bir çubuk aramasıdır (hiçbir şey işe yaramaz).

terminalde, son çubuk 0'dır, zaman çubuklara bağlıdır, yani. dize aracılığıyla geleceğe giden tek yol

 ObjectCreate ( "ff" , OBJ_VLINE , 0 ,StrToTime( "2010.12.13 20:00" ), 0 ); //