[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 408

 
costy_:
Ich danke Ihnen.
 
Roman.:


Kopien der Terminals... :-)

Jeder hat sein eigenes, einzigartiges Handelskonto.

Sie meinen, Sie müssen mehrere Terminals gleichzeitig betreiben und sich in jedem mit einem anderen Benutzernamen anmelden?
 
LOA:

Ja.... "Ausführliche" Antwort. Für jedes Ereignis muss es einen Grund geben. Fachleute, die auf bestimmte Probleme stoßen, wissen, worauf sie achten müssen. Ich habe den Algorithmus mehrmals durchgesehen, kann aber die Ursache nicht finden und bitte daher die Profis um Rat - was könnte die Ursache sein?
Nun, wenn Sie es nicht selbst tun können, der Algorithmus als Ganzes tut nicht weh, in den gegebenen Zeilen offensichtliche Mängel sind nicht. Die Bemerkung ist völlig zutreffend.
 
costy_:

... Indikator.

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

Versuchen Sie die "Bauchgefühl"-Methode mit einem leeren Expert Advisor,

Prüfen Sie im Indikator für ObjectCreate, um das Unterfenster zu finden (oder warum es gezeichnet wird, WENN TESTEN ODER OPTIMIEREN)

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


Ich habe einen leeren Expert Advisor ausprobiert, Alert wird normal angezeigt, aber im Indikator ObjectCreate hat diese Ansicht:

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

Was sollte ich hier ändern...?

 
kolyango:


Ich habe versucht, eine leere EA, Alert wird angezeigt, ok, aber in den IndikatorObjectCreate hatdiese Ansicht:

Was muss hier geändert werden...?

der Versatz gewährleistet ist.

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

und Sie haben

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

Verschiebung in der Zeit, aber nicht in den Takten

Realisierung in einem einzigen Fenster ist nicht gut (obwohl Neujahrsgirlanden))

und es braucht so viel Zeit )) tutz

Dateien:
xxx.mq4  7 kb
 
gara:

Hallo zusammen, eine Frage für Fachleute:

Bitte erläutern Sie, wie MT4 funktioniert.

Meine Vision:

Das Terminal läuft, das Internet ist verbunden, in der Marktübersicht laufen einige Instrumente, von denen einige Charts geöffnet sind. Betrachten wir ein Instrument, das ein offenes Diagramm hat, sagen wir, es tickte hin und her und der Balken schloss. Der Zeitpunkt ist unklar:

Entspricht der letzte gebildete Balken, den ich in meinem Diagramm sehe, dem Balken auf der Seite des Brokers, da ein Teil der Ticks übersehen werden könnte, oder gibt es eine vollständige Synchronisierung mit der Ankunft jedes Ticks?

Wie oft wird meine Historie mit der Historie des Brokers synchronisiert?


Ich wage es, die Frage zu wiederholen
 
gara:
Wagen Sie es, die Frage zu wiederholen
gara Das Terminal wird bei jedem Tick synchronisiert. Es kann mehrere Ticks pro Sekunde geben. Es ist nur dann nicht mehr synchron, wenn die Verbindung unterbrochen wird. In diesem Fall werden die verpassten Ticks geladen, sobald die Kommunikation wiederhergestellt ist.
 
igid:
Sie müssen also mehrere Terminals gleichzeitig starten und sich in jedem Terminal mit einem anderen Benutzernamen anmelden?

Ganz genau. Es ist einfacher, Terminals nicht einmal von Grund auf neu zu installieren, sondern die vorhandenen Terminals mit den bereits vorhandenen Einstellungen in Ordner zu kopieren, z.B. 1,2,3,4...100

Und Sie müssen in jedem Terminal auf "Konto eröffnen" drücken und gleichzeitig den Expert Advisor mit verschiedenen Einstellungen starten, die Sie überprüfen wollen, um in ein oder zwei Monaten zu sehen, welche Einstellungen die besten sind.

 

Können Sie uns mitteilen, wer den Alpari-Terminal benutzt hat? Ich betreibe einen Expert Advisor für 50 Währungspaare, aber es fehlt immer ein Tick, selbst bei schwebenden Aufträgen. Ich habe einen Slip eingerichtet.

Ich erhalte auch den Fehler 4066, kein Symbol im Marktübersichtsfenster, obwohl es vorhanden ist.

Ist der Server so fehlerhaft? Bei einem anderen Makler hatte ich selbst mit einem Bruchteil solcher Probleme nicht zu kämpfen

 

Guten Tag zusammen,

Ich bin ein völliger Neuling in der Programmierung und mein Roboter macht nur 2 Trades pro Woche,

Aber können Sie mir sagen, wie (! wirklich müde zu suchen!), um die Farbe der Linie des gleitenden Durchschnitts (ich bin mit Standard-iMa) im Diagramm ändern?

Beispiel-Code: FixEma= iMA (NULL,0,fix,0, MODE_EMA, PRICE_LOW,0);

Sie sind in der Tat rot (ich habe 6 davon) und nach jedem Test muss ich das Diagramm manuell streichen (so bin ich eben...). Ich will es nicht umschreiben.

Vielleicht gibt es einen Standardbefehl?

Urteilen Sie nicht zu streng, ich lerne gerade erst...