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

 
nikelodeon:

Qualcuno può spiegare perché durante il periodo di ottimizzazione appaiono impostazioni dell'EA in cui non c'è redditività. Cosa significa questo ????

Pochi scambi, massimo 8. Esegui un'altra storia.
 
Forexman77:
Puoi dirmi come trovare il massimo e il minimo assoluto sulla storia con lo strategy tester?
Massimo e minimo di cosa?
 
paladin80:
Massimo e minimo di cosa?

Nella storia di EURUSD, i prezzi massimi e minimi del giorno. Il tempo della loro formazione.
 
Forexman77:

EURUSD storia prezzi massimi e minimi per il giorno. Il tempo della loro formazione.
Leggi iHighest e iLowest
 
paladin80:
Leggi iHighest e iLowest

Trovare attraverso iHighest e iLowest non è un problema. Come cuocere questo nel tester in modo che dia informazioni sul tempo di formazione, su una storia particolare.
 
Forexman77:

Trovare attraverso iHighest e iLowest non è un problema. Come cuocere questo nel tester in modo che dia informazioni sul tempo di formazione, su una storia particolare.

Puoi provare in questo modo:

 for (int i=0; i<iBars(Symbol(),PERIOD_D1); i++) {
  double HistoryMaximum=iHigh(Symbol(),PERIOD_D1,i);
  double HistoryMinimum=iLow(Symbol(),PERIOD_D1,i);
  Print("Дата ",TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)," Максимум=",DoubleToStr(HistoryMaximum,Digits)," Минимум=",DoubleToStr(HistoryMinimum,Digits));
 }

 
Forexman77:

Trovare attraverso iHighest e iLowest non è un problema. Come cuocere questo nel tester in modo che dia informazioni sul tempo di formazione, su una storia particolare.

double High_price=-1.0;
double Low_price=10000000000.0;
double Time_high_price, Time_low_price;
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
//----
   if (iHigh(NULL,PERIOD_M1,0)>High_price)
   {
     High_price=iHigh(NULL,PERIOD_M1,0);
     Time_high_price=iTime(NULL,PERIOD_M1,0);
   }
   
   if (iLow(NULL,PERIOD_M1,0)<Low_price)
   {
     Low_price=iLow(NULL,PERIOD_M1,0);
     Time_low_price=iTime(NULL,PERIOD_M1,0);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Print("Highest price = ",DoubleToStr(High_price,Digits)," on ",TimeToStr(Time_high_price,TIME_DATE|TIME_SECONDS));
   Print("Lowest price = ",DoubleToStr(Low_price,Digits)," on ",TimeToStr(Time_low_price,TIME_DATE|TIME_SECONDS));
//----
   return(0);
  }
 
Sepulca:

Potresti provare in questo modo:


Come posso fare in modo che i tempi minimi e massimi siano visualizzati separatamente? O meglio, non è un problema. Ci sono diverse righe per ogni tempo nel diario di bordo.

Quale potrebbe essere il problema? Come fare una linea di output per ogni valore. Idealmente, si vuole un tempo in numeri che possono essere copiati in excel e confrontati da

partita.


 
Per favore, lanciami un link a un articolo su come impostare i segnali per MetaTrader 4
 

Di nuovo, la mia funzione di cancellazione degli ordini in sospeso non cancella tutto. Inoltre, non cancella tutto nel tester. Aiutami a capire cosa c'è di sbagliato.

void DeletePendingOrders()
{
    int numberOfTry = 0,
        err,
        ticket;

   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() > 1 && OrderType() < 6)
      {
         ticket = OrderTicket();
         numberOfTry = 0;
      
         while (numberOfTry < 3)
         {
            while (!IsTradeAllowed()) Sleep(5000);
                err = 0;

           if (OrderDelete(ticket, Red))
            {
                numberOfTry = 3;
            }
            else
            {
                err = GetLastError();
                Print("err = ", err);
            }
      
            if (err > 0)
            { 
              Print(numberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000); RefreshRates(); numberOfTry++;
            }
         }
      }
   }
}
Motivazione: