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

 

Dove sia l'errore, non lo so.

Op.

File:
5system2.mq4  8 kb
 
CJIeCaPb:

Dove sia l'errore, non lo so.

Ope.

C'è qualcosa di sbagliato nel ciclo while(O==3)

 
CJIeCaPb:

C'è qualcosa di sbagliato nel ciclo while(O==3)

Uff... Ecco, ho capito tutto. Dopo la chiusura, il ticket viene cancellato e l'ordine deve essere eseguito nuovamente
 
Ciao, questo è il problema, non posso aprire il file. Provato con diverse estensioni di file, senza risultato, dà solo: errore 5004. Il file è nella sandbox dei file. È tutta una questione di manico, ma non ho idea del perché. Ecco il codice:
   int filehandle=FileOpen("test.txt",FILE_TXT|FILE_WRITE,";");
   if(filehandle<0)
   Alert("ошибка ",GetLastError());                          //Для проверки handle

 
 int filehandle=FileOpen("test.txt",FILE_WRITE|FILE_TXT,";");
 
evillive:
Provato senza il separatore - non serve.
 
Kapizdo4ka:
Ciao, ho questo problema, non posso aprire il file. Provato con diverse estensioni di file, non serve, dà solo: errore 5004. Il file è nella sandbox dei file. È tutta una questione di manico, ma non ho idea del perché. Ecco il codice:

Hai provato a specificare che il file è in una cartella condivisa

Bandiere di apertura dei file

I valori dei flag che definiscono come il file sarà gestito. I flag sono definiti come segue:

Identificatore

Valore

Descrizione

LETTURA DEL FILE

1

Il file è aperto per la lettura. Questo flag è usato quando si apre un file (FileOpen()). FILE_WRITE e/o FILE_READ devono essere impostati quando un file viene aperto.

FILE_WRITE

2

Il file è aperto per la scrittura. Questo flag è usato per aprire un file (FileOpen()). Quando un file viene aperto, i flag FILE_WRITE e/o FILE_READ devono essere impostati.

FILE_BIN

4

Modalità di lettura-scrittura binaria (nessuna conversione da o a stringa). Questo flag è usato per aprire i file (FileOpen())

FILE_CSV

8

File di tipo csv (tutti gli elementi scritti sono convertiti in una stringa del tipo appropriato, unicode o ansi, e separati da un separatore). Questo flag è usato quando si apre un file (FileOpen())

FILE_TXT

16

Semplice file di testo (come il csv, ma senza separatore). Questo flag è usato quando i file vengono aperti (FileOpen())

FILE_ANSI

32

Stringhe ANSI (caratteri a byte singolo). Questo flag è usato quando si aprono i file (FileOpen())

FILE_UNICODE

64

Stringhe UNICODE (caratteri a due byte). Questo flag è usato quando si aprono i file (FileOpen())

FILE_SHARE_READ

128

Accesso in lettura condiviso da più programmi. Questo flag è usato quando si apre un file (FileOpen()), ma non sostituisce la necessità di FILE_WRITE e/o FILE_READ quando si apre un file.

FILE_SHARE_WRITE

256

Questo flag è usato per la condivisione dell'accesso in scrittura da parte di più programmi. Questo flag è usato per aprire i file (FileOpen()), ma non sostituisce FILE_WRITE e/o FILE_READ quando si apre un file.

FILE_REWRITE

512

Il file può essere sovrascritto da FileCopy() e FileMove(). Il file deve esistere o essere scrivibile. Altrimenti, il file non può essere aperto

FILE_COMMON

4096

Posizione del file nella cartella condivisa di tutti i terminali client\Terminal\Common\Files . Questo flag è usato quando si aprono i file (FileOpen()), si copiano i file (FileCopy(), FileMove()) e si verifica l'esistenza dei file (FileIsExist())

Uno o più flag possono essere specificati quando si apre un file, questa combinazione è chiamata combinazione di flag. La combinazione di flag è scritta usando il segno dell'operazione OR logico (|) che è posto tra i flag da enumerare. Per esempio, per aprire un file CSV in lettura e scrittura allo stesso tempo, potete specificare la combinazione FILE_READ|FILE_WRITE|FILE_CSV.

 
Vinin:

Hai provato a specificare che il file è in una cartella condivisa

Bandiere di apertura dei file

I valori dei flag che definiscono come il file sarà aperto. I flag sono definiti come segue:

Identificatore

Valore

Descrizione

LETTURA DEL FILE

1

Il file è aperto per la lettura. Questo flag è usato quando si apre un file (FileOpen()). FILE_WRITE e/o FILE_READ devono essere impostati quando il file viene aperto.

FILE_WRITE

2

