[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 445

 

Ho un problema che ha raggiunto un punto ridicolo. Errore nella funzione di chiusura dell'ordine.

OrserClose(int tip){
if( tip==1){
for( i=0; i<OrdersTotal(); i++){
           if(true==OrderSelect( i, SELECT_BY_POS, MODE_TRADES)){
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Magic){
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
               }
           }
         }  
}

Dà un errore (in diversi terminali)

EURCHF,M5: errore OrderClose 4107

EURCHF,M5: prezzo non valido 1.48566000 per la funzione OrderClose


se lo faccio

OrderClose(OrderTicket(), OrderLots(),OrderClosePrice(),3, Violet);
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),3,Violet);

Ma quando scrivo OrderClose(...) non in una funzione separata, ma in int start(), questo errore non si verifica .

Qual è il problema e come risolverlo?



 
prova ad eseguire il ciclo dalla fine all'inizio
for( i = OrdersTotal() - 1;  i > 0;  i--)
 
T-G >>:

У меня проблема до смешного дошла. Ошибка в функция закрытия ордера.

дает ошибку (причем в разных терминалах)

EURCHF,M5: OrderClose error 4107

EURCHF,M5: invalid price 1.48566000 for OrderClose function


если сделать

таже самая ошибка. но причем когда я пишу OrderClose(..) не в отдельной функции а в int start() то такой ошибки не возникает.

в чем дело и как вылечить?









normalizzare il prezzo

 

int tick = 0, MaxTicks = 5;
bool SaveTickOn = 1;
string bid_s;

int start(){
   if( SaveTickOn){
      int rw_mode = FILE_CSV| FILE_READ| FILE_WRITE;
      if( tick == 0) rw_mode = FILE_CSV| FILE_WRITE;
      int handle1 = FileOpen("bids1.dat", rw_mode," ");
      bid_s = DoubleToStr(Bid,Digits); 
      FileWrite( handle1, bid_s);
      if(GetLastError() != 0) Alert("Error= ",GetLastError());
      Alert( tick,": ", bid_s);
      tick++;
      if( tick == MaxTicks) SaveTickOn = 0; 
      FileClose( handle1);
   }
   return(0);
}

C'è un codice semplice per scrivere in un file con un'appendice, ma per qualche motivo l'opzione per aggiungere a un file

FILE_READ| FILE_WRITE 

non funziona.

Cosa può essere?

 

Mettete questo all'inizio, chiuderà tutto con una garanzia, basta mettere le condizioni...

if ( Close_) {
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect( trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

if ((OrderType() == OP_BUY) &&( условие закрытия для бай)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
if ((OrderType() == OP_SELL)&&( условие закрытия для селл)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
}
Sleep(1000);
}
}
}
 
Andrei01 >>:

Есть простейший код для записи в файл с добавлением, но почему то опция добавления в файл

не работает.

Что это может быть?

Ho anche controllato che la funzione FileIsEnding(handle1) restituisce zero, mentre dovrebbe essere 1, il che significa che ci deve essere un bug in MT4 nella modalità add to file.

 
Andrei01 писал(а) >>

Ho anche controllato che la funzione FileIsEnding(handle1) restituisce zero, mentre dovrebbe essere 1, il che significa che ci deve essere un bug in MT4 nella modalità add to file.

Hai provato ad andare alla fine del file? FileSeek()

 
//+------------------------------------------------------------------+
//| Scrivere la stringa nel file.
//+------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text)
{
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

se (file_handle>0)
{
FileSeek(file_handle, 0, SEEK_END);
FileWrite(file_handle, testo);
FileClose(file_handle);
}

}
Non ci sono bug, bisogna solo scriverlo correttamente. Questa funzione aggiunge del testo a FileName .
 

Ciao!

Sto cercando di programmarlo da solo!

Aiutami a capire in che direzione andare! Se ne hai bisogno urgentemente e rapidamente (per cominciare)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C'è un certo indicatore composto da due MA

Dobbiamo creare un segnale sonoro all'intersezione di due MA con il messaggio visualizzato utilizzando la funzione "MessageBox".

Cosa fare?

1 Creare uno script con la funzione "MessageBox

2.O aggiungere una condizione al codice dell'indicatore con questa funzione?

3.O collegare uno script esistente all'indicatore? Come collegarli, se possibile?

4.O è più facile creare un Expert Advisor?

Se ce l'ho, mandami il codice sorgente di un semplice Expert Advisor classico con due medie mobili

(Condizioni EA...compra se МА veloce incrocia (o tocca) la MA lenta dal basso verso l'alto

..............................sel se МА veloce incrocia (o tocca) una MA lenta dall'alto verso il basso

.............................. con funzione StopLoss

.............................. con funzione TakeProfit

.............................. con funzione Lot

Grazie!

 
DRevodel писал(а) >>

Ciao!

Cerco di programmare da solo!

Aiutami a capire in che direzione andare! Se ne hai bisogno urgentemente e rapidamente (per cominciare)

C'è un certo indicatore composto da due MA

È necessario creare un segnale sonoro all'intersezione di due MA con il messaggio emesso sullo schermo utilizzando la funzione "MessageBox".

Cosa fare?

O aggiungere una condizione al codice dell'indicatore con questa funzione?

>>Grazie!