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

 
costy_ :
Sayesinde.
 
Roman. :


Terminallerin kopyaları... :-)

Her birinin kendi benzersiz ticaret hesabı vardır.

Yani, aynı anda birkaç terminal çalıştırmanız ve her birinde farklı oturum açma bilgileriyle oturum açmanız mı gerekiyor?
 
LOA :

Evet .... "Ayrıntılı" cevap. Her olayın bir nedeni olmalıdır. Bir tür arıza ile karşılaşan profesyoneller, ne arayacaklarını biliyorlar. Algoritmayı birkaç kez inceledim ama nedenini bulamıyorum.Bu yüzden tavsiye için profesyonellere dönüyorum - nedenleri ne olabilir?
Kendiniz yapamazsanız, tüm algoritma karışmaz, yukarıdaki satırlarda bariz bir söve yoktur. Bütünüyle bir yorum.
 
costy_ :

... gösterge.

 int start(){
   double Val= iCustom ( NULL , 0 , "HMR MULTI Indicator" , 0 , 0 );   
   Alert (Val);
}

boş bir danışmanla "halk dürtme" yöntemini deneyin,

ObjectCreate'in kendi alt penceresini bulduğunu gösteren göstergeyi kontrol edin (veya TEST EDİYORSA VEYA OPTİMİZASYON YAPIYORSANIZ neden çizin)

 if ( IsTesting ()|| IsOptimization ())флаг_Канады_не_рисовать_obj=true;           //проверяем надо ли рисовать (в ините ему место через статик переменную)
if (!флаг_Канады_не_рисовать_obj){                                           //запрет отрисовки объектов ели оптимизация или тестирование
ObjectCreate (........................);
}


Boş bir Uzman Danışman denedim, Uyarı normal şekilde görüntüleniyor ve ObjectCreate göstergesi şöyle görünüyor:

 #property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Yellow
#property indicator_color2 Aqua
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 White
#property indicator_color6 Magenta
#property indicator_color7 Lime
#property indicator_color8 Indigo

extern string S1 = "EURUSD" ;  
extern string S2 = "EURJPY" ;  
extern string S3 = "EURCAD" ;  
extern string S4 = "AUDUSD" ;  
extern string S5 = "GBPUSD" ;  
extern string S6 = "USDJPY" ;  
extern string S7 = "USDCHF" ;  
extern string S8 = "USDCAD" ;
//переменные объявляем сразу,чтобы постоянно не создавались (оптимизация)
double Buff1[],Buff2[],Buff3[],Buff4[],Buff5[],Buff6[],Buff7[],Buff8[],
       x1,x2,x3,x4,x5,x6,x7,x8;
int     BarsOnScreen,LeftBar,RightBar,i;
bool    _init;
string name = "HMR MULTI Indicator" ;     
//+------------------------------------------------------------------+
int init()
  {
   _init = false;
   IndicatorBuffers ( 8 );
   //Если символ графика совпадает с символом прорисовки,нарисуем линию толще
   if ( Symbol ()==S1) i= 3 ; else i= 1 ;
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID ,i,indicator_color1); SetIndexBuffer ( 0 ,Buff1);
   if ( Symbol ()==S2) i= 3 ; else i= 1 ;
   SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID ,i,indicator_color2); SetIndexBuffer ( 1 ,Buff2);
   if ( Symbol ()==S3) i= 3 ; else i= 1 ;
   SetIndexStyle ( 2 , DRAW_LINE , STYLE_SOLID ,i,indicator_color3); SetIndexBuffer ( 2 ,Buff3);
   if ( Symbol ()==S4) i= 3 ; else i= 1 ;
   SetIndexStyle ( 3 , DRAW_LINE , STYLE_SOLID ,i,indicator_color4); SetIndexBuffer ( 3 ,Buff4);
   if ( Symbol ()==S5) i= 3 ; else i= 1 ;
   SetIndexStyle ( 4 , DRAW_LINE , STYLE_SOLID ,i,indicator_color5); SetIndexBuffer ( 4 ,Buff5);
   if ( Symbol ()==S6) i= 3 ; else i= 1 ;
   SetIndexStyle ( 5 , DRAW_LINE , STYLE_SOLID ,i,indicator_color6); SetIndexBuffer ( 5 ,Buff6);
   if ( Symbol ()==S7) i= 3 ; else i= 1 ;
   SetIndexStyle ( 6 , DRAW_LINE , STYLE_SOLID ,i,indicator_color7); SetIndexBuffer ( 6 ,Buff7);
   if ( Symbol ()==S8) i= 3 ; else i= 1 ;
   SetIndexStyle ( 7 , DRAW_LINE , STYLE_SOLID ,i,indicator_color8); SetIndexBuffer ( 7 ,Buff8);
   return ( 0 );
  }
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectsDeleteAll ();  
   return ( 0 );
  }
//+------------------------------------------------------------------+
int start()
{
       if (!_init) MyInit();
      BarsOnScreen = WindowBarsPerChart ()+ 1 ;
      LeftBar = WindowFirstVisibleBar ();
      RightBar = LeftBar-BarsOnScreen;
       if (RightBar< 0 ) RightBar= 0 ;
       //Проверяем есть ли история баров для прорисовки
       if (LeftBar> iBars (S1, 0 ) || LeftBar> iBars (S2, 0 ) || LeftBar> iBars (S3, 0 ) || LeftBar> iBars (S4, 0 ) ||
          LeftBar> iBars (S5, 0 ) || LeftBar> iBars (S6, 0 ) || LeftBar> iBars (S7, 0 ) || LeftBar> iBars (S8, 0 )) return ;
       //Выносим из цикла,чтобы уменьшить расчёты (оптимизация)
       x1= iClose (S1, 0 , iHighest (S1, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       x2= iClose (S2, 0 , iHighest (S2, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       x3= iClose (S3, 0 , iHighest (S3, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));  
       x4= iClose (S4, 0 , iHighest (S4, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       x5= iClose (S5, 0 , iHighest (S5, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       x6= iClose (S6, 0 , iHighest (S6, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       x7= iClose (S7, 0 , iHighest (S7, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       x8= iClose (S8, 0 , iHighest (S8, 0 ,MODE_CLOSE,BarsOnScreen,RightBar));
       for (i=RightBar; i<LeftBar; i++)
        {       
         Buff1[i] = iClose (S1, 0 , i)/x1;
         Buff2[i] = iClose (S2, 0 , i)/x2;
         Buff3[i] = iClose (S3, 0 , i)/x3;  
         Buff4[i] = iClose (S4, 0 , i)/x4;
         Buff5[i] = iClose (S5, 0 , i)/x5;
         Buff6[i] = iClose (S6, 0 , i)/x6;
         Buff7[i] = iClose (S7, 0 , i)/x7;
         Buff8[i] = iClose (S8, 0 , i)/x8;
        }
return ( 0 );
}   
//+------------------------------------------------------------------+
void MyInit ()
{
   //Подменяем имя индикатора чтобы получить уникальный номер окна
   string label = GetTickCount ();
   IndicatorShortName (label);
   int win = WindowFind (label);
   //Восстанавливаем имя индикатора
   IndicatorShortName (name);
   //---- labels    
   ObjectCreate ( "L1" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L1" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L1" +label, OBJPROP_YDISTANCE , 12 );
   ObjectSetText ( "L1" +label,S1, 10 , "Tahoma" ,indicator_color1);
   ObjectCreate ( "L2" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L2" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L2" +label, OBJPROP_YDISTANCE , 24 );
   ObjectSetText ( "L2" +label,S2, 10 , "Tahoma" ,indicator_color2);
   ObjectCreate ( "L3" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L3" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L3" +label, OBJPROP_YDISTANCE , 36 );
   ObjectSetText ( "L3" +label,S3, 10 , "Tahoma" ,indicator_color3);
   ObjectCreate ( "L4" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L4" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L4" +label, OBJPROP_YDISTANCE , 48 );
   ObjectSetText ( "L4" +label,S4, 10 , "Tahoma" ,indicator_color4);
   ObjectCreate ( "L5" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L5" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L5" +label, OBJPROP_YDISTANCE , 60 );
   ObjectSetText ( "L5" +label,S5, 10 , "Tahoma" ,indicator_color5);   
   ObjectCreate ( "L6" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L6" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L6" +label, OBJPROP_YDISTANCE , 72 );
   ObjectSetText ( "L6" +label,S6, 10 , "Tahoma" ,indicator_color6);
   ObjectCreate ( "L7" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L7" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L7" +label, OBJPROP_YDISTANCE , 84 );
   ObjectSetText ( "L7" +label,S7, 10 , "Tahoma" ,indicator_color7);
   ObjectCreate ( "L8" +label, OBJ_LABEL ,win, 0 , 0 , 0 , 0 );
   ObjectSet ( "L8" +label, OBJPROP_XDISTANCE , 10 );
   ObjectSet ( "L8" +label, OBJPROP_YDISTANCE , 96 );
   ObjectSetText ( "L8" +label,S8, 10 , "Tahoma" ,indicator_color8);
   WindowRedraw ();
   _init = true;
}

Burada değiştirilmesi gereken ne...?

 
kolyango :


Boş bir Uzman Danışman denedim, Uyarı normal şekilde görüntüleniyor ve ObjectCreate göstergesi şöyle görünüyor:

Burada değiştirilmesi gereken ne...?

uyumsuzluk garanti edilir

 iClose (S1, 0 , iHighest (S1, 0 ,MODE_CLOSE,BarsOnScreen, iBarShift (S1, 0 ,Time[RightBar])));

ve sen

 iClose (S1, 0 , iHighest (S1, 0 ,MODE_CLOSE,BarsOnScreen,RightBar))

zaman içinde kayma ama çubuklar değil

hepsinin tek bir pencerede uygulanması çok değil (yeni yıl çelenkleri olmasına rağmen))

ve çok uzun bir tormento sürer)) tuts

Dosyalar:
xxx.mq4  7 kb
 
gara :

Herkese merhaba, profesyonellere bir soru:

Lütfen MT4'ün nasıl çalıştığını ayrıntılı olarak açıklayın.

Benim görüşüm:

Terminal başlatılır, İnternet bağlanır, piyasaya genel bakışta bazı araçlar başlatılır, bunlardan bazı grafikler açılır. Grafiği açık olan bir enstrüman düşünelim, diyelim ki ileri geri hareket etti ve çıta kapandı. Net olmayan an:

Kendimde gördüğüm son oluşturulan çubuk, komisyoncu tarafındaki çubuğa tekabül ediyor mu, çünkü bazı tikler atlanabiliyor mu yoksa her tik'in gelişiyle tam bir senkronizasyon var mı?

Geçmişim, aracının geçmişiyle ne sıklıkla senkronize edilir?


Soruyu tekrar etmeye cesaret ediyorum
 
gara :
Soruyu tekrar etmeye cesaret ediyorum
gara Terminal, her tıklamada senkronize edilir. Saniyede birkaç kene olabilir. Yalnızca bağlantının kesilmesi durumunda senkronize edilmez. Bu durumda bağlantı tekrar göründüğünde kaçırılan keneler yüklenir.
 
igid :
Yani, aynı anda birkaç terminal çalıştırmanız ve her birinde farklı oturum açma bilgileriyle oturum açmanız mı gerekiyor?

Aynen öyle. Terminalleri sıfırdan kurmak değil, mevcut ayarları mevcut ayarlarla klasörlere kopyalamak daha da kolaydır, örneğin 1,2,3,4 ... 100

Ve her basışta "Bir hesap açın" ve aynı anda danışmanı, kontrol etmek ve bir veya iki ay içinde hangi ayarların en iyi olduğunu görmek istediğiniz farklı ayarlarla çalıştırın.

 

Alpari terminalinde kimin çalıştığını söyle. İçinde 50 döviz çifti için bir danışman çalıştırıyorum, beklemede bile olsa her seferinde bir onay işareti yok. Kayma ayarlandı.

Artı, 4066 hatası veriyor, piyasa izleme penceresinde bir araç olmamasına rağmen orada olmasına rağmen.

Bu kadar sorunlu olan onların sunucusu mu? Başka bir broker ile böyle bir sorunla karşılaşmadım bile

 

Herkese iyi günler,

Programlamada tam bir sıfırım ve robotum haftada sadece 2 işlem yapıyor.

ama grafikteki hareketli ortalama çizgisinin (standart iMa'yı kullanıyorum) rengini nasıl değiştirdiğini (!bakmaktan gerçekten yoruldum!) bana söyleyebilir misiniz?

Kod örneği: FixEma= iMA (NULL,0,fix,0, MODE_EMA, PRICE_LOW,0);

Ben sadece onları gerçekten kırmızı görüyorum (ve 6 tane var) ve her testten sonra tabloyu manuel olarak renklendirmem gerekiyor (evet, ben buyum ...). Yeniden yazmak istemiyorum.

Standart bir komut var mı?

Kesinlikle yargılama, sadece öğreniyorum ...