[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 274

 

Havai fişek!

Oluşturulan dosyada neden Open=Close=Yüksek=Düşük - fark yok, tüm fiyatlar aynı, dört sütun aynı fiyatların neden olduğunu anlayamıyorum. Aşağıda, verileri yükleyen Expert Advisor'ın kodu yer almaktadır.

 int init()  
  {
   int h= FileOpen ( "H" +( Period ()/ 60 )+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ";" );
     if (h< 1 )
      {
       Print ( "Файл не найден : " , GetLastError ());
       return (false);
      }
   FileSeek (h, 0 , SEEK_END );
   FileWrite (h, "Date" , "DayOfWeek" , "CLOSE" , "OPEN" , "High" , "LOW" );
   FileClose (h);        
  }
int start()
  {
   int h= FileOpen ( "H" +( Period ()/ 60 )+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ";" );
     if (h< 1 )
      {
       Print ( "Файл не найден : " , GetLastError ());
       return (false);
      }
       string Wtime= TimeToStr ( TimeCurrent (),TIME_DATE|TIME_MINUTES);
       string Wday= DoubleToStr (DayOfWeek(), 0 );
       FileSeek (h, 0 , SEEK_END );
       FileWrite (h,Wtime,Wday, DoubleToStr ( iClose ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),
                             DoubleToStr ( iOpen ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),
                             DoubleToStr ( iHigh ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),
                             DoubleToStr ( iLow ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)));
       FileClose (h);   
       Print ( "Close=" ,Close[ 0 ]);
       Print ( "Open=" ,Open[ 0 ]);
       Print ( "Low=" ,Low[ 0 ]);
       Print ( "High=" ,High[ 0 ]);
     
   return ( 0 );
  }
 

İyi günler sevgili programcılar! Bu çok ilginç Uzman Danışmana bir göz atacak kadar nazik olun! Bir şeyin düzeltilmesi gerekiyor, yani: Gerçekten ona kar almak için özel bir iz eklemek (tercihen devre dışı) istiyorum. Bence (ve umarım) bir uzmanın bunu yapması çok zor olmayacaktır!

/* Geri derleme bu forumda yasa dışıdır. ilk kez uyarı. tekrar - kalıcı yasak (SSS)*/

 
Andrew1001 :

İyi günler sevgili programcılar! Bu çok ilginç Uzman Danışmana bakma nezaketini gösterin! Bir şeyin düzeltilmesi gerekiyor, yani: Kar almak için gerçekten ona (tercihen devre dışı) özel bir iz eklemek istiyorum. Bence (ve umarım) bir uzmanın bunu yapması çok zor olmayacaktır!

/* Geri derleme bu forumda yasa dışıdır. ilk kez uyarı. tekrar - kalıcı yasak (SSS)*/



İyi! Ve o zaman kodu görmek, değiştirmek mümkün olacak şekilde nasıl düzenleyebilirim? (moderatörlere soru)
 
ANG3110 :

Orada bir örnek yazdım.

***

Ve tüm günleri değil, yalnızca son günü çizmeniz gerekiyorsa, bu biraz farklı yapılır. Ben sadece daha profesyonel bir yaklaşım öneriyorum.

 #property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 2
//==============================
extern int     hour = 5 ;
extern int     hrma = 24 ;
//==============================
double fx[];
double hm;
int p,hr,hrp;
//************************************************************
int init()  
{   
   SetIndexBuffer ( 0 ,fx); SetIndexEmptyValue ( 0 ,EMPTY); 
   
   p=hrma* 60 / Period ();
   
   return ( 0 );
}
//************************************************************
int start()
{
   int cbi= Bars - IndicatorCounted ()- 1 ; if (cbi< 0 ) return (- 1 );
   if (cbi== 1 ) cbi--;
   if (cbi> 1 ) cbi= Bars -p- 1 ;
   //-------------------------------
   for ( int i=cbi; i>= 0 ; i--)
   {
      hrp= TimeHour (Time[i+ 1 ]); 
      hr= TimeHour (Time[i]);
      
       if (hr==hour && hrp!=hr) 
      {
         fx[i+ 1 ]=EMPTY;
         hm=Close[i]; // я вставил закрытие оно работает на нижних таймфремах

//КАК ТУТ вставить High Low для  hour = 5 для ВСЕХ таймфремов ниже ограниченного таймфрема???????????

      }
      
      fx[i]=hm; 
   }
  
   return ( 0 );
}
//***************************************************************

YALNIZCA belirli bir saat için iHigh ve iLow'un nasıl yerleştirileceği AÇIK DEĞİL, aynı saat = 5; ??????????? yine aynı yumurtalar çıkıyor...

PROFESYONEL OLARAK iClose iHigh iLow üzerinden aldım, AMA bu seçenek için kodun nasıl yazıldığını unuttum ... Prensibi hatırlıyorum, detayları unuttum

 int start()
  {
int counted_bars= IndicatorCounted ();
if (counted_bars< 0 ) return (- 1 );
if ( Period () > 240 )   return (- 1 );

int LastPrevDay = iBars ( Symbol (), PERIOD_D1 );
int barnH= iBars ( Symbol (), PERIOD_H1 );

for ( int i = LastPrevDay- 1 ; i >= 0 ; i--)
{
datetime NowDay = iTime ( Symbol (), PERIOD_D1 , i);
int PrevDay = iBarShift ( Symbol (), PERIOD_D1 , NowDay);
datetime LastD =   iTime ( Symbol (), PERIOD_D1 , i- 1 ); 
int LastDay = iBarShift ( Symbol (), PERIOD_D1 , LastD);

if (PrevDay>LastDay)   /// что было дальше НЕПОМНЮ!!!!, НО вариант ЛУЧШЕ, можно непарясь ставить уровни iHigh iLow iClose iOpen
{ 
datetime x_time= StrToTime ( TimeToStr (NowDay, TIME_DATE)+ " " +shift_time); 
int x_shift= iBarShift ( Symbol (), PERIOD_H1 ,x_time);
double CL= iClose ( Symbol (), PERIOD_H1 ,x_shift);
}

buffer[i]= CL;
}

return ( 0 );
}

NASIL YAPILACAĞINI ANLAMA KRİZİNE YARDIMCI OLUN???????????????????

 

Profesyoneller bir kez daha yardım istiyorum LÜTFEN !!!!

iHigh iLow iClose nasıl doğru şekilde arabelleğe alınır ???? aşağıdaki çizelgelerde doğru bir şekilde okunabilmesi için belirli bir (H1) zaman aralığı????

 int start()
  {
int counted_bars= IndicatorCounted ();
if (counted_bars< 0 ) return (- 1 );
if ( Period () > 240 )   return (- 1 );

int LastPrevDay = iBars ( Symbol (), PERIOD_D1 );
int barnH= iBars ( Symbol (), PERIOD_H1 );

for ( int i = LastPrevDay- 1 ; i >= 0 ; i--)
{
datetime NowDay = iTime ( Symbol (), PERIOD_D1 , i);
int PrevDay = iBarShift ( Symbol (), PERIOD_D1 , NowDay);
datetime LastD =   iTime ( Symbol (), PERIOD_D1 , i- 1 ); 
int LastDay = iBarShift ( Symbol (), PERIOD_D1 , LastD);

if (PrevDay>LastDay)  
/// что было дальше НЕПОМНЮ!!!!, НО вариант ЛУЧШЕ, можно непарясь ставить уровни iHigh iLow iClose iOpen
{ 
datetime x_time= StrToTime ( TimeToStr (NowDay, TIME_DATE)+ " " +shift_time); 
int x_shift= iBarShift ( Symbol (), PERIOD_H1 ,x_time);
double CL= iClose ( Symbol (), PERIOD_H1 ,x_shift);
}

buffer[i]= CL;
}

return ( 0 );
}
 

Tünaydın! Lütfen bana nasıl doğru yazacağımı söyle

Mesele şu ki, ObjectSetText muhtemelen hiçbir şey yapmıyor, imza üstü yerine bir yazıt metni alıyorum.

 ObjectCreate ( "вершина" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_вершина],  вершина+( 10 * Point )) ;  
       ObjectSet (   "вершина" ,   OBJPROP_COLOR , Crimson ) ;
     ObjectSetText ( "вершина" , "вершина" , 5 , NULL , CLR_NONE ) ;   
 
orb :

Oluşturulan dosyada neden Open=Close=Yüksek=Düşük - fark yok, tüm fiyatlar aynı, dört sütun aynı fiyatların neden olduğunu anlayamıyorum. Aşağıda, verileri yükleyen Expert Advisor'ın kodu yer almaktadır.


Cevap yok. sembol ve zaman çerçevesi verileri -- gerekli çizelgeleri açın.

