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

 
AlexeyVik :
Ve anne belgeleri okumaya izin vermiyor ??? Örneğin SendMail

Evet, elbette bu işlevi biliyorum, yani - terminal penceresindeki bir sekme (ticaret, varlıklar, hesap geçmişi, haberler, uyarılar, MAIL, vb.) sunucuyu yeniden başlatma hakkında bir mesaj alıyor mu?

 
optionany :

Evet, elbette bu işlevi biliyorum, yani - terminal penceresindeki bir sekme (ticaret, varlıklar, hesap geçmişi, haberler, uyarılar, MAIL, vb.) sunucuyu yeniden başlatma hakkında bir mesaj alıyor mu?

Peki, soruyu düşüncelere göre formüle edin.

Açıkça düşünen, açıkça ifade eder...

 

Merhaba. Hatamın ne olduğunu, daha doğrusu programımdaki bu bloktaki kusurun ne olduğunu anlayamıyorum:

//---Açık siparişlerin ayrı muhasebeleştirilmesi

for(int i=OrdersTotal()-1;i>=0;i--) // Siparişler arasında döngü yap
{
OrderSelect (i,SELECT_BY_POS,MODE_TRADES); // Bir sipariş bulunursa, o zaman:
{
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=Magic) devam ediyor;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
Toplam++;
}
dönüş;
}
//---

for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=Magic) devam ediyor;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_SEL)
Toplam++;
}
dönüş;
}
//---

EA, hem test cihazında hem de demo hesabında kararlı bir şekilde çalışıyor ancak derleme yaparken 2 uyarı veriyor: 'OrderSelect' dönüş değeri kontrol edilmeli, hiçbir şekilde üstesinden gelemiyorum. Mümkünse lütfen yanlış veya eksik yazdıklarımı söyleyiniz.

 
YuryVL :

Merhaba. Hatamın ne olduğunu, daha doğrusu programımdaki bu bloktaki kusurun ne olduğunu anlayamıyorum:

//---Açık siparişlerin ayrı muhasebeleştirilmesi

for(int i=OrdersTotal()-1;i>=0;i--) // Siparişler arasında döngü yap
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES); // Bir sipariş bulunursa, o zaman:
{
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=Magic) devam ediyor;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Büyü)
if(OrderType()==OP_BUY)
Toplam++;
}
dönüş;
}
//---

for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=Magic) devam ediyor;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Büyü)
if(OrderType()==OP_SEL)
Toplam++;
}
dönüş;
}
//---

EA, hem test cihazında hem de demo hesabında kararlı bir şekilde çalışıyor, ancak derlerken bir uyarı veriyor: 'OrderSelect' dönüş değeri kontrol edilmeli, bunun üstesinden gelemiyorum. Mümkünse lütfen yanlış veya eksik yazdıklarımı söyleyiniz.


Kod eklemek için SRC ! Ve neden 2 döngü, hayır olup olmadığını kontrol ettikten sonra, evet olup olmadığını kontrol edin ve Toplam her iki türü de saymalı ve her biri için ayrı ayrı bellekte tutmalı? Bunu kimse anlamayacak! Herkesin ne istediğinizi anlaması için mantığı oluşturmalısınız, o zaman derleyici anlayacaktır!
 
YuryVL :

Merhaba. Hatamın ne olduğunu, daha doğrusu programımdaki bu bloktaki kusurun ne olduğunu anlayamıyorum:

...

1) Kodu buraya doğru bir şekilde eklemek için SRC'ye tıklayın ve ardından kodunuzu pencereye kopyalayın (aşağıdaki şekil).


2) Bu kodu deneyin:

 int Total_BUY= 0 , Total_SELL= 0 ; // новые переменные как счетчики ордеров

//---Раздельный учёт открытых ордеров
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // Цикл перебора ордеров
  {
   // OrderSelect() надо выбирать с помощью if
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)); // Если найден ордер, то:
     {
       if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ;
       else
        {
         if ( OrderType ()==OP_BUY)  Total_BUY++;   // считает открытые позиции на покупку
         if ( OrderType ()==OP_SELL) Total_SELL++; // считает открытые позиции на продажу
        }
     }
  }
 

Bir uyarı nasıl zorlanır

 Alert (OrderOpenPrice());

virgülden sonra 5 rakamlı emir açılış fiyatı gösterilsin mi? NormalizeDouble(OrderOpenPrice(),Digits) yardımcı olmuyor. (Sipariş önceden seçilmiştir).

 
JoinDoe :

Bir uyarı nasıl zorlanır

virgülden sonra 5 rakamlı emir açılış fiyatı gösterilsin mi? NormalizeDouble(OrderOpenPrice(),Digits) yardımcı olmuyor. (Sipariş önceden seçilmiştir).

 Alert ( DoubleToString (OrderOpenPrice(), Digits ));
 
Leo59 :
Merhaba canım!

Lütfen iki parçanın kesişme noktasının koordinatlarını bulmak için algoritmayı çevirmeme yardım et

Makaleden:

Her şey çok basit!
x1, y1 ve x2, y2 - ilk bölümün köşelerinin koordinatları;
x3, y3 ve x4, y4 - ikinci bölümün köşelerinin koordinatları;

kesişimi bulmak için çizgilerin denklemlerini oluştururuz:
ilk denklem:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
ikinci denklem
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
bu denklemler iki noktadan geçen düz bir çizgi tanımlar, ihtiyacımız olan da bu.
Bu denklemlerden aşağıdaki formülleri kullanarak x ve y'yi buluruz:
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)- (y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
doğrularımız kesiştiği için, bulmamız gereken (x, y) koordinatlarıyla ortak bir kesişme noktalarına sahiptirler.
kavşağın segmentlerimize ait olması için onu sınırlamamız gerekiyor, yani. koşulu kontrol edin:
Eğer
(((x1<=x)ve(x2>=x)ve(x3<=x)ve(x4 >=x))veya((y1<=y)ve(y2>=y)ve(y3<= y) ve(y4>=y)))
o zaman bu segmentlerin bir kesişme noktası vardır ve eğer değilse, o zaman kesişme noktası yoktur.
Eğim katsayılarını kullanarak bu segmentlerin paralelliğini de kontrol etmelisiniz:
k1:=(x2-x1)/(y2-y1);
k2:=(x4-x3)/(y4-y3);
burada k1 ve k2, segmentlerin ОХ ekseninin pozitif yönüne eğim açısının teğetleridir, eğer k1=k2 ise, segmentler paraleldir ve bu nedenle kesişme noktaları yoktur.

Ya da belki arşivlerdeki biri zaten hazırdır?


belki
 

MT 4'te terminalin dahili postasına alınan mesajları (kaldıracın değiştirilmesi, sunucunun yeniden başlatılması vb. hakkında) SMS veya e-posta yoluyla yeniden yönlendirme olasılığı veya işlevi var mı?

P. s terminal penceresinde yer imi, (ticaret, varlıklar, hesap geçmişi, haberler, uyarılar, MAIL , vb.)?

 
Merhaba sevgili forum kullanıcıları!

MQL4 dilini öğrenmeye başladım ve basit bir gösterge yazarken çözemediğim bir problemle karşılaştım. Sorunun özü:

1_Günün geri kalanının Yüksek'i nasıl bulunur, basit bir döngü vardır Kapat[i]-Aç[i+1], Yüksek'i bulmanız gerekir[i - günün sonuna kadar]. Örneğin, [i],[1],[2]'den günün sonuna (PERIOD_H1) kadar. Nasıl yapacağım hakkında hiçbir fikrim yok. 'iHigh' işlevi vardır, ancak bu biraz farklıdır.

2_ hepsi bu kadar değil, küstahlık için kusura bakmayın, 'iBars' işlevi var( Karşılık gelen sembol ve nokta için geçmişteki çubuk sayısını döndürür). Lütfen sadece karşılık gelen sembol ve noktayı değil, aynı zamanda zaman içinde kaç çubuk hesaplamak için hangi işlev kombinasyonunun kullanılabileceğini söyleyin, diyelim ki "12:00" veya tarihte "15:00" diyelim (PERIOD_H1).

Rehberin tamamına baktım, belki bir şeyi gözden kaçırdım ama uygun bir şey bulamadım. Arama motorunu kullandım sonuç aynı. Benzer konuların nerede tartışıldığını bilen varsa, lütfen bana bağlantıyı gönder.

Şimdiden teşekkür ederim!