[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 196

 
hoz:

http://photoload.ru/data/c4/9a/b1/c49ab15e130c84a1ca9c51711fcf423a.jpg Non capisco ancora la logica degli indicatori. Per esempio, se si prende un indicatore standard di media mobile.

È all'inizio:

Tutto è logico qui, il prossimo passo è la chiamata della funzione selezionata dall'utente... dalla finestra che è apparsa tirando sul grafico dell'indicatore. Giusto?

C'è un pezzo di codice in INIT che ho commentato:

Eppure nella DataWindow il nome è scritto. Ecco uno screenshot:

La domanda sorge spontanea. Perché INIT ha bisogno di questo pezzo di codice?


Cancellate il grafico dalla finestra (del tutto) ed eseguitelo di nuovo, il nome scomparirà. La reinizializzazione sulle sottofinestre fa solo così.
 
alsu:

Rimuovete il grafico dalla finestra (del tutto) ed eseguitelo di nuovo, il nome scomparirà. La reinizializzazione sulle sottofinestre fa solo così.

Infatti. Ora è tutto chiaro.
 
TarasBY:
Il modo più semplice per dare un senso alla vostra scrittura è diventare consapevoli di ogni linea di codice (firmando). Ed è molto probabile che arrivi un'epifania!
P.S. È anche una buona idea imparare a inserire del codice nel tuo post premendo il pulsante "SRC".

Grazie, ne terrò conto.
 

Ciao!

Avete visto un Expert Advisor semi-automatico Fibonacci Equation, io disegno e lui fa trading. Mi ha aiutato con il codice bi e Fibonacci incorporato in MQ4.

Grazie.

 
Potete dirmi come cronometrare la trasformazione di un ordine pendente in un ordine a mercato?
 
Si prega di spiegare la domanda stessa nel commento al codice
 { int buys=0,sells=0;
 {
  
    for (int i=0;i>OrdersTotal();i++)                            //цикл перебора ордеров ????
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)break;     // если есть ордер ????
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)   // определяем принадлежность ордера к инструменту и маджику  ????
      {
         if(OrderType()==OP_BUY)  buys++;               // что означает buys++  ????????? присвоивает переменной новое значение?
         if(OrderType()==OP_SELL) sells++;             // и sell++     ?????????????
        }
        }
 
novator:
Si prega di spiegare la domanda nei commenti al codice

La variabile che accumula gli ordini di acquisto è incrementata di 1 (roba da programmatori)
 
YOUNGA:

la variabile che accumula gli ordini di acquisto viene incrementata di 1 (roba da programmatori)
Grazie,
cioè se ci sono più ordini di 0 la funzione esce ?
 {
   int buys=0,sells=0;
//----
   for(int i=1;i>OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- 
   if(buys>0) return(buys);
   else       return(-sells);
 

Ciao!

Come posso aggiustare il codice per cercare non solo i massimi e i minimi in un giorno, ma anche per un intervallo impostato in alcuni giorni?

Ecco quello che ho:

se(InizioOra<=FineOra)

{

delta=(EndHour*3600+EndMinute*60)-(StartHour*3600+StartMinute*60);

timeStart=iTime(NULL,PERIOD_D1,0)+StartHour*3600+StartMinute*60;

timeEnd =timeStart+delta;

}

se(Orainizio>OraFine)

{

delta=(1440*60-(StartHour*3600+StartMinute*60))+(EndHour*3600+EndMinute*60);

timeEnd=iTime(NULL,PERIOD_D1,0)+EndHour*3600+EndMinute*60;

timeStart =timeEnd-delta;

 
Legeo777:

Ciao!

Come posso aggiustare il codice per cercare non solo i massimi e i minimi all'interno di un giorno, ma anche per un intervallo impostato in alcuni giorni?

Ecco quello che ho:

se(InizioOra<=FineOra)

{

delta=(EndHour*3600+EndMinute*60)-(StartHour*3600+StartMinute*60);

timeStart=iTime(NULL,PERIOD_D1,0)+StartHour*3600+StartMinute*60;

timeEnd =timeStart+delta;

}

se(Orainizio>OraFine)

{

delta=(1440*60-(StartHour*3600+StartMinute*60))+(EndHour*3600+EndMinute*60);

timeEnd=iTime(NULL,PERIOD_D1,0)+EndHour*3600+EndMinute*60;

timeStart =timeEnd-delta;


A mio parere, è più facile usare l'array di serie temporali standard e l'istruzione for.