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

 

Herkese selam,

Hindi yaptım, 45 derecede iki çizgi çekiyor, kesiştiğinde yatay bir çizgi koymak istiyorum.

Peki kavşakları nasıl hesaplarsınız?

Bir nokta üzerinden önceki günün Düşük / Yüksek'ten çekilir.

Böyle bir çizgi elde etmek için günün başlangıcından önceki noktadan ve kiriş noktasından diğer yönde çizerim.

En çok listeleme kodu nasıl yazılır? Şimdiye kadar bunu yapmadı. Resim:

Вот начну искат как цена двигается-толко надо увидет ее-первая ест,но вторая 0 :
price1 = NormalizeDouble (ObjectGet( "Dn" ,OBJPROP_PRICE1), Digits );
price2 = NormalizeDouble (ObjectGet( "Dn" ,OBJPROP_PRICE2), Digits );
Time_start - ето синяя вертикалная линия
double b3=iBarShift( Symbol (), 0 ,Time_start);      
double b4=iBarShift( Symbol (), 0 , TimeCurrent ());
ну и цикл поиска
for ( int j = b4;j <= b3;j++){
Ну що искат,если я не вижу то,что ищу?
Застрял.
 
bond007 :
....ve nasıl öğrenebilirler??)
net değil .... bazıları ticaretin danışmanların yardımıyla yapılabileceğini söylüyor, diğerleri bunun imkansız olduğunu söylüyor, ancak örneğin bir DC bir danışman kullanmanıza izin veriyorsa, o zaman nasıl?

DC danışmanının kodu hiçbir şekilde görülemez .... sadece sipariş verme ve siparişlerde yorum yapma yoğunluğunu görürler ... Terminalde uzmanların çalışmasının yasak olduğu bazı DC'ler vardır ... yani, danışmanı grafiğe yapıştırdığınızda, sadece ticaret yapmıyor ... ds sunucusunun ayarları tarafından yasaklandı xxx hatası verecek. veya 2013.01.18 22:45:03 '30xxxxx' gibi bir şey: uzmanlar tarafından alım satım yasaktır



not Neden herkes koda bu kadar takıntılı?

 
hoz :

Teşekkürler, şimdi iştahın görüneceğini görüyorum :)
Senin adına sevindim ve yavaş yavaş basitten karmaşığa doğru, herhangi bir program yazmak için gerekli olan anlayışınızı programlayacaksınız. İyi şanlar!
 
mario065 :

Herkese selam,

Hindi yaptım, 45 derecede iki çizgi çekiyor, kesiştiğinde yatay bir çizgi koymak istiyorum.

Peki kavşakları nasıl hesaplarsınız?

Bir nokta üzerinden önceki günün Düşük / Yüksek'ten çekilir.

Böyle bir çizgi elde etmek için günün başlangıcından önceki noktadan ve kiriş noktasından diğer yönde çizerim.

En çok listeleme kodu nasıl yazılır? Şimdiye kadar bunu yapmadı. Resim:

Yardım etmek.
 
drknn :

"Günlük grafiği" terimiyle ne demek istiyorsun? Lütfen bir örnek verin. Örneğin daha önce grafiğin sadece logaritmik ölçeği kavramıyla karşılaşmıştım. MT4 terminalinde bu ölçek zaten uygulandı.
Tam olarak logaritmik ölçeği kastediyorum. MT'de nasıl bulunur? Uzun yıllardır kullanıyorum ve zaten orada ne olduğunu bilmiyorum.
 
mario065 :

Herkese selam,

Hindi yaptım, 45 derecede iki çizgi çekiyor, kesiştiğinde yatay bir çizgi koymak istiyorum.

Peki kavşakları nasıl hesaplarsınız?

Bir nokta üzerinden önceki günün Düşük / Yüksek'ten çekilir.

Böyle bir çizgi elde etmek için günün başlangıcından önceki noktadan ve kiriş noktasından diğer yönde çizerim.

En çok listeleme kodu nasıl yazılır? Şimdiye kadar bunu yapmadı. Resim:



Igor Kim'den:

CrossPointOfLines() İşlevi

 

Alexey, Artem teşekkür ederim.

Bekle, Igor Kim'in işlevlerini öğreneceğim.

 

Yani iki puanım yok, sadece bir tane yiyorum.

İşte isam kaynağı:

 //+------------------------------------------------------------------+
//|                                                     TRIANGLE.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2013,mario"
#property link       ""

#property indicator_chart_window
extern string    TimeStart  = "Час за начало" ;
extern datetime Time_start = D'17.01.2013' ;
extern int       Days       = 1 ;
bool             New_Bar    = false ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){ return ( 0 );}
int deinit(){
   ObjectsDeleteAll ( 0 , OBJ_TRENDBYANGLE );
   ObjectsDeleteAll ( 0 , OBJ_VLINE );
   Comment ( "" ); return ( 0 );}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  { 
   datetime New_Time,time_next,time_barh,time_barl;
   time_next = Time_start + Days* 86400 ;
   datetime new_day = iTime( Symbol (), PERIOD_D1 , 0 );
//+------------------------------------------------------------------+
   if (New_Time != new_day)                        
           {
           New_Time = new_day;                         
           New_Bar  = true ;
           }
//+------------------------------------------------------------------+ 
//Шифтвам 
   double b1=iBarShift( Symbol (), 0 ,Time_start);      
   double b2=iBarShift( Symbol (), 0 ,time_next);
   double min = 3 ,max = 0 ;
   for ( int i = b2;i <= b1;i++){
       if (iHigh( Symbol (), 0 ,i)>max){ max=iHigh( Symbol (), 0 ,i);time_barh = Time[i];}
       if (iLow ( Symbol (), 0 ,i)<min){ min=iLow ( Symbol (), 0 ,i);time_barl = Time[i];}
      }
   if (New_Bar == true ){ 
       ObjectsDeleteAll ( 0 , OBJ_TRENDBYANGLE );
       ObjectsDeleteAll ( 0 , OBJ_VLINE );
      DrawLine( "Start" , 0 ,Time_start, 0 ,Time_start, 0 , 0 , 0 , 2 ,Aqua, false );
      DrawLine( "Up" , 3 ,time_barh,max, 0 , 0 , 315.0 , 0 , 2 ,DeepSkyBlue, true );
      DrawLine( "Up1" , 3 ,time_barh,max,Time_start, 0 , 315.0 , 0 , 2 ,DeepSkyBlue, false );
      DrawLine( "Dn" , 3 ,time_barl,min, 0 , 0 , 45.0 , 0 , 2 ,Orange, true );
      DrawLine( "Dn1" , 3 ,time_barl,min,Time_start, 0 , 45.0 , 0 , 2 ,Orange, false );
    }
//+------------------------------------------------------------------+
   double spead = MarketInfo( Symbol (),MODE_SPREAD);
//+------------------------------------------------------------------+ 
   Comment ( "\nВреме на брокера: " ,TimeToStr( TimeCurrent (),TIME_SECONDS), ", Локално време: " +TimeToStr( TimeLocal (),TIME_SECONDS),
           "\nТекущ спред: " ,DoubleToStr(spead/ 10 , 1 ),
           "\n min:        " ,DoubleToStr(min, Digits ),
           "\n max:       " ,DoubleToStr(max, Digits )
           );
   return ( 0 );
  }
