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

 
Ancora non funziona... Puoi darmi qualche dettaglio in più per gli stupidi? Vediamo... Cosa devo mettere davanti al mio codice? Quali variabili? Non posso chiamare la funzione... Hai scritto diversi modi di risolvere questo problema o è solo un modo? Ho un debole per questo...
 
r772ra:

Puoi fare questo.....
Questa variante non funzionerà correttamente, perché NewBar dà true solo sul primo tick della barra. Per un lavoro corretto è necessario mettere le linee FunNewBar(); if(!NewBar) return; all'interno della condizione di apertura del trade, e dopo un'apertura riuscita.
 
alsu:
Questa variante non funzionerà correttamente, perché NewBar dà true solo sul primo tick della barra. Per funzionare correttamente, dovremmo mettere la linea FunNewBar(); if(!NewBar) return; all'interno della condizione di apertura del trade, e dopo un'apertura riuscita.
Anche se non è del tutto corretto anche in questo senso. In breve, la variante di r772ra deve essere corretta e, meglio, dovremmo usare un approccio fondamentalmente diverso, per esempio, guardare il tempo dell'ultimo ordine aperto nella storia e confrontarlo con il tempo della barra corrente - sarà molto più affidabile.
 
alsu:
Anche se non sarà del tutto corretto. In breve, la variante di r772ra dovrebbe essere corretta, e meglio usare un approccio fondamentalmente diverso, per esempio, guardare il tempo di apertura dell'ultimo ordine nella storia e confrontarlo con il tempo della barra corrente - sarà molto più affidabile

Va più o meno così.

int BarOfLastOrder(int magic)
{
   int i,ot=OrdersTotal();
   
   for(i=ot-1; i>=0; i--);
   {
      OrderSelect(i,SELECT_BY_POS);
      if(OrderMagicNumber()==magic) return(iBarShift(0,0,OrderOpenTime()));
   }
   
   return(-1);
}

int start()
{

   ........

   int bar_of_last_order = BarOfLastOrder(magic); // указать магик, который использует советник

   switch(bar_of_last_order)
   {
      case 0:
         //последний ордер открыт на текущем баре
         ...
         break;
      case -1:
         //ордеров нет
         // здесь break не ставим, если ситуация "нет ордеров" и "последний ордер открыт не на текущем баре" нужно обрабатывать одинаково
         // в противном случае написать обработку и break;
      default:
         //последний ордер открыт не на текущем баре
         ...
         break;
   }

   .........

}
 
Grazie! Farò un tentativo...
 
7sintez:
Grazie! Farò un tentativo...
ha modificato il codice
 
alsu:
ha modificato il codice
Aha!!! Ora cercherò di fare qualcosa al riguardo...
 

Evviva!!! Ce l'ho fatta

{
static datetime New_Time=0;
New_Bar=false;
if(New_Time!=Time[0])
{
New_Time=Time[0];
New_Bar=true;
}
}

 
7sintez:
Grazie mille!!! Funzionerà se metto il segnale sulla meno prima barra dall'apertura?

 
Grazie mille a tutti per il vostro aiuto! I codici che non ho ancora usato - li ho copiati nel blocco note! Li esaminerò quando avrò il tempo! Grazie ancora e ancora e ancora Amici!
Motivazione: