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

 

iyi tarif edeceğim.

Ana gösterge euro dolar çiftinde bulunur. Bu göstergede göstergeler diğer altın çiftlerinden, dolar endeksinden ve eurodan çağrılır . Gösterge dakikalar içinde çalışıyor ve bazen dolar endeksinde tırnak yok, diyelim ki euro üzerinde saatin 15. dakikası için bir mum var ama dolar endeksinde böyle bir mum yok, endeks donmuş ve kene yapmıyor. Daha sonra, bir süre sonra, Yahudi'de 16 dakika ve indekste 16 dakika belirir. Soru? Göstergenin hesaplanması, yalnızca çağrılan tüm enstrümanlardaki çubuklar zaman içinde çakışırsa hesaplanacak şekilde nasıl senkronize edilir????

bu tasarımı denedim

 if ((iTime( NULL , 0 ,i)==iTime( "XAUUSD" , 0 ,i))&&(iTime( NULL , 0 ,i)==iTime( "EURJPY" , 0 ,i))){

Ve her şey yolunda görünüyor, ancak hesaplama sadece o gün için yapılıyor, önceki günler için sinyal yok. Belki karakter senkronizasyonu için standart çözümler vardır????

 
nikelodeon :

iyi tarif edeceğim.

Ana gösterge euro dolar çiftinde bulunur. Bu göstergede göstergeler diğer altın çiftlerinden, dolar endeksinden ve eurodan çağrılır. Gösterge dakikalar içinde çalışır ve bazen dolar endeksinde tırnak yoktur, örneğin euro üzerinde saatin 15. dakikası için bir mum vardır, ancak dolar endeksinde böyle bir mum yoktur, endeks donmuş ve kene yapmıyor. Daha sonra, bir süre sonra, Yahudi'de 16 dakika ve indekste 16 dakika belirir. Soru? Göstergenin hesaplanması, yalnızca çağrılan tüm enstrümanlardaki çubuklar zaman içinde çakışırsa hesaplanacak şekilde nasıl senkronize edilir????

bu tasarımı denedim

Ve her şey yolunda görünüyor, ancak hesaplama sadece o gün için yapılıyor, önceki günler için sinyal yok. Belki karakter senkronizasyonu için standart çözümler vardır????

Sembol verilerini almak için SymbolInfoTick() döngüsündeki bir zamanlayıcıda deneyin. Ve zaten orada ve ihtiyacınız olduğu gibi senkronize edin.

Mesele şu ki, program mevcut sembolde ancak bu sembole bir onay işaretinin gelmesiyle başlar. Bu nedenle zamanla diğer sembollerden tik alamayacaksınız. Ancak tiklerden bağımsız çalışan bir zamanlayıcıda diğer sembollerden tik alabilirsiniz.

Size ait olmayan bir sembol üzerinde gelen bir onay işaretine hızlı bir tepki vermeniz gerekiyorsa, zamanlayıcı milisaniye cinsinden de yapılabilir.

 
artmedia70 :
Ve sorunuz çok belirsiz ve sadece sizin için anlaşılabilir.

SİZE DÜŞÜK YAY !!! TEŞEKKÜR EDERİM! TATİL!

2 puan daha canım 1) Göstergeyi ayrı bir pencereden kaldırmak mümkün müdür?

2) bir işlev ekleyin, mevcut ATR, ATR'den (H dönemi için) büyükse, çubuğun üzerindeki ATR farklı bir renkle vurgulanır mı? yoksa değer sadece bu çubuğun üstüne mi yazılır?

 
kocunyc89 :

SİZE DÜŞÜK YAY !!! TEŞEKKÜR EDERİM! TATİL!

2 puan daha canım 1) Göstergeyi ayrı bir pencereden kaldırmak mümkün müdür?

2) bir işlev ekleyin, mevcut ATR, ATR'den (H dönemi için) büyükse, çubuğun üzerindeki ATR farklı bir renkle vurgulanır mı? yoksa değer sadece bu çubuğun üstüne mi yazılır?

Pekala ... Nate, kendini düzenle:

 //+------------------------------------------------------------------+
//|                                                 iATRwithData.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//--- plot ATR
#property indicator_label1   "ATR"
#property indicator_type1   DRAW_LINE
#property indicator_color1   clrDodgerBlue
#property indicator_style1   STYLE_SOLID
#property indicator_width1   1
//+------------------------------------------------------------------+
//| enums                                                          |
//+------------------------------------------------------------------+
enum enumYN
  {
   enYes= 1 , // Yes
   enNo= 0 ,   // No
  };
//+------------------------------------------------------------------+
//| input parameters                                                 |
//+------------------------------------------------------------------+
input int       PeriodATR= 14 ;           // ATRs calculation period
int periodATR=(PeriodATR< 1 )? 1 :PeriodATR;
sinput enumYN DrawGraphic=enYes;       // Drawing ATR data over the candles
sinput int StartDrawingBar= 100 ;         // Max bar for drawing ATRs data
int startDrawingBar;
sinput int TextSize= 5 ;                 // Text size
sinput color TextColor= clrDodgerBlue ;   // Text color
//--- indicator buffers
double          BufferATR[];
string Prefix;
//+------------------------------------------------------------------+
//| Classes                                                          |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,BufferATR);
   
   Prefix= "iATRwd(" + IntegerToString (periodATR)+ ")" ;
   IndicatorSetString ( INDICATOR_SHORTNAME ,Prefix);
   int bars= Bars ( Symbol (), Period ());
   startDrawingBar=(StartDrawingBar< 1 )? 1 :(StartDrawingBar>bars)?bars:StartDrawingBar;
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- delete graphics
   ObjectsDeleteAll ( 0 ,Prefix, 0 );
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   if (rates_total<periodATR) return ( 0 );
   int limit=rates_total-prev_calculated;
   if (limit> 1 ) limit=rates_total-periodATR- 1 ;
   //---
   for ( int i=limit; i>= 0 ; i--) {
      BufferATR[i]= iATR ( Symbol (), Period (),periodATR,i);
       if (DrawGraphic && i<startDrawingBar) {
         string tm_txt= TimeToString (time[i], TIME_DATE | TIME_MINUTES );
         string nm=Prefix+ "_" +tm_txt;
         string text= IntegerToString ( int (BufferATR[i]/ Point ()));
         string tooltip= "ATRs period for candle on " +tm_txt+ " is " +text;
         SetArrowText( 0 ,nm,TextColor,text, 0 , ANCHOR_LOWER ,time[i],high[i], "Arial" ,TextSize,tooltip);
         }
      }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Functions                                                        |
//+------------------------------------------------------------------+
void SetArrowText( long chart_id, string name, color text_color, string text, int sub_window, 
                   long text_anchor, long text_time1, double text_price1, string font= "Arial" , long font_size= 5 , 
                   string tooltip= "\n" , bool selection= false , bool hidden= true ) {
   
   if ( ObjectFind (chart_id,name)< 0 ) ObjectCreate (chart_id,name, OBJ_TEXT ,sub_window,text_time1,text_price1);
   ObjectSetInteger (chart_id,name, OBJPROP_ANCHOR ,text_anchor);
   ObjectSetInteger (chart_id,name, OBJPROP_WIDTH ,font_size);
   ObjectSetString (chart_id,name, OBJPROP_FONT ,font);
   ObjectSetString (chart_id,name, OBJPROP_TEXT ,text);
   ObjectSetInteger (chart_id,name, OBJPROP_COLOR ,text_color);
   ObjectSetInteger (chart_id,name, OBJPROP_FONTSIZE ,font_size);
   ObjectSetInteger (chart_id,name,OBJPROP_TIME1,text_time1);
   ObjectSetDouble (chart_id,name,OBJPROP_PRICE1,text_price1);
   ObjectSetInteger (chart_id,name, OBJPROP_SELECTED ,selection);
   ObjectSetInteger (chart_id,name, OBJPROP_SELECTABLE ,selection);
   ObjectSetInteger (chart_id,name, OBJPROP_HIDDEN ,hidden);
   ObjectSetString (chart_id,name, OBJPROP_TOOLTIP ,tooltip);
}
//+------------------------------------------------------------------+

Yoksa sizin için de her şeyi yapar mısınız?

 
artmedia70 :

Pekala ... Nate, kendini düzenle:

Yoksa sizin için de her şeyi yapar mısınız?

Çok teşekkürler! nazik bir insan!
 
kocunyc89 :
Çok teşekkürler! nazik bir insan!
Rica ederim.
 
İyi akşamlar, bir sorum var, arabellek verilerini göstergede, bölüm ana grafikte, bölüm alt pencerede iki pencerede görüntülemek mümkün mü? Eğer öyleyse, lütfen bana nasıl olduğunu söyleyin...
 
artmedia70 :

Benim için zevkti. Bu bir sır değilse, neden programınızın son lansman zamanını gösteren bir etikete ihtiyacınız var - içindeki zaman değişmeyecek.

Sadece boş merak...

Bu, çevrimdışı bir onay grafiği içindir.



 
Merhaba.

İki MT4 terminali arasında hangi işlevler değişkenler gönderebilir? Mümkünse, lütfen belgelere bir bağlantı ekleyin.
 
abeiks : Hangi fonksiyonlar iki MT4 terminali arasında değişken gönderebilir?

int Bayraklar=FILE_WRITE+FILE_TXT+FILE_COMMON;

int Bilgi = FileOpen(fName, Flags);

FileWrite (Bilgi, Yapılacaklar); Diğer terminalde okuyoruz. FileOpen ve F1'de imleç - yardım alın