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

 
Qualcuno può consigliarmi come aprire MT4 (da un conto demo, su un computer) più volte contemporaneamente, in modo da poter testare l'Expert Advisor su diverse coppie contemporaneamente. Per non aspettare che una coppia finisca e poi impostare manualmente il test sull'altra?
 
paladin80:
Qualcuno può consigliarmi come aprire MT4 (da un conto demo, su un computer) più volte contemporaneamente, in modo da poter testare l'Expert Advisor su diverse coppie contemporaneamente. Per non aspettare che una coppia finisca e poi impostare manualmente il test sull'altra?
Copia la cartella più volte.
 
paladin80:
Qualcuno può consigliarmi come aprire MT4 (da un conto demo, su un computer) più volte allo stesso tempo, in modo da poter testare contemporaneamente l'Expert Advisor su diverse coppie. Per non aspettare che una coppia finisca e poi impostare manualmente il test sull'altra?

Può il canturino sopportare questo tipo di crudeltà? Due tester stanno caricando la CPU al 100% in parallelo, il computer non è affatto della categoria "Internet e macchina da scrivere".
 

Buon pomeriggio!

Perché il tempo di iTime e il tempo del tester (nella foto) non corrispondono?

Ecco un abbozzo di codice:

int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
    
   int  limit = Bars - counted_bars;
     
     for (int i=limit; i>=0; i--)
     {
       
    tm1=iTime(NULL,PERIOD_D1,i);           //--- Определяю время (Выводит текущую дату. Не совпадает с временем в тестере.)
    int shift=iBarShift(NULL,PERIOD_H4,tm1,false);  //---По этому времени ищем бар
   
    hgh = iHigh(NULL,PERIOD_H4,shift);   //---High бара
    lwo = iLow(NULL,PERIOD_H4,shift);    //---Low бара
          
     flatline("Lev_Up",tm1,hgh,tm2,lwo,Green,1);
     flatline("Lev_Dn",tm1,hgh,tm2,lwo,Green,1);
     }
     
     SetText("Tm1","Tm2",TimeToStr(tm1),TimeToStr(tm1),Red,Blue,12);
     SetText2("Shift",shift,Red,12);
     SetText5("High","Low", hgh,lwo,Red,Blue,12);
           
     //----
   return(0);
  }

 

Buon pomeriggio.

Puoi dirmi perché questo codice non è in commercio?

E l'allarme non funziona.

Il registro è completamente silenzioso...

Nello screenshot potete vedere che le condizioni corrispondono.

int start()
  {
  double ma= iMA(Symbol(), 0, PerMa, 0, 0, 0, 0);
//----
//GetLot(1, 0.1, 100, 0.1, 10, Symbol());
if (Filtre()=="S" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,0,CLR_NONE);
if (Filtre()=="B" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Bid-SL*pip*Digits,Bid+TP*pip*Digits,0,0,0,CLR_NONE);
Comment (Filtre(),"  ",NormalizeDouble(ma, Digits*pip),"  ",NormalizeDouble(Bid, Digits*pip));
if (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert("!!!!!!!!!!!");


//----
   return(0);
  }
 
MarkTrade:

Buon pomeriggio.

Puoi dirmi perché questo codice non è in commercio?

E l'allarme non funziona.

Il registro è completamente silenzioso...

Nello screenshot potete vedere che le condizioni corrispondono.

Controlla a cosa equivale il pip. Il secondo parametro della funzione NormalizeDouble deve essere uguale al numero di cifre decimali (che è un intero), di solito scritto semplicemente come Digits se si confrontano i prezzi.
 
atztek:

C'è un file nella cartella "experts" che deve essere copiato ogni volta che si avvia l'indicatore personalizzato.

- È possibile copiare i file dal codice e se sì, come?

Grazie!


Se si usa MQL, solo all'interno della cartella experts\files
 
Fox_RM:

Buon pomeriggio!

Perché il tempo di iTime e il tempo del tester (nella foto) non corrispondono?

Ecco uno schizzo di codice grezzo:

La tua funzione iTime prende l'i-esima barra da un file (per ogni tamframe separatamente) nella cartella tester\history, forse i file history per D1 e H1, dove l'ultima barra corrisponde al 13 gennaio, giacciono lì da qualche vecchia esecuzione.
 
alsu:
Controlla a cosa è uguale il pip. Il secondo parametro nella funzione NormalizeDouble deve essere uguale al numero di cifre dopo il punto decimale (che è un intero). Di solito scriviamo solo Digits se stiamo confrontando i prezzi.

se (Digits == 3||Digits==5) pip=10; altrimenti pip=1;

questo è per normalizzare a 4 o 2 cifre. (se le virgolette sono 5 cifre)

I valori normalizzati sono visualizzati in commento e nello screenshot possiamo vedere che sono uguali. Quindi, la condizione è stata soddisfatta ma l'ordine ancora non si apre...

Oh! Un avviso è apparso nel registro ma l'ordine non si è aperto.

 
MarkTrade:

se (Digits == 3||Digits==5) pip=10; altrimenti pip=1;

questo è per normalizzare a 4 o 2 cifre. (se le virgolette sono 5 cifre)

I valori normalizzati sono visualizzati in commento e nello screenshot possiamo vedere che sono uguali. Quindi, la condizione è stata soddisfatta ma l'ordine ancora non si apre...

Oh! L'avviso è apparso nel registro ma l'ordine non si è aperto.


Posso chiedere perché "normalizzare a 4 o 2 cifre".(se le virgolette sono 5 cifre)"? 5 e 3 cifre dovrebbero anche funzionare, per così dire...
Motivazione: