[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 529

 
001:
Puoi dirmi se c'è un auto-ottimizzatore che ottimizza i parametri durante il test? Devo controllare l'idea.
Ce n'è anche uno più vicino, proprio sul nostro sito.
E c'è anche una cosa come la ricerca, che è quando si inseriscono in un motore di ricerca le parole con cui si nomina il soggetto.
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=автооптимизатор
 

Potreste consigliarmi come specificare correttamente in un ordine pendente in un EA di cancellarlo automaticamente alle 23:00?

Questa opzione dà un errore:

  datetime Tim=D'23:00';
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  {

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
 
Andreev:

Potreste consigliarmi come specificare correttamente in un ordine pendente in un EA di cancellarlo automaticamente alle 23:00?

Questa opzione dà un errore:


int Tim=iTime(NULL, Period_D1,0)+23*60*60;
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
Qualcosa del genere
 
dmmikl86:

Non sono un programmatore principiante da qualche anno, ho riscritto l'indicatore da un altro linguaggio e mi sono imbattuto in un ridisegno.

Sono un principiante, ho riscritto l'indicatore in un'altra lingua:


Preferirei avere l'indicatore come file. Nessuno incollerà i pezzi in un unico file
 
Andreev:

Questa opzione dà un errore:

int Tim;
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  { Tim=TimeCurrent( )+ (23-Cur_time)*3600

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);


Qualcosa del genere.
 
Vinin:

Qualcosa del genere

Dà un errore:


2011.07.19 18:56:15 2011.07.18 20:00 Ritorno EURUSD,M1: OrderSend errore 4062
2011.07.19 18:56:15 2011.07.18 20:00 Ritorno: il parametro di commento per la funzione OrderSend deve essere una stringa

 
alexshell:

Le cose stanno così.

Per qualche motivo ottengo lo stesso errore. Se rimuovo la funzione Tim dall'ordine, funziona, ma alcuni trade si aprono dopo le 23.00. Cosa posso fare per limitare questo?
 
Andreev:

Ho un errore:


2011.07.19 18:56:15 2011.07.18 20:00 Ritorno EURUSD,M1: OrderSend errore 4062
2011.07.19 18:56:15 2011.07.18 20:00 Ritorno: il parametro di commento per la funzione OrderSend deve essere una stringa


Scusa, ho modificato la tua versione senza controllare

 ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, "",0,Tim, CLR_NONE);
 
Vinin:


Scusa, ho modificato la tua versione senza controllare


Grazie mille!!! Funziona :)
 

Buonasera!!! Ho una domanda sulla funzione Alert. Ecco un robot senza un grosso pezzo centrale e molti h

//+------------------------------------------------------------------+
//|                                                    пробныйй .mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
  
  int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price; int stsBUY;int stsSELL;double Price;int C=0;datetime wremjapomnim;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4) ; Alert ("price", price);Alert("otstup*Point",otstup*Point);
//----
Alert ("Price +otstup*Point",Price +otstup*Point);Alert ("Price+takeprofit*Point+otstup*Point", Price+takeprofit*Point+otstup*Point);
tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, Price +otstup*Point, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( ));
  Alert ("Price -otstup*Point",Price -otstup*Point);Alert ("Price-takeprofit*Point-otstup*Point", Price-takeprofit*Point-otstup*Point); 
tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, Price -otstup*Point, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
   
//----

// Здесь код для закрытия всех открытых позиций (тоже в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
           OrderSelect(i, SELECT_BY_POS );
              if (  OrderType( )==OP_BUY && OrderType( )==OP_SELL ){
                          OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);
   Alert ("OrderClose-vse-2",  GetLastError( ) ); C=0;A=1; }} 
         // Здесь код для удаления всех отложенных ордеров (также в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
         OrderSelect(i, SELECT_BY_POS );
           if (  OrderType( )==OP_BUYSTOP && OrderType( )==OP_SELLSTOP ){ 
            OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse-2",  GetLastError( ) ); }}    
        
   return(0);
  }
//+------------------------------------------------------------------+
Alert dovrebbe registrare il prezzoAlert ("prezzo", prezzo); diciamo 1,4825, e lo fa, cioè la variabile è normale. E poi!!!

Alert ("Price +otstup*Point",Price +otstup*Point); È Price + indent(20pp)* moltiplicato per un punto(0.0001) totale-1.4805 dovrebbe essere, (!!!!) ma scrive 0.002

ecc. Qui: Come faccio a capire? Qual è la sintassi delle formule?