Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 449

 
abeiks:

Quante barre del grafico corrente dall'ultima ora conosciuta del server (TimeCurrent()) a un giorno particolare dalla prima barra che apre quel giorno (TimeDay(Time[80])?


iBarShift dovrebbe aiutare
 
pu6ka:

iBarShift dovrebbe aiutare

Ho lottato tutto il giorno e ancora non ci sono riuscito. Esperienza sbagliata per me e non solo. :)

Qualcuno può scrivere questa funzione?

 
abeiks:

Ho lottato tutto il giorno e ancora non ci sono riuscito. Esperienza sbagliata per me e non solo. :)

Qualcuno può scrivere questa funzione?

     int n = 0;                                           // индекс дня, в данном случае 0 - текущий день
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс бара
 
Stells:

Buon pomeriggio.

Non capisco come funziona

03:00:24 '9473965': ordine vendere 0,01 GBPUSD apertura a 0,00000 sl: 1,65314 tp: 0,00000 fallito [S/L o T/P non valido]

con questo codice

perché il prezzo di apertura è zero


Era stasera? Allora molto probabilmente il tuo stoploss era sotto il prezzo di apertura e per un ordine di vendita il prezzo stoploss dovrebbe essere più alto.
 
pu6ka:


È un po' sbagliato. Ho bisogno di ottenere l'inizio del giorno "n" in secondi specificamente da questa funzione TimeDay(Time[80]), ma non mi funziona.

 

Volevo valutare la storia per i buchi.
Ha fatto questo:

int start() 
{
  if(Time[0] > prev_time ) 
  {
    if( iTime(NULL, PERIOD_M1,0)-iTime(NULL, PERIOD_M1,1) > 200000)
    {
      n=n+1;
      Print("n =",n ,"");
    }
    prev_time = Time[0];
  } 
  
  return (0);
}

Ho capito bene che iTime conta in secondi e 200.000 = 2,31 giorni?

È possibile farlo? (Sembra funzionare, solo 6 pezzi rilevati)

 
abeiks:

È un po' sbagliato. Ho bisogno di ottenere l'inizio del giorno "n" in secondi specificamente da questa funzione TimeDay(Time[80]), ma non mi funziona.


In particolare da questa funzione TimeDay(Time[80]), devo fare qualche altro calcolo intermedio. Avete ancora il tempo della barra Time[80]. Il modo più semplice sarebbe questo:

     int n = iBarShift(NULL,PERIOD_D1,Time[80]);          // индекс дня, которому принадлежит время бара - Time[80]
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс первого бара дня "n"
 
sv.:

Ho pensato di valutare la storia dei buchi.

Ecco uno script molto utile, lo uso da anni. Se l'archivio delle citazioni è caricato, è necessario cambiare due parametri per evitare di frugare nelle impostazioni. Sono evidenziati nello screenshot con una cornice rossa.

Per lanciarlo su qualsiasi grafico e attendere un paio di secondi, fino a quando il messaggio dove il file con il rapporto è.

 
addict:

l'ordine di acquisto è aperto una volta, ma per la vendita il numero di ordini è di nuovo infinito


Scrivi una funzione come questa

int start()

if( OrdersTotal()==0 && CountTrades()==0)

{

OrderSend ("EURUSD",OP_BUYLIMIT,l,1.36000,5,0,1.36000+tp*Point,"my order",1);

OrderSend ("EURUSD",OP_BUYSTOP,l,1.36000,5,0,1.36000+tp*Point,"my order",1);

else

{
OrderSend ("EURUSD",OP_SELLLIMIT,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
OrderSend ("EURUSD",OP_SELLSTOP,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
}

}

ritorno(0);

}

//+------------------------------------------------------------------+

int CountTrades()

{

int count = 0;

for(int trade = OrdersTotal()-1; trade >=0; trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

count++;

}

}

return(count);

 
pu6ka:


In particolare, a partire da questa funzione TimeDay(Time[80]), dovete fare qualche altro calcolo intermedio. Hai ancora il tempo del barTime[80]. Sarebbe più facile farlo in questo modo:


Grazie! :)

Motivazione: