[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 408

 
costy_:
Merci.
 
Roman.:


Les copies des terminaux... :-)

Chacun d'entre eux dispose d'un compte commercial unique.

Vous voulez dire que vous devez utiliser plusieurs terminaux en même temps et vous connecter avec des noms d'utilisateur différents dans chacun d'eux ?
 
LOA:

Ouais.... Réponse "exhaustive". Chaque événement doit avoir une raison. Les professionnels qui rencontrent des problèmes savent à quoi s'en tenir. J'ai parcouru l'algorithme plusieurs fois mais je n'ai pas trouvé la cause. Je demande donc l'avis des pros - quelle pourrait être la raison ?
Eh bien, si vous ne pouvez pas le faire vous-même, l'algorithme dans son ensemble ne fait pas de mal, dans les lignes données les défauts apparents ne sont pas. La remarque est tout à fait pertinente.
 
costy_:

... indicateur.

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

essayez la méthode de "l'intuition" avec un conseiller expert vide,

Vérifier dans l'indicateur d'ObjectCreate pour trouver sa sous-fenêtre (ou pourquoi la dessiner SI TESTING OU OPTIMIZING)

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


J'ai essayé un Expert Advisor vide, l'alerte est affichée normalement, mais dans l'indicateur ObjectCreate a cette vue:

#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;
}

Que dois-je changer ici... ?

 
kolyango:


J'ai essayé un EA vide, l'alerte est affichée ok, mais dans l'indicateurObjectCreate acette vue:

Qu'est-ce qui doit être changé ici... ?

le désalignement est assuré.

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

et vous avez

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

déplacement dans le temps mais pas dans les bars

la réalisation d'un tout dans une seule fenêtre n'est pas bonne (bien que les guirlandes du nouvel an))

et cela prend tellement de temps )) tutz

Dossiers :
xxx.mq4  7 kb
 
gara:

Bonjour à tous, question pour les professionnels :

Veuillez expliquer le fonctionnement de MT4.

Ma vision :

Le terminal est en cours d'exécution, Internet est connecté, dans la vue d'ensemble du marché, certains instruments sont en cours d'exécution, certains graphiques sont ouverts à partir d'eux. Prenons l'exemple d'un instrument dont le graphique est ouvert, disons qu'il a fait des allers-retours et que la barre s'est fermée. Le moment n'est pas clair :

La dernière barre formée que je vois dans mon graphique correspond-elle à la barre du côté du courtier, car une partie des ticks pourrait être manquée ou y a-t-il une synchronisation totale avec l'arrivée de chaque tick ?

À quelle fréquence mon historique est-il synchronisé avec celui du courtier ?


J'ose répéter la question
 
gara:
Osez répéter la question
gara Le terminal est synchronisé à chaque tick. Il peut y avoir plusieurs tics par seconde. Il n'est désynchronisé que si la connexion est perdue. Dans ce cas, lorsque la communication réapparaît, les ticks manqués sont chargés.
 
igid:
Vous devez donc démarrer plusieurs terminaux en même temps et vous connecter avec des identifiants différents dans chacun d'eux ?

Exactement. Il est plus facile de ne pas installer les terminaux à partir de zéro, mais de copier l'existant avec les paramètres déjà disponibles dans des dossiers, par exemple 1,2,3,4...100.

Et vous devez appuyer sur "Ouvrir un compte" dans chaque terminal et lancer simultanément le conseiller expert avec différents paramètres, que vous voulez vérifier et voir dans un mois ou deux, quels sont les meilleurs paramètres.

 

Pouvez-vous indiquer qui a utilisé le terminal Alpari ? J'utilise un conseiller expert pour 50 paires de devises, mais il manque toujours un tick, même pour les ordres en attente. J'ai installé un slip.

J'obtiens également l'erreur 4066, aucun symbole dans la fenêtre d'aperçu du marché, bien qu'il soit présent.

C'est un serveur si défaillant ? Chez un autre courtier, même avec une fraction de ces problèmes, je n'ai pas eu à faire face...

 

Bonjour à tous,

Je suis complètement novice en matière de programmation et mon robot ne réalise que 2 transactions par semaine,

Mais pouvez-vous me dire comment ( ! vraiment fatigué de chercher !) changer la couleur de la ligne de la moyenne mobile (j'utilise l'iMa standard) sur le graphique ?

Exemple de code : FixEma= iMA (NULL,0,fix,0, MODE_EMA, PRICE_LOW,0) ;

Ils sont rouges, en fait (j'en ai 6) et après chaque test je dois peindre le tableau manuellement (je suis comme ça...). Je ne veux pas le réécrire.

Peut-être existe-t-il une commande standard ?

Ne jugez pas strictement, je suis juste en train d'apprendre...