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

 
Salve. Aiuto con consigli. Testando un EA sensibile alle quote su un conto reale pro-ecn alpari. Come risultato, il grafico è significativamente diverso sullo stesso intervallo, anche dopo aver scaricato le quotazioni e due test consecutivi. Non sono sicuro di cosa aspettarmi in realtà.
 

Impostare uno spread fisso nel tester. In generale, gli EA sensibili a queste cose - giù per il cesso )

 
Sì, è vero, grazie mille. Per quanto riguarda l'EA, non lo so. L'autore sta solo presentando la sensibilità dell'EA come il suo principale vantaggio. Perché descrive che l'Expert Advisor non è basato su indicatori, ma sul movimento dei prezzi. Ecco perché raccomanda di lavorare su conti ecn, e cita da dukascopy. Cosa ne pensate?
 
Lians:
Salve, cari professionisti.

C'è uno script per esportare le quotazioni nel formato che voglio per le ultime 100 barre o fino a un certo momento nel passato. Funziona come dovrebbe. Ma se viene lanciato sul grafico di visualizzazione del tester, salva le quotazioni in base all'ultima volta che c'è una quotazione nella storia, non alla data e all'ora del tester.

Puoi insegnargli a salvare le ultime 100 barre in base al tempo del grafico di visualizzazione del tester?

Se è così, per favore consigliate come farlo. Non riesco a capirlo.
PS: il fatto che usi la funzione di Kim per la sostituzione, invece di StringReplace - è così che è progettato, non farci caso.


Risponderò a me stesso. Se faccio un indicatore da questo script, funziona correttamente per qualche motivo.
Così è stata trovata una soluzione. Anche se un paio di clic meno convenienti, ma sempre meglio di niente.
 

indicatore - ATS (Alpha Trend Spotter Price Action libero)

CandleHigh=High[Highest(NULL, 0,2,3,i)];
CandleLowS=Low[Lowest(NULL,0,1,3,i)];
CandleOpenS=Open[i];
CandleHighF=High[Highest(NULL, 0, 2, 3, (i+3))];
CandleHighL=Low[Lowest(NULL,0,1,3,(i+3))];
CandleOpenL=Open[i+3];
//---
if((CandleHigh>CandleHighF) && (CandleOpenS<CandleHighL))
{
BufferMap1[i]=High[i+3]+0.0010;
}
//---
if((CandleLowS<CandleHighL) && (CandleOpenS>CandleHighF))
{
BufferMap2[i]=Low[i+3]-0.0010;

domande:

1. Quanti candelieri vengono analizzati?
2. Su quale candela è posizionata la freccia?
3.
come O1>C2

questo è il codice per mq5 dello stesso indicatore

{
CandleHigh=high[ArrayMaximum(high,bar,iPeriod)];
CandleLow=low[ArrayMinimum(low,bar,iPeriod)];
CandleOpen=open[bar];
CandleHigh1=high[ArrayMaximum(high,bar+iPeriod,iPeriod)];
CandleLow1=low[ArrayMinimum(low,bar+iPeriod,iPeriod)];
CandleOpen1=open[bar+iPeriod];
//---
BuyBuffer[bar]=0.0;
SellBuffer[bar]=0.0;
//---
if(CandleLow<CandleLow1 && CandleOpen>CandleHigh1) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8;
if(CandleHigh>CandleHigh1 && CandleOpen<CandleLow1) SellBuffer[bar]=high[bar]+ATR[bar]*3/8; }

L'ho capito come mq5:

bool UP = Low[i+2] < Low[i+1] && Open[i+2] > High[i+1] ;

bool DOWN = High[i+2] > High[i+1] && Open[i+2] < Low[i+1] ;

Ho capito bene?

==

ATS mq4 https://www.mql5.com/en/code/12941

 
Ciao utenti del forum.
Sto cercando di integrare una libreria per lavorare con i file al di fuori della sandbox dei file https://www.mql5.com/ru/code/11140.
Nella fase iniziale, però, sto avendo problemi con l'apertura di file elementari. Forse qualcuno ha fatto qualcosa basato su questa libreria, per favore aiutatemi. Grazie mille!
#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string name=StringConcatenate(Year(),TransformToFileName(Month()),TransformToFileName(Day()),".log");
//---
   string path=TerminalPath()+"\\MQL4\\Logs\\"+name;
//---
   if(FileCheckW(path))
     {
      //---
      int handle=-1;
      handle=FileOpenExistingW(path,GENERIC_READ,SHARE_READ);
      if(handle!=NULL)
        {
         Alert(handle);
         FileCloseHandle(handle);

        }
     }
//
  }