Kodda yanlış giriş:

 FileWrite (h,Wtime,Wday, DoubleToStr ( iClose ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),..

Daha doğrusu:

 FileWrite (h,Wtime,Wday, DoubleToStr ( iClose ( "GBPUSD" , 0 , 0 ), MarketInfo ( "GBPUSD" ,MODE_DIGITS)),..

Koşullar karşılanırsa, kod çalışıyor.

 
Roll :


Cevap yok. sembol ve zaman çerçevesi verileri -- gerekli çizelgeleri açın.

Kodda yanlış giriş:

Daha doğrusu:

Koşullar karşılanırsa, kod çalışıyor.

Tamam deneyeceğim!)
 
nlp2311 :

YALNIZCA belirli bir saat için iHigh ve iLow'un nasıl yerleştirileceği AÇIK DEĞİL, aynı saat = 5; ??????????? yine aynı yumurtalar çıkıyor...

PROFESYONEL OLARAK iClose iHigh iLow üzerinden aldım, AMA bu seçenek için kodun nasıl yazıldığını unuttum ... Prensibi hatırlıyorum, detayları unuttum

BUNUN NASIL YAPILACAĞINI ANLAMAK KRİZİNE YARDIMCI OLUN???????????????????


Saatlik grafiklerde ve altında, başka bir zaman diliminden fiyat almadan bir saatlik zaman diliminin çubuklarını çizebilirsiniz. iHigh vb. ile iletişim kurun. çok tavsiye edilmez, çünkü göstergeyi yavaşlatır ve başka bir zaman dilimini değiştirmesi gerekir.

Her şeyi tek bir zaman diliminde yürütmek mümkünse, bu tercih edilir.

Ve daha küçük bir zaman diliminde çizgilerle saatlik verileri pratik olarak nasıl çizebilirim? Böyle bir şey.

 #property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Gold
#property indicator_color4 Lime
//==============================
double H[],L[],O[],C[];
double hm,lm,om,cm;
int hr,hrp,di,f= 0 ;
//************************************************************
int init()  
{   
   SetIndexBuffer ( 0 ,H);
   SetIndexBuffer ( 1 ,L);
   SetIndexBuffer ( 2 ,O);
   SetIndexBuffer ( 3 ,C);
   
   if ( Period ()> 1440 ) f= 1 ;
   
   di= 60 / Period ();
   
   return ( 0 );
}
//************************************************************
int start()
{
   if (f== 1 ) { Comment ( "Период больше H1!" ); return ( 0 );}
   //-------------------------------
   int cbi= Bars - IndicatorCounted ()- 1 ; if (cbi< 0 ) return (- 1 );
   if (cbi== 1 ) cbi--;
   if (cbi> 1 ) 
   {
      cbi= Bars - 1 ;
      hm=High[cbi]; 
      lm=Low[cbi]; 
      om=Open[cbi]; 
      cm=Close[cbi]; 
   }
   //-------------------------------
   for ( int i=cbi; i>= 0 ; i--)
   {
      hrp= TimeHour (Time[i+ 1 ]); 
      hr= TimeHour (Time[i]);
      
       if (hrp!=hr) 
      {
         for ( int j=i+ 1 ; j<=i+di; j++)
         {
            H[j]=hm;
            L[j]=lm;
            O[j]=om;
            C[j]=cm;
         }
         
         hm=High[i];
         lm=Low[i];
         om=Open[i];
         cm=Close[i];
      }
       else
      {
         if (High[i]>hm) hm=High[i];
         if (Low[i]<lm) lm=Low[i];
         cm=Close[i];
      }
      
      H[i]=hm;
      L[i]=lm;
      O[i]=om;
      C[i]=cm;
   }
   
   return ( 0 );
}
//***************************************************************
 
ANG3110 :


Saatlik grafiklerde ve altında, başka bir zaman diliminden fiyat almadan bir saatlik zaman diliminin çubuklarını çizebilirsiniz. iHigh vb. ile iletişim kurun. çok tavsiye edilmez, çünkü göstergeyi yavaşlatır ve başka bir zaman dilimini değiştirmesi gerekir.

Her şeyi tek bir zaman diliminde yürütmek mümkünse, bu tercih edilir.

Ve daha küçük bir zaman diliminde çizgilerle saatlik verileri pratik olarak nasıl çizebilirim? Peki, şöyle bir şey:


Önerdiğiniz için TEŞEKKÜRLER: