[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 408

 
costy_:
Grazie.
 
Roman.:


Copie di terminali... :-)

Ognuno ha il suo conto di trading unico.

Vuoi dire che devi eseguire diversi terminali allo stesso tempo e accedere con nomi utente diversi in ognuno di essi?
 
LOA:

Sì.... Risposta "esaustiva". Ogni evento deve avere una ragione. I professionisti che incontrano alcuni problemi sanno a cosa prestare attenzione. Ho controllato l'algoritmo diverse volte ma non riesco a trovare la causa, quindi chiedo consiglio ai professionisti: quale potrebbe essere la causa?
Beh, se non si può fare da soli, l'algoritmo nel suo complesso non fa male, nelle linee date difetti evidenti non sono. L'osservazione è del tutto pertinente.
 
costy_:

... indicatore.

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

provare il metodo "gut feeling" con un Expert Advisor vuoto,

Controllare nell'indicatore per ObjectCreate per trovare la sua sottofinestra (o perché disegnarla SE TESTATO O OTTIMIZZATO)

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


Ho provato un Expert Advisor vuoto, Alert viene visualizzato normalmente, ma nell'indicatore ObjectCreate ha questa vista:

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

Cosa dovrei cambiare qui...?

 
kolyango:


Ho provato un EA vuoto, Alert viene visualizzato ok, ma nell'indicatoreObjectCreate haquesta vista:

Cosa deve essere cambiato qui...?

il disallineamento è assicurato.

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

e tu hai

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

spostamento nel tempo ma non nei bar

realizzazione tutto in una finestra non è buono (anche se ghirlande di Capodanno))

e ci vuole così tanto tempo )) tutz

File:
xxx.mq4  7 kb
 
gara:

Ciao a tutti, domanda per i professionisti:

Per favore, spiegate come funziona MT4.

La mia visione:

Il terminale è in funzione, Internet è connesso, nella panoramica del mercato alcuni strumenti sono in funzione, alcuni grafici sono aperti da essi. Consideriamo uno strumento che ha un grafico aperto, diciamo che ticchetta avanti e indietro e la barra si chiude. Il momento non è chiaro:

L'ultima barra formata che vedo nel mio grafico corrisponde alla barra sul lato del broker, perché una parte dei tick potrebbe essere mancata o c'è una sincronizzazione completa con l'arrivo di ogni tick?

Quanto spesso la mia cronologia viene sincronizzata con quella del broker?


Oso ripetere la domanda
 
gara:
Osa ripetere la domanda
gara Il terminale è sincronizzato ogni tick. Ci possono essere diversi ticchettii al secondo. È fuori sincrono solo se la connessione viene persa. In questo caso, quando la comunicazione riappare, i tick mancanti vengono caricati.
 
igid:
Quindi devi avviare diversi terminali allo stesso tempo e accedere con login diversi in ognuno di essi?

Esattamente. È più facile non installare nemmeno i terminali da zero, ma copiare quello esistente con le impostazioni già disponibili in cartelle, per esempio 1,2,3,4...100

E devi premere "Open Account" in ogni terminale e contemporaneamente avviare l'Expert Advisor con diverse impostazioni, che vuoi controllare e vedere in un mese o due, quali impostazioni sono le migliori.

 

Potete consigliare chi ha usato il terminale Alpari? Ho un Expert Advisor per 50 coppie di valute, ma continua a mancare un tick, anche per gli ordini pendenti. Ho un sistema di slittamento.

Ottengo anche l'errore 4066, nessun simbolo nella finestra di panoramica del mercato, anche se c'è.

Questo è un server così glitch? In un altro broker anche con una frazione di tali problemi non ho affrontato

 

Buon pomeriggio a tutti,

Sono un novizio assoluto della programmazione e il mio robot fa solo 2 scambi a settimana,

Ma potete dirmi come (! davvero stanco di cercare!) cambiare il colore della linea della media mobile (sto usando iMa standard) sul grafico?

Codice di esempio: FixEma= iMA (NULL,0,fix,0, MODE_EMA, PRICE_LOW,0);

Sono rossi, infatti (ne ho 6) e dopo ogni test devo dipingere il grafico manualmente (sono fatto così...). Non voglio riscriverlo.

Forse c'è un comando standard?

Non giudicare strettamente, sto solo imparando...

Motivazione: