MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 132

 
İnsanlar. Bana yardım et lütfen. Soru. MACD göstergesi konusunda bir danışman yapıyorum. Aslında açmanın iki, kapanmanın iki şartı vardır. Buy'u kapatmak için ilk koşul: Sinyal 0'dan büyük, MACD 0'dan büyük, ilk çubuk ikinciden küçük ve ikinci çubuk üçüncüden büyük. İkinci koşul: sinyal 0'dan küçük, MACD 0'dan küçük, ilk çubuk ikinciden küçük ve ikincisi birinciden küçük. Ama bir şey var ki... Bu koşullar, satışı kapatmak için yapılan anlaşmanın şartlarını tamamen kopyalıyor. Onları nasıl ayırabilirim? Lütfen bana söyle. Zirvenin histogramda tekrarlandığına dair bir fikir var, ancak o zaman zirvenin zaten orada olduğunu nasıl açıklayabiliriz? Expert Advisor'da böyle bir hafıza nasıl oluşturulur?
 

Herkese merhaba, bir danışman yazıyorum. Sonuç olarak, iki zıt yönlü stop emri açılır, biri tetiklendiğinde ikincisi silinir, ancak test cihazında sadece satın alma emri silinir.Sellstop'u silmeye çalışırken 4108 hatası çıkıyor. Anlamama yardım et. Sıralamayı silen bir işlev eklendi.

Şimdiden teşekkürler!!!

void DellSell()
  {
   int dell;
   for ( int i= OrdersTotal () - 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
        {
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
           {
             if ( OrderType ()== OP_SELLSTOP && CountBuyDell()> 0 )
               dell= OrderDelete ( OrderTicket ());
             if (!dell)
              {
               Print ( "Ордер SellStop не удален" );
              }
           }
        }
     }
   return ;
  }
 

Selamlar. Göstergeden nasıl doğru veri alacağımı söyle.

Kırmızı ve mavi simgelerden veri gerekiyor. İlgili tamponlarda, çizim olmadığında bazı astronomik değerler. Onları 10000 ile sınırladım. Çalışıyor gibi görünüyor, ancak kaçırılan sinyaller var. Nasıl düzeltilir? İşte nasıl aldım:

PriceHigh1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, Interpolate, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 4, 0);
PriceLow1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, Interpolate, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 3, 0);
if (FiyatYüksek1<10000)FiyatYüksek=FiyatYüksek1; başka FiyatYüksek=0;
if (Düşük Fiyat1<10000) FiyatDüşük=FiyatDüşük1; başka FiyatDüşük=0;
Dosyalar:
 
Andrey Sokolov :

Selamlar. Göstergeden nasıl doğru veri alacağımı söyle.

Kırmızı ve mavi simgelerden veri gerekiyor. İlgili tamponlarda, çizim olmadığında bazı astronomik değerler. Onları 10000 ile sınırladım. Çalışıyor gibi görünüyor, ancak kaçırılan sinyaller var. Nasıl düzeltilir? İşte nasıl aldım:

PriceHigh1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, Interpolate, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 4, 0);
PriceLow1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, Interpolate, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 3, 0);
if (FiyatYüksek1<10000)FiyatYüksek=FiyatYüksek1; başka FiyatYüksek=0;
if (Düşük Fiyat1<10000) FiyatDüşük=FiyatDüşük1; başka FiyatDüşük=0;

Kodlara bakmadım ama yardımcı olacağını düşünüyorum. Yanılıyor olabilirim:

if (PriceHigh1!= INT_MAX ) PriceHigh=PriceHigh1;   else PriceHigh= 0 ;
if (PriceLow1!= INT_MAX ) PriceLow=PriceLow1;   else PriceLow= 0 ;
 
Vitaly Muzichenko :

Kodlara bakmadım ama yardımcı olacağını düşünüyorum. Yanılıyor olabilirim:

if (PriceHigh1!= INT_MAX ) PriceHigh=PriceHigh1;   else PriceHigh= 0 ;
if (PriceLow1!= INT_MAX ) PriceLow=PriceLow1;   else PriceLow= 0 ;
Geçmediğin için teşekkürler, ama yardımcı olmadı.
 
Andrey Sokolov :
Geçmediğin için teşekkürler, ama yardımcı olmadı.
"Astronomik" değerler olduğundan EMPTY_VALUE ile karşılaştırmaya çalışın.
 
ArraySearchDouble() ve EquationDirect(), mql 4'ün eski sürümünde mevcuttur. Ve yeni versiyonun bir çeşit analogu var.
 
27311065 :
ArraySearchDouble() ve EquationDirect(), mql 4'ün eski sürümünde mevcuttur. Ve yeni versiyonun bir çeşit analogu var.
Bunu eski sürümde nerede gördün? Bunlar kendi kendine yazılan fonksiyonlardır. Değil?
 
Bahşiş için teşekkürler
 

Söyle bana, lütfen, verilerle çalışmanın en iyi nasıl organize edileceğini - hesaplama sonuçlarına bağlı olarak alt gruplara ayrılacak bir sayı serisi verilir, bu gruplar bir diziye kaydedilmelidir, ayrıca her grubun iki tane olacaktır. grup başına veya daha fazla gösterge (bir grup sayı ayrı ayrı hesaplanan göstergeye ait olacaktır). Veriler böyle görünüyor

1/1,2,3,4/23/33

2/1,4,5/26/11

3/3,4,5,33,56,38/21/44

peki ve saire