[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 219

 

Grazie, ho incollato questo codice in EA, la compilazione dà fuori '(' - definizione della funzione inaspettata dopo bool ExistOrders, c'è una parentesi extra o qualcosa del genere...

for (int k=0;k<OrdersTotal();k++)//Esaminiamo tutti gli ordini aperti
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
per (i=0; i<k; i++)
{
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType();
se (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} return(False);
}
//----
ritorno(0);
}
 
Graall:

Grazie, ho incollato questo codice in EA, la compilazione dà fuori '(' - definizione della funzione inaspettata dopo bool ExistOrders, c'è una parentesi extra o qualcosa del genere...


Togliere la funzione ExistOrders dalla funzione start.
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

Sì, ho capito, la funzioneExistOrders è una funzione personalizzata, l'ho tolta dalla funzione start, l'errore è lo stesso, sta combattendo qualcosa nella prima parte dell'EA, la sto incollando completamente


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

//| 1.mq4 |
//| Oleg 2013 |
//| |
//+------------------------------------------------------------------+
#define Magic 123

//--- parametri di ingresso
extern int TakeProfit = 100;
extern double Lots = 0.1;
extern int Shag = 100;
stringa sy;
int ty;
int op;
int mn;
int k;
int i;
//--------------------------------------------------------------------------------------------
int start()
{
// cerca il primo elemento zero
int total=OrdersTotal();
se (totale==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,",123,0,Blue);
for (int i=0;i<OrdersTotal();i++)//Visualizza tutti gli ordini aperti
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
se ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0);
se ( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0);
}
}
for (int k=0;k<OrdersTotal();k++)//Visualizza tra tutti gli ordini aperti
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);

//----
ritorno(0);
}
//+------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
per (i=0; i<k; i++)
{
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType();
se (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} return(False);
}
 
Graall:



Controlla l'accoppiamento delle parentesi {} (con attenzione). L'errore significa che manca almeno una chiusura nella funzione start ().
 
alsu:

Controlla l'accoppiamento delle parentesi {} (con attenzione). L'errore significa che manca almeno una chiusura nella funzione start ().


a destra, dopo

for (int k=0;k<OrdersTotal();k++)//Osserva tra tutti gli ordini aperti

{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);

saltato } grazie!

 
Ciao, il mio tempo nel terminale non coincide con il tempo reale, ora se metto il cursore sulla candela M5 mostra 18.45, e in realtà in Ucraina 19.45, come cambiare il tempo?
 
sanktum:
Ciao, il mio tempo nel terminale non coincide con il tempo reale, ora se si passa sopra la candela M5 mostra 18.45, ma in realtà in Ucraina 19.45, come cambiare il tempo?

Nessuna. L'ora sui candelieri è l'ora del server.

 

Buon pomeriggio.

Sto scrivendo dati su un file ad ogni apertura di una nuova barra:

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

Ho bisogno che l'indicatore legga questi dati e costruisca un grafico sugli intervalli di tempo registrati.

Voglio avere un indicatore che legga questi dati e li tracci sul grafico ad ogni apertura di una nuova barra.

 

Ho installato MT4 (Versione: 4.00 Build 451) e ho notato che nella cartella Experts Logs c'è solo un file datato il giorno dell'installazione del terminale, cioè il 13. Nessun altro file di log, anche se ho acceso e spento la piattaforma molte volte.

Qualsiasi commento su questo fenomeno sarebbe apprezzato.

 
Geowind64:

Ho installato MT4 (Versione: 4.00 Build 451) e ho notato che nella cartella Experts Logs c'è solo un file datato il giorno dell'installazione del terminale, cioè il 13. Nessun altro file di log, anche se ho acceso e spento la piattaforma molte volte.

Qualsiasi commento su questo fenomeno sarebbe apprezzato.


Ho bisogno di eseguire almeno un esperto/indicatore/script, sono quelli che scrivono in questa cartella.
Motivazione: