Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1021

 
Bonjour. Aidez-nous avec des conseils. Test d'un EA sensible à la cotation sur un vrai compte pro-ecn alpari. Par conséquent, le graphique est sensiblement différent sur le même intervalle, même après le téléchargement des cotations et deux tests consécutifs. Je ne sais pas trop à quoi m'attendre en réalité.
 

Définissez un écart fixe dans le testeur. En général, les AE sensibles à ce genre de choses - à la poubelle).

 
Oui, c'est ça, merci beaucoup. Pour l'EA, je ne sais pas. L'auteur présente simplement la sensibilité de l'EA comme son principal avantage. Parce qu'il décrit que le conseiller expert n'est pas basé sur des indicateurs, mais sur le mouvement des prix. C'est pourquoi il recommande de travailler sur des comptes en écus, et cite dukascopy. Qu'en pensez-vous ?
 
Lians:
Bonjour, chers professionnels.

Il existe un script permettant d'exporter les cotations dans le format que je souhaite pour les 100 dernières barres ou jusqu'à un certain moment dans le passé. Il fonctionne comme il se doit. Mais s'il est lancé sur le graphique de visualisation du testeur, il enregistre les devis en se basant sur la dernière fois qu'il y a eu un devis dans l'historique, et non sur la date et l'heure du testeur.

Pouvez-vous lui apprendre à sauvegarder les 100 dernières barres en fonction de l'heure du graphique de visualisation du testeur ?

Si tel est le cas, veuillez indiquer comment procéder. Je n'arrive pas à comprendre.
PS : le fait qu'il utilise la fonction de Kim pour le remplacement, au lieu de StringReplace - c'est comme ça qu'il est conçu, ne faites pas attention.


Je vais me répondre à moi-même. Si je crée un indicateur à partir de ce script, il fonctionne correctement pour une raison quelconque.
Une solution a donc été trouvée. Bien que quelques clics moins pratiques, c'est toujours mieux que rien.
 

indicateur - ATS (Alpha Trend Spotter Price Action gratuit)

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;

questions :

1. Combien de chandeliers sont analysés ?
2. Sur quel chandelier la flèche est-elle placée ?
3.
comme O1>C2

ceci est le code pour mq5 du même indicateur

{
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; }

Je l'ai compris comme 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] ;

Est-ce que j'ai bien compris ?

==

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

 
Bonjour aux utilisateurs du forum.
J'essaie d'intégrer une bibliothèque permettant de travailler avec des fichiers en dehors du bac à sable https://www.mql5.com/ru/code/11140.
Au stade initial, cependant, j'ai des problèmes avec l'ouverture du fichier élémentaire. Peut-être que quelqu'un a fait quelque chose à partir de cette bibliothèque, s'il vous plaît aidez-nous. Merci beaucoup !
#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);
  }
//+------------------------------------------------------------------+
Erreur
 
bistreevseh:
Bonjour aux utilisateurs du forum.
J'essaie d'intégrer une bibliothèque pour travailler avec des fichiers en dehors du bac à sable https://www.mql5.com/ru/code/11140.
Au stade initial, cependant, j'ai des problèmes avec l'ouverture du fichier élémentaire. Peut-être que quelqu'un a fait quelque chose à partir de cette bibliothèque, s'il vous plaît aidez-nous. Merci beaucoup !

C'est peut-être le problème, car

StringConcatenate()

"Note.

Les paramètres peuvent être de n'importe quel type. Le nombre de paramètres ne peut être inférieur à 2 et ne peut dépasser 64."

 
bistreevseh:
Bonjour aux utilisateurs du forum.
J'essaie d'intégrer ma bibliothèque pour travailler avec des fichiers en dehors de la sandbox du système de fichiers https://www.mql5.com/ru/code/11140.
Au stade initial, j'ai des problèmes avec l'ouverture des fichiers de base. Peut-être que quelqu'un a fait quelque chose à partir de cette bibliothèque, s'il vous plaît aidez-nous. Merci beaucoup !

Le script de test fonctionne-t-il correctement ?

Droits et propriétaire du lecteur système ?

J'ai un script comme celui-ci :

#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("Файл отсутствует!");
 }

travaux :

0 07:46:55.195 Check_FileLib EURUSD,Daily : initialisé
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 : supprimé

 
Zhunko:

Le script de test fonctionne-t-il correctement ?

Droits et propriétaire du lecteur système ?

J'ai un script comme celui-ci :

travaux :

0 07:46:55.195 Check_FileLib EURUSD,Daily : initialisé
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 : enlevé


Merci beaucoup ! Cela fonctionne étrangement j'ai les droits d'administrateur, notamment pour le dossier terminal j'ai donné toutes les destructions au propriétaire, cela a aidé mais ensuite cela a cessé de fonctionner. Puis j'ai essayé de lire le fichier journal en utilisant le FileReadStrArrayW (si je ne me trompe pas de nom) lire les lignes vides, le script se bloque en mode ansi. Seul FileReadCharArr était capable de lire les codes ansi. Peut-être avez-vous un exemple de l'analyse du fichier journal avec votre bibliothèque ? Je vous en serais très reconnaissant !
 
Je ne sais pas comment l'utiliser et je ne sais pas comment résoudre ce problème. Dans l'indicateur est censé faire un calcul comparatif en utilisant le cycle, en temps réel sur les jours de marché l'indicateur fonctionne (bien que lentement), mais aujourd'hui j'ai remarqué que le calcul n'est pas effectué.
Raison: