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

 
Integer :


Söyle bana, "bu" yerine "bu" yazmalarının nasıl olduğunu açıkla?

1. "Bu"nun "e" ile değil "e" harfiyle yazıldığını bilmiyor musunuz?

2. Elinizi "e" harfine taşımak için çok tembel, "e"ye basmak daha mı kolay?

3. Klavyede "e" tuşu yok mu? Değilse, neden değil?

4. Herhangi bir özel gösteri var mı?

5. Bilinmeyen başka bir neden. Hangi?


Ben Rus değilim ve klavyede Rusça harf yok. Fonetik klavyeyi daha çok kullanıyorum (böyle bir program). "p"ye basıyorum ve "p" yazıyorum. e de var. "\" yazmanız gerekiyor.

Dilbilgisi hataları var, çünkü dilbilgisi çoktan unutuldu. Sadece forumlarda Rusça yazmanız gerekiyor ve yıllar sonra.

Hatalar için özür dilerim. Sert içmeyin.

 
artmedia70 :

Bu satır kaldırılabilir, çünkü iFractals(), bir "boş değer" (EMPTY_VALUE) değil, bir fraktal olmadığı için sıfır döndürür.

Size bir sorum var: Ardışık iki fraktal arayacak bir gösterge yapmaya mı çalışıyorsunuz? Yoksa Expert Advisor'da mevcut çubuğa en yakın iki ardışık fraktal mı arıyorsunuz? Bu konu boş merak değil çünkü. Göstergedeki ve EA'daki arama yöntemleri farklıdır - gösterge sondan başa hesaplanır - geçmişten günümüze, EA ise çubukları şimdiden geçmişe tarar. Buna göre, Uzman Danışmanda ve göstergede arama yönleri de farklıdır.

Ve son soru: çıktı ne olmalı?



iFractals()'ın ne döndürdüğüyle ilgilenmiyordum (şimdiye kadar buna gerek yoktu). Gerçekten 0 ise, evet, size yalan söylediğim için özür dilerim, EMPTY_VALUE öğesinin kontrol edilmesine gerek yoktur.

Kendim için güzel bir gerekçeyle, formülasyonun böyle bir versiyonunu buldum - EMPTY_VALUE ile genel durum dikkate alındı ve 0 dönüşü olan yereller değil

Ama kendisi böyle basit bir şeyi bilmediği için gülünç ve utanıyor.

Kod, anladığım kadarıyla gösterge içindi - artmedia70 , danışmanın yaklaşımının farklı olması konusunda haklı.

Zaman yok - eve döndüğümde her şeyi gece yapacağım, çünkü mi gince birbirini çok iyi anlamadı (iki fraktalın koşulunu bulduktan sonra olay işlenmelidir) ve her şey yolunda.

 //----
   БЛОК ПРОВЕРКИ НОВОГО БАРА;                 //проверить наличие нового бара 

   int    a1= 0 ,                               //преведущий фрактал (-1 ->нижний, 1 -> верхний)
         a2,                                 //нынешний фрактал  (-1 ->нижний, 1 -> верхний)
         a3,                                 //сума преведущий + нынешний
         kilkict,                             //была введена с мыслю уменьшить перерасчет после глобального расчета (идея просто еще не реализована)
         frac,                               //frac - флаг существования фракталов,
         frac1= 0 ,                             //frac1- счетчик фракталов (+1 или 0 за цикл)сейчас просто выполняет роль фильтра, надо найти сперва 2 фрактала чтобы приступить к их сравнению.
         i;
     
   kilkict= Bars ;                            

   for (i= 3 ; i<kilkict;i++){                 // 3
      a2= 0 ;
      frac= 0 ;
       if ( iFractals ( NULL , 0 , MODE_UPPER, i)> 0 ) {            
         if (Bufer0!= EMPTY_VALUE ) {           //не нужно для iFrctals()данной проверки условий
            a2+= 1 ;                           //к числу фракталов добавляем 1
            frac= 1 ;                           //флаг - фрактал есть
            frac1++;                         //счетчик увеличиваем на 1
         }
      }
       if ( iFractals ( NULL , 0 , MODE_LOWER, i)> 0 ) {            
         if (Bufer0!= EMPTY_VALUE ) {           //не нужно для iFrctals() данной проверки условий
             if (a2== 0 ){              
               frac1++;                       //счетчик увеличиваем на 1 
               frac= 1 ;                       //флаг - фрактал есть
            }
            a2+=- 1 ;                           //к числу фракталов добавляем -1(т. е. уменшаем)
         }
      } 
       if (frac== 0 ){ continue ;}                 // если флага нет (фрактал не найден)
       if (frac1== 1 ){                         //если счетчик равен 1,
         a1=a2; 
         continue ;
      }          
      a3=a1+a2;
       if (a3< 0 )           { a1=a2; БЛОК ОБРАБОТКИ УСЛОВИЯ ДВА ФРАКТАЛА НАЙДЕНО; continue ;} //Два фрактала вниз  подряд найдено// 
       if (a3> 0 )           { a1=a2; БЛОК ОБРАБОТКИ УСЛОВИЯ ДВА ФРАКТАЛА НАЙДЕНО; continue ;} //Два фрактала вверх подряд найдено //
       if (a3== 0 && a1== 0 ) { a1=a2; БЛОК ОБРАБОТКИ УСЛОВИЯ ДВА ФРАКТАЛА НАЙДЕНО; БЛОК ОБРАБОТКИ УСЛОВИЯ ДВА ФРАКТАЛА НАЙДЕНО; } // Два фрактала подряд вверх и два фрактала подряд вниз найдено //
   } 

 
gince :


...

Hatalar için özür dilerim. Sert içmeyin.


Evet, sadece merak ediyorum, komik.
 
Integer :

Evet, sadece merak ediyorum, komik.

Düzelttiğin için teşekkürler.
 
if (!SL== 0 )
   {
  dollarsPerPip = lot/SL;
   }

Peki bunu kim yapıyor??

 if (SL> 0 ) dollarsPerPip = lot/SL;

Neden bir demet { } ?? ve süreci yavaşlatmak...

bir seçenek olarak mümkün

 if (SL) dollarsPerPip = lot/SL;
 
gince :


Gösterge ve sonra göreceğiz. Göstergedeki ve EA'daki arama yöntemleri farklıdır - gösterge sondan başa hesaplanır - geçmişten günümüze, EA ise çubukları şimdiden geçmişe tarar.

( i=kilkict;i> 0 ;i--) için

Sonuç, ilk iki -> sat (aşağı ok), alt iki -> satın al (yukarı ok). Fraktalın sağında +2 çubuk görünmesi için sinyal. Hikayelere ilk önce görsel olarak bakmak istediğim şey bu. Ve muhtemelen bir filtreye ihtiyacınız var.

O zaman soru şu: Sadece tarihe bakmak istiyorsanız neden bu göstergeyi yazarak kendinize eziyet ediyorsunuz? Ayrıca, Makale göstergesine bir bağlantı verildi. Tam olarak istediğini yapar:

 //+------------------------------------------------------------------+
//|                                                    iFractals.mq4 |
//|                             Copyright © 2010, EGEN Software LTD. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright   "Copyright © 2010, EGEN Software LTD."
#property link         "http://www.metaquotes.net"

#property indicator_chart_window

#property indicator_buffers   2
#property indicator_color1    Lime
#property indicator_color2    Red
#property indicator_width1     2
#property indicator_width2     2

datetime TIME; double F,F1,F2;

double WAVE. 0 [];
double WAVE. 1 [];

bool EQ( int value1, int value2)
{
   return (value1==value2);
}

bool ZERO( int value)
{
   return (EQ(value, 0 ));
}

int MathSign( double value1, double value2)
{
   if (value1< 0 )
       if (value2< 0 ) return (- 1 );
   if (value1> 0 )
       if (value2> 0 ) return ( 1 );
   return ( 0 );
}

bool TOTAL( int index)
{
   return (index< Bars );
}

double FRACTALS( int mode, int shift)
{
   return ( iFractals ( NULL , 0 ,mode,shift));
}

double UPPER( int shift)
{
   return (FRACTALS(MODE_UPPER,shift));
}

double LOWER( int shift)
{
   return (FRACTALS(MODE_LOWER,shift));   
}

int PEAK( int shift)
{
   int peak= 0 ;
   double F1=UPPER(shift); 
   if (F1> 0 ) peak++;
   double F2=LOWER(shift); 
   if (F2> 0 ) peak--;
   F=F1+F2; 
   return (peak);
}

void init()
{
   IndicatorBuffers( 2 );
   SetIndexBuffer ( 0 ,WAVE. 0 );
   SetIndexStyle( 0 , DRAW_ARROW ,EMPTY);  
   SetIndexArrow( 0 , 236 );    
   SetIndexBuffer ( 1 ,WAVE. 1 );
   SetIndexStyle( 1 , DRAW_ARROW ,EMPTY);      
   SetIndexArrow( 1 , 238 );
   IndicatorDigits( Digits );
   IndicatorShortName( "iFractals" );  
}

bool F1( int shift)
{
   int peak=PEAK(shift);
   if (ZERO(peak)) return ( false ); 
   F1=F*peak;
   return ( true );
}

int WAVE. 1 ( int shift)
{   
   for ( int i=shift; TOTAL(i); i++) 
       if (F1(i)) break ; 
   return (i);
}

bool F2( int shift)
{
   int peak=PEAK(shift);
   if (ZERO(peak)) return ( false ); 
   F2=F*peak;
   return ( true );
}

int WAVE. 2 ( int shift)
{   
   for ( int i=shift; TOTAL(i); i++) 
       if (F2(i)) break ; 
   return (i);
}

void WAVE( int shift)
{
   WAVE. 0 [shift]= EMPTY_VALUE ;
   WAVE. 1 [shift]= EMPTY_VALUE ;
   shift=WAVE. 1 (shift); 
   int index=shift; shift++;
   shift=WAVE. 2 (shift);
   int wave=MathSign(F1,F2);
   F1= MathAbs (F1);
   F2= MathAbs (F2);
   if (wave< 0 ) 
       if (F1<F2) WAVE. 1 [index]=F1; else WAVE. 0 [index]=F1;                  
   if (wave> 0 ) 
       if (F1>F2) WAVE. 0 [index]=F1; else WAVE. 1 [index]=F1;       
}   

void CheckWave()
{
   for ( int i= 3 ; TOTAL(i); i++) WAVE(i);
}   

void start()
{
   CheckWave();
}

Derleyin ve hikayelere bakın. Ve sonra kendi sonuçlarınızı çıkarın.

Yoksa "bir hamakta durmak" daha mı uygun?

 
artmedia70 :

O zaman soru şu: Sadece tarihe bakmak istiyorsanız neden bu göstergeyi yazarak kendinize eziyet ediyorsunuz? Ayrıca, Makale göstergesine bir bağlantı verildi. Tam olarak istediğini yapar:

Derleyin ve hikayelere bakın. Ve sonra kendi sonuçlarınızı çıkarın.

Yoksa "bir hamakta durmak" daha mı uygun?



ve türkiye'nin mantığını takip ediyorsunuz))

20 işlevi açmaktan çekinmeyin ???

 
VOLDEMAR :

Peki bunu kim yapıyor??

Neden bir demet { } ?? ve süreci yavaşlatmak...

bir seçenek olarak mümkün


Güzel, bilmiyordum, kontrol etmem gerekecek.
 
ALXIMIKS :


ve türkiye'nin mantığını takip ediyorsunuz))

20 işlevi açmaktan çekinmeyin ???

Orada, her fonksiyon bir bakışta anlaşılabilir bir sonuç verir. Bir kere bile tereddüt etmem... Orada her şey gün gibi ortada. Ayrıca, buna ihtiyacı var mı? Şifreye değil tarihe bakması gerekiyor.
 
VOLDEMAR :

Peki bunu kim yapıyor??

Neden bir demet { } ?? ve süreci yavaşlatmak...

bir seçenek olarak mümkün

Düzeltme için teşekkürler.

çok saçma bir alışkanlığım var

koşullu bir ifade yazarak

hemen parantez koyun