//+------------------------------------------------------------------+
void DrawLine( string name, int lines, datetime time1, double value, datetime time2, double value1, double grd, int style, int wid, color col, bool ray)
{
   ObjectCreate (name,lines, 0 ,time1,value,time2,value1);
   ObjectSet(name, OBJPROP_ANGLE ,grd);
   ObjectSet(name, OBJPROP_COLOR ,col);
   ObjectSet(name, OBJPROP_STYLE ,style);
   ObjectSet(name, OBJPROP_WIDTH ,wid);
   ObjectSet(name, OBJPROP_RAY ,ray);
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Вычисляет координаты точки пересечения двух прямых.            |
//|             Каждая прямая задаётся парой координат своих точек.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    x - массив абсцисс              x[0], x[1] - первая прямая              |
//|                                    x[2], x[3] - вторая прямая              |
//|    y - массив ординат              y[0], y[1] - первая прямая              |
//|                                    y[0], y[1] - вторая прямая              |
//|    t - массив искомых координат    t[0]       - абсцисса                   |
//|                                    t[1]       - ордината                   |
//+----------------------------------------------------------------------------+
void CrossPointOfLines( double & x[], double & y[], double & t[]) {
   double z=(y[ 3 ]-y[ 2 ])*(x[ 1 ]-x[ 0 ])-(y[ 1 ]-y[ 0 ])*(x[ 3 ]-x[ 2 ]);
   ArrayResize (t, 2 );
   ArrayInitialize (t, 0.0 );

   if (z== 0 ) Print ( "CrossPointOfLines(): Не удалось найти точку пересечения!" );
   else {
     double xy1=x[ 1 ]*y[ 0 ]-x[ 0 ]*y[ 1 ];
     double xy2=x[ 3 ]*y[ 2 ]-x[ 2 ]*y[ 3 ];
    t[ 0 ]= NormalizeDouble ((xy1*(x[ 3 ]-x[ 2 ])-xy2*(x[ 1 ]-x[ 0 ]))/z, 0 );
    t[ 1 ]=(xy1*(y[ 3 ]-y[ 2 ])-xy2*(y[ 1 ]-y[ 0 ]))/z;
  }
}

Kodun kendisi çok basit ama sadece bir nokta yiyor.

 

Görsel moddaki test cihazındaki DailyPivotPoints göstergesinin neden tüm tarihlerde yalnızca bugünün verilerini gösterdiğini kim bilebilir?

Ve mümkünse, neler olduğunu tarihte göstermesi için buna ne eklenmesi gerekiyor? Teşekkür ederim!

 
lenalebedeva :
Tam olarak logaritmik ölçeği kastediyorum. MT'de nasıl bulunur? Uzun yıllardır kullanıyorum ve zaten orada ne olduğunu bilmiyorum.

bakmak

not

Örneğin, grafikteki son düşüş trendine bakıyorsunuz ve grafiğin kenarına kadar pencerenin dışında daha da aşağıya kaydığını görüyorsunuz. Grafiği geleceğe kaydırırsınız ve grafiğin otomatik olarak yukarı doğru hareket etmesini izleyerek alttaki grafikteki mum çubuklarını görüntülemek için yer açarsınız. Pekala, daha önce grafik penceresinin en üstünde görünen şey, şimdi grafik penceresinin dışında daha da yükseğe kaydırıldı. Bu, grafikte logaritmik fiyat ölçeğinin uygulanmasıdır. Eğer yoksa, grafiği yalnızca sağa ve sola değil, aynı zamanda yukarı ve aşağı kaydırmanız gerekirdi. Bu nedenle, verileri grafik penceresinde görüntüleme kolaylığı için zaman ölçeği doğrusaldır ve fiyat ölçeği logaritmiktir.

Daha önce, bilgisayar yokken, tüccarlar grafik kağıdı kullanıyor ve trendleri ve dönüm noktalarını tahmin etmek için hisse senedi fiyatlarını koyuyorlardı. Kağıt üzerinde bu şekilde oluşturulan çizelgelerin 2 ölçeği vardı - bir fiyat ölçeği ve bir zaman ölçeği. Bunlar iki doğrusal ölçekti. Diyelim ki geçen yıl boyunca on beş dakikalık tüm mumları içerebilecek bir milimetre kağıdının hangi boyutlara sahip olması gerektiğini hayal edebiliyor musunuz? Elbette odanın duvarı büyüklüğünde olurdu (daha fazla değilse). Bu nedenle, ekranda grafiği kaydırırken böyle bir model hayal edebilirsiniz: duvara bir şamdan fiyat tablosu çizilir. Ayrıca dikdörtgen (örneğin kırmızı) bir çerçeve var - bu sizin monitörünüz. Grafiğin etrafında hareket etmek, bu kırmızı dikdörtgeni trend boyunca hareket ettirmekten başka bir şey değildir. Ama sonra monitördeki her iki ölçeğin de doğrusal olduğunu söyleyeceksiniz. Bu doğrudur, ancak yalnızca kısmen - grafiği kaydırırken, küçük bir kaymadan sonra büyük olan (görsel olarak büyük olarak algılanan) bir mumun boyutunun küçüldüğünü, ancak uç noktaları arasındaki mesafeyi ölçerseniz, noktaların sayısının artacağını unutmayın. aynı kalır.

Bakın, işte aynı grafiğin 2 ekran görüntüsü. İlk ekran görüntüsü sadece bir ekran görüntüsüdür. İkincisi, aynı ekranın anlık görüntüsüdür, ancak fare tekerleğini 1 bölüm çevirdikten sonra, grafik birkaç mum ile geçmişe kayar. Bir sayfa kağıt alın, ilk ekran görüntüsüne ekleyin ve kırmızı ile işaretlenmiş mumun yüksek ve düşük fiyatlarını sayfanın kenarı boyunca bir kalemle işaretleyin. Ardından, işaretli riskleri ikinci ekran görüntüsünün aynı mumuna taşıyın. Neyin tehlikede olduğunu ve logaritmik ölçekte bir kaymanın ne olduğunu anlayacaksınız (burada ölçeklerin düzensiz kullanımının özü nedir).

Ve neden logaritmik ölçeklerin nüanslarını araştırmanız gerekti? Onlarda ne bulmayı umuyordun?