//+------------------------------------------------------------------+
string TransformToFileName(int val)
  {
   string res;
//---
   if(val<10)
     {
      res=StringConcatenate(0,val);
     }
   else
     {
      res=StringConcatenate(val);
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
Errore
 
bistreevseh:
Ciao utenti del forum.
Sto cercando di integrare una libreria per lavorare con i file al di fuori della sandbox dei file https://www.mql5.com/ru/code/11140.
Nella fase iniziale, però, sto avendo problemi con l'apertura di file elementari. Forse qualcuno ha fatto qualcosa basato su questa libreria, per favore aiutatemi. Grazie mille!

Forse questo è il problema, per

StringConcatenate()

"Nota.

I parametri possono essere di qualsiasi tipo. Il numero di parametri non può essere inferiore a 2 e non può superare 64".

 
bistreevseh:
Ciao utenti del forum.
Sto cercando di integrare la mia libreria per lavorare con i file al di fuori della sandbox del file system https://www.mql5.com/ru/code/11140.
Nella fase iniziale ho problemi con l'apertura dei file di base. Forse qualcuno ha fatto qualcosa basato su questa libreria, per favore aiutatemi. Grazie mille!

Lo script di test funziona correttamente?

Diritti e proprietario dell'unità di sistema?

Ho uno script come questo:

#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  string sName = TimeToString(TimeLocal(), TIME_DATE) + ".log";
  sName = StringSubstr(sName, 0, 4) + StringSubstr(sName, 5, 2) + StringSubstr(sName, 8);
  string sPath = TerminalPath() + "\\MQL4\\Logs\\" + sName;
  Print(sPath);
  if (FileCheckW(sPath))
   {
    int hFile = FileOpenExistingW(sPath, GENERIC_READ,SHARE_READ);
    if (hFile != NULL)
     {
      Print("hFile = ", hFile);
      FileCloseHandle(hFile);
     }
    else Print("Файл не открыт!");
   }
  else Print("Файл отсутствует!");
 }

funziona:

0 07:46:55.195 Check_FileLib EURUSD,Daily: inizializzato
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55.239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit reason 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: rimosso

 
Zhunko:

Lo script di test funziona correttamente?

Diritti e proprietario dell'unità di sistema?

Ho uno script come questo:

funziona:

0 07:46:55.195 Check_FileLib EURUSD,Daily: inizializzato
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit reason 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: rimosso


Grazie mille! Funziona stranamente ho i diritti di amministratore, specialmente per la cartella terminale ho dato tutte le distruzioni al proprietario, ha aiutato ma poi ha smesso di funzionare. Poi ho provato a leggere il file di log usando il FileReadStrArrayW (se non mi sbaglio con il nome) leggere le linee vuote, lo script si blocca in modalità ansi. Solo FileReadCharArr era in grado di leggere i codici ansi. Forse hai qualche esempio su come analizzare il file di log con la tua libreria? Te ne sarei molto grato!
 
Non sono sicuro di come usarlo e non so come risolvere questo problema. Nell'indicatore si suppone che faccia un calcolo comparativo utilizzando il ciclo, in tempo reale nei giorni di mercato l'indicatore funziona (anche se lentamente), ma oggi ho notato che il calcolo non viene effettuato.
Motivazione: