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

 

Colleghi, qual è il consiglio più dettagliato?

Ho un ordine pendente X

Come chiudere l'ordine dopo N ore dal momento in cui l'ordine pendente è stato creato?

Un'ulteriore condizione: l'ordine pendente può diventare un ordine a mercato.

Nel caso in cui l'ordine pendente rimanga in sospeso, tutto è semplice.

È interessante il caso in cui un ordine pendente diventa un ordine a mercato (cioè nel momento in cui l'ordine pendente diventa un ordine a mercato, cambia anche il tempo di creazione).

Vorrei avere idee da professionisti per risolvere questo problema, e meglio ancora, vorrei ottenere un codice per questa situazione

 
zorber:

Vorrei anche risolvere questo problema, ma il fatto è che nel tester quando un ordine pendente viene attivato.... il tipo di ordine non cambia... e non appare nel log come un ordine a mercato... e non potrei dire se è stato attivato o meno dai dati di log(((
 
kakin:

Professionisti, per favore consigliate. Se ho un ordine di stop pendente piazzato, ma il prezzo è entrato con uno spread esteso che supera lo stoploss.... Cosa succederà?

L'ordine sarà mangiato dalla diffusione... O si verificherà un errore e l'ordine non verrà attivato?

Il peggiore dei casi per te e succederà
 

Buon pomeriggio. GENTE, RISPONDETE ALLA DOMANDA PER FAVORE (3a volta che scrivete). Domanda su un indice di file... Nel mio libro MQL4, che si trova su MQL4.community, nella sezione "Standard Functions", c'è un esempio dello script "File Operations", che è destinato a leggere dati da un file e a visualizzare oggetti grafici in una finestra simbolo:

//--------------------------------------------------------------------
// timetablenews.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 2 --
   int Handle,                         // Файловый описатель
       Stl;                            // Стиль вертикальной линии
   string File_Name="News.csv",        // Имя файла
          Obj_Name,                    // Bмя объекта
          Instr,                       // Название валюты
          One,Two,                     // 1я и 2я чать названия инстр.
          Text,                        // Текст описания события
          Str_DtTm;                    // Дата и время события(строка)
   datetime Dat_DtTm;                  // Дата и время события(дата)
   color Col;                          // Цвет вертикальной линии
//--------------------------------------------------------------- 3 --
   Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
   if(Handle<0)                        // Неудача при открытии файла
     {
      if(GetLastError()==4103)         // Если файла не существует,..
         Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера 
      else                             // При любой другой ошибке..
         Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
      PlaySound("Bzrrr.wav");          // Звуковое сопровождение
      return;                          // Выход из start()      
     }
//--------------------------------------------------------------- 4 --
   while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
     {                                // ..указатель не в конце файла
      //--------------------------------------------------------- 5 --
      Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
      Text     =FileReadString(Handle);// Текст описания события
      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --
      Dat_DtTm =StrToTime(Str_DtTm);   // Преобразование типа данных
      Instr    =StringSubstr(Text,0,3);// Извлекаем первые 3 символа
      One=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа
      Two=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа
      Stl=STYLE_DOT;                   // Для всех - стиль пунктир
      Col=DarkOrange;                  // Для всех - цвет такой
      if(Instr==One || Instr==Two)     // А для событий по нашему ..
        {                             // .. финансовому инструменту..
         Stl=STYLE_SOLID;              // .. такой стиль..
         Col=Red;                      // .. и такой цвет верт. линии
        }
      //--------------------------------------------------------- 7 --
      Obj_Name="News_Line  "+Str_DtTm;     // Имя объекта
      ObjectCreate(Obj_Name,OBJ_VLINE,0,Dat_DtTm,0);//Создаем объект..
      ObjectSet(Obj_Name,OBJPROP_COLOR, Col);       // ..и его цвет,..
      ObjectSet(Obj_Name,OBJPROP_STYLE, Stl);       // ..стиль..
      ObjectSetText(Obj_Name,Text,10);              // ..и описание 
     }
//--------------------------------------------------------------- 8 --
   FileClose( Handle );                // Закрываем файл
   PlaySound("bulk.wav");              // Звуковое сопровождение
   WindowRedraw();                     // Перерисовываем объекты
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --

Di seguito, quando si analizza questo script nel libro su MQL4, viene data la seguente frase: "se il controllo specificato (le ultime 2 righe del blocco 5-6) viene rimosso, un oggetto extra verrà creato a runtime. E solo dopo questo, la condizione di terminazione del ciclo while scatterà e il controllo sarà passato al blocco 8-9".

Ho capito bene? Un puntatore a file NON è INFLUITO DA SEGNI DI TESTO (per esempio: testo| dove | è un puntatore a file), ma è un puntatore CON ESPRESSIONE, per esempio: testo dove k è il carattere "a", k-esimo è evidenziato da un puntatore a file. Questo spiega la necessità delle corde (vedi p.164):

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

Infatti. Alla penultima iterazione, dopo aver creato l'ULTIMO oggetto

2007.05.11 18:30;JPY

il puntatore del file è nella posizione dell'ultimo oggetto, cioè

2007.05.11 18:30;JPYFabbricazione industriale

(dove o è il carattere" o", k è l'indice del file). Poi, quando si passa il controllo all'intestazione dell'istruzione while, la funzione FileIsEnding(handle) restituirà ovviamente true, perché il puntatore del file NON è alla fine del file, ma all'ULTIMO carattere di quel file. Poi, quando le prime due linee vengono eseguite, il puntatore del file si sposta nello spazio vuoto e se non ci sono linee

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

lo script creerà un grafico (cioè una linea) con una descrizione vuota e una coordinata temporale che corrisponde a 0. Questo è ciò che si intende nella frase: "se il controllo specificato (le ultime 2 linee nel blocco 5-6) viene rimosso, allora un oggetto extra verrà creato a runtime. "

Domanda: ho capito bene:

a) la definizione di un puntatore di file;

b) il significato della frase "Se il controllo specificato (le ultime 2 righe del blocco 5-6) viene cancellato, allora un oggetto extra verrà creato all'esecuzione del programma.E solo dopo che la condizione di fine del ciclo while sarà attivata e il controllo sarà passato al blocco 8-9".

P.S. Per non sporcare il forum, vi ringrazio in anticipo per la vostra risposta

 
Per favore, ditemi quando e perché l'Expert Advisor a volte apre trade senza SL e/o TP, anche se sono prescritti nelle impostazioni? Si apre, ma non si modifica.
 
yosuf:
Per favore, ditemi quando e perché l'Expert Advisor a volte apre trade senza SL e/o TP, anche se sono prescritti nelle impostazioni? Si apre e non si modifica.

Perché c'è un "distanziatore" tra le "impostazioni" e il comando OrderSend() del codice del programma.
 
Come faccio ad aprire il file grezzo nella cartella della storia?
 
sss2019:
Come faccio ad aprire il file grezzo nella cartella della storia?

regole di ricerca del forum.

È stato fatto per molto tempo, cosa vuoi fare :)

 

Ottenere un elenco di strumenti finanziari

e hai già postato in questo thread

 
Ilan1.6Dynamic EA non funziona. L'ho impostato per commerciare da solo. Ma non fa commercio. Cosa fare chi lo sa ????