Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 518

 

Bonjour je récupère les données sur la fermeture des chandeliers de l'heure, je les dessine, tout est normal, je veux récupérer les données pour la N-ième période, écrit le tableau en dehors de la fourchette.

J'ai essayé d'utiliser le tampon de l'indicateur à partir du tableau, veuillez m'indiquer comment obtenir les données de la période précédente.

{
 


if(prev_calculated<1) limit=rates_total-1;
if(prev_calculated>0)limit=rates_total-prev_calculated;
for(i=limit; i>=0; i--)
{  
int yesterday_weekday = TimeHour(iTime(Symbol(),0,i+1))-TimeHour(iTime(Symbol(),0,i));
if(yesterday_weekday!=0)  
  {
P=C; 
T = iTime(NULL,0,i+1); 
shift=iBarShift(NULL,PeriodGR,T); 
C= iClose(NULL,PeriodGR,shift);   
CB[n]=C;n++; 

 }
 CC[i]=C; 
 Comment(StringFormat("CC[i]=%G\r\nCB[n-2]=%G\r\n",CC[i],CB[n-2])); 
  }
   return(rates_total);
  }
 
PokrovMT5:

Bonjour, je reçois des données sur la fermeture des chandeliers horaires, je les dessine, tout est OK, je veux obtenir les données pour la N-ième période précédente, écrit un tableau vide, j'ai essayé d'utiliser l'indicateur tampon du tableau, conseiller comment obtenir les données pour la période précédente.

Peut-être que cela aidera

https://www.mql5.com/ru/code/7297

https://www.mql5.com/ru/code/20343

TZ-Breaktout
TZ-Breaktout
  • votes : 2
  • 2007.09.14
  • Scriptor
  • www.mql5.com
Индикатор TZ-Breaktout.
 
PokrovMT5:

Bonjour je récupère les données sur la clôture des chandeliers de l'heure, je les dessine, tout est normal, je veux récupérer les données pour la N-ième période, écrit le tableau en dehors de la fourchette.

J'ai essayé d'utiliser le tampon de l'indicateur à partir du tableau, veuillez m'indiquer comment obtenir les données de la période précédente.

limit=rates_total-1;

Votre limite pointe vers la toute première barre de l'histoire. Mais vous voulez i+1 - c'est pourquoi i est hors de portée.

Essayez

limit=rates_total-2;

... bien que cela ne soit pas utile - il y a probablement beaucoup plus de valeurs de calcul que vous ne vérifiez pas...

 
Bonjour. J'ai une question, l'indicateur limite variable dans mql4 montre 3555 barres pour l'or par jour, alors que mql5 en montre la moitié ? Où placer les citations ? Une autre question s'il vous plaît, pourlimit=rates_total-2 ; qui a été discuté ci-dessus, dans ma variante il n'y a pas de débordement de tableau seulement quandlimit=rates_total-5 ; le programme fonctionne. J'ai également remarqué que dans mql5 la compilation du code ralentit considérablement, le processus prend 13 secondes, est-ce normal ? Merci.

 
mwwm:
Bonjour. Ma question est la suivante : l'indicateur de limite variable dans mql4 indique 3555 barres par jour pour l'or et mql5 en indique deux fois moins ? Où placer les citations ? Une autre question s'il vous plaît, pourlimit=rates_total-2 ; qui a été discuté ci-dessus, dans ma variante il n'y a pas de débordement de tableau seulement quandlimit=rates_total-5 ; le programme fonctionne. J'ai également remarqué que dans mql5, la compilation du code ralentit considérablement, le processus prend environ 13 secondes, est-ce normal ? Merci.

Dans MT5, les cotations sont téléchargées depuis le serveur : ce qui est là est là...

À propos de la limite, vous ne devez pas deviner et faire des ajustements, et vous devez calculer avec précision - de quelles variables dépend le décalage, et prendre une unité à partir de rates_total et des valeurs de ces variables (si elles ne sont pas calculées). Si les variables sont calculées, il faut contrôler la valeur de l'index de la boucle et, si elle est supérieure à taux_total-1, sauter cette itération (continuer).

 

Bonjour, quelqu'un peut-il me dire si quelqu'un sait, je charge des données tick pour tester avec 99% comme il se doit, tout fonctionne bien pour le graphique 30 min, mais dès que je charge des données H4 et que j'essaie d'exécuter un EA dessus dans le testeur, - ne fonctionne pas, le testeur donne 2018.04.05 16:41:08.576 TestGenerator : le fichier "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" n'a pas pu être ouvert [5].

Et 2018.04.05 16:41:08.535 TestGenerator : le fichier "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" est en lecture seule.

quelle pourrait être la raison ??????
 
pryn:

Bonjour, quelqu'un peut-il me dire si quelqu'un sait, je charge des données tick pour tester avec 99% comme il se doit, tout fonctionne bien pour le graphique 30 min, mais dès que je charge des données H4 et que j'essaie d'exécuter un EA dessus dans le testeur, - ne fonctionne pas, le testeur donne 2018.04.05 16:41:08.576 TestGenerator : le fichier "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" n'a pas pu être ouvert [5].

Et 2018.04.05 16:41:08.535 TestGenerator : le fichier "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" est en lecture seule.

quelle pourrait être la raison ??????
Pas besoin de multiplier les questions, s'il vous plaît.
 
Artyom Trishkin ...Si letemps actuel est plus long, alors enregistrez-le dans une variable pour vérification...

Merci, j'ai trouvé ce que je cherchais.

Autre question - Je ferme partiellement une position, comment puis-je prendre en compte ce profit ou cette perte fermée dans le calcul du profit actuel.

 
PolarSeaman:

Merci, j'ai trouvé ce que je cherchais.

Autre question - Je ferme partiellement une position, comment puis-je prendre en compte ce profit ou cette perte fermée dans le calcul du profit actuel.

Exactement de la même manière que pour la fermeture complète. La position est divisée : la partie fermée va à l'histoire et la partie restante obtient un nouveau ticket et reste sur le marché.

 
Artyom Trishkin:

une partie fermée va dans l'histoire.

Comment puis-je savoir que dans l'historique de cette position particulière la partie fermée ?

J'ai ouvert une position avec un lot de 1.0, et j'ai fermé 0.5 avec une perte de 10$. Plus tard, j'ai fermé un autre 0.25 avec un profit de 5$. Je vais tout fermer à 50$ de profit. En fait, j'ai maintenant 50 dollars de bénéfice.

if (OrderProfit()+OrderSwap()>=50) ClosePosBySelect();

Comment fermer -10$ et +5$ dans le calcul du profit actuel ? Pour clôturer à 55 $ de profit