Il file è aperto per la scrittura. Questo flag è usato quando si apre un file (FileOpen()). Il flag FILE_WRITE deve essere impostato e/o il flag FILE_READ deve essere impostato quando un file viene aperto.

FILE_BIN

4

Modalità di lettura-scrittura binaria (non convertita in e da stringa). Questo flag è usato per aprire i file (FileOpen())

FILE_CSV

8

csv (tutti gli elementi scritti sono convertiti in una stringa del tipo appropriato, unicode o ansi, e separati da un delimitatore). Questo flag è usato quando si aprono i file (FileOpen())

FILE_TXT

16

File di testo semplice (stesso tipo, ma il delimitatore è ignorato). Questo flag è usato quando si apre un file (FileOpen())

FILE_ANSI

32

Stringa di tipo ANSI (caratteri a byte singolo). Questo flag è usato quando si aprono i file (FileOpen())

FILE_UNICODE

64

Stringhe UNICODE (caratteri a due byte). Questo flag è usato quando si aprono i file (FileOpen())

FILE_SHARE_READ

128

Accesso in lettura condiviso tra più programmi. Questo flag è usato quando si apre un file (FileOpen()), ma non sostituisce lo specificare FILE_WRITE e/o FILE_READ quando si apre un file.

FILE_SHARE_WRITE

256

Questo flag è per l'accesso in scrittura condiviso da più programmi. Questo flag è usato per aprire i file (FileOpen()), ma non sostituisce la necessità di specificare i flag FILE_WRITE e/o FILE_READ quando si apre un file.

FILE_REWRITE

512

FileCopy() e FileMove() possono essere usati per sovrascrivere un file. Il file deve esistere o essere scrivibile. Altrimenti, il file non sarà aperto

FILE_COMMON

4096

Posizione del file nella cartella condivisa di tutti i terminali client \Terminal\Common\Files . Questo flag è usato quando si aprono i file (FileOpen()), si copiano i file (FileCopy(), FileMove()) e si controlla l'esistenza dei file (FileIsExist())

Quando si apre un file, si possono specificare uno o più flag, questa combinazione è chiamata combinazione di flag. Una combinazione di flag viene registrata usando il segno logico OR (|) posto tra i flag elencati. Per esempio, per aprire un file CSV in lettura e scrittura allo stesso tempo, potete specificare la combinazioneFILE_READ|FILE_WRITE|FILE_CSV.

Grazie! Tuttavia, la risposta si è rivelata molto più semplice. Tutto a causa dei cambiamenti nella nuova costruzione. Risulta che la funzione FileOpen deve ora specificare il tipo uint invece del tipo int, come nella versione precedente:
uint filehandle=FileOpen(filename,FILE_TXT||FILE_WRITE,"\r\n");

E ora in caso di errore la funzione restituisce 0 invece di -1.

 

Abbozzato un semplice Trailing Stop. bez_Level - Livello di partenza trailing in pip. TrallStep - passo di trascinamento. Magic - numero di Magic.

Il problema è che, se diversi ordini vengono aperti dall'Expert Advisor, solo il primo ordine viene trillato. E, quando il primo ordine è chiuso, il secondo inizia a trillare. Non ricevo alcun messaggio di errore. Non posso cercare di scoprire cosa ho fatto di sbagliato. Grazie...

int lim=OrdersTotal()-1;

for(int i=lim; i>=0; i--)
{
se(bez_Level>0)
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_SELL)
{
{ se((OrderOpenPrice()-Ask)>(Point*bez_Level))
{
if((OrderStopLoss()>(Ask+Point*bez_Level)+(Point*TrallStep)) || (OrderStopLoss()==0))
{
//--- modificare l'ordine e uscire
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*bez_Level,OrderTakeProfit(),0))
Print("Trailing error ",GetLastError());
}
}
}
if(OrderType()==OP_BUY)
{
se((Bid-OrderOpenPrice()>Point*bez_Level))
{
se(OrderStopLoss()<Bid-(Point*bez_Level)-(Point*TrallStep))
{
//--- modificare l'ordine
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*bez_Level,OrderTakeProfit(),0))
Print("Trailing error ",GetLastError())
}
}

}

}
}
}
 

Ragazzi, qual è il trucco? Perché non esce da Inita?

PERCHÉ NON C'È NESSUNA VOCE IN START?????????

int init()
 {
   if(init_data()==false)error=true;
   if(error==false)load_data();
   if(error==false)count_data();
   //if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");
   setparam();
   Print ("Инит завершён успешно");
   return (0);
 }

int start()
{
  // if(iTime(Symbol(),0,0) == prevtime) return(0);    //ждем нового бара
 //  prevtime = iTime(Symbol(),0,0);                   //если появился новый бар , включаемся    
   Print (" Старт после нового бара"); 
...
      
Motivazione: