[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 106

 
vovan-gogan:
Aide : J'ai une condition dans mon EA qui est d'ouvrir une position d'achat seulement si le bas du chandelier précédent est en dessous de tous les bas des 40 chandeliers précédents. La question : comment mettre en œuvre cette énumération des bas des chandeliers précédents et savoir si le bas du chandelier précédent était inférieur au bas du chandelier précédent ? Je vous remercie d'avance.
int TotalBars = 40; // Общее количество свечей по которым нужно осуществлять перебор
double max=0.0;
double min=100.0;
for(int n=0; n<TotalBars; n++)
  {
  if(High[n]>max) max=High[n];
  if(Low[n]<min) min=Low[n];
  }
MessageBox("Maximum="+max+" Minimum="+min);
 
langolier:

Ai merci !)
 
langolier:

Mmm... Voilà le problème... Les données doivent être mises à jour à chaque nouveau tick et seulement pour les 30 dernières barres... Je garde les données pour une raison quelconque
 
sergeev:

Aidez-moi à trouver une erreur !


10
mamba5 18.08.2011 14:23

J'écris un EA basé sur la stratégie "Black MACD" :


Paire de devises : n'importe laquelle

Délai : 15 et plus.

Indicateurs : EMA(3) EMA(18), RSI(14), MACD(12,26,9)

Supprimez la ligne de signal de l'indicateur MACD, tous les indicateurs sont appliqués à l'indicateur de prix Close.

Signal d'entrée d'achat : EMA(3) croise EMA(18) de bas en haut, attendez que le MACD montre un côté positif. Si le RSI(14) est au-dessus du niveau 50, alors achetez. Le stop-loss est fixé au dernier minimum local. Sortez de la transaction en inversant le croisement des EMA, ou utilisez votre propre approche.

Signal de vente : Situation inverse : Croisement de la EMA(3) EMA(18) vers le bas, attendre que le MACD soit négatif. Si le RSI(14) est inférieur à 50, alors achetez. Le stop-loss est fixé au dernier sommet.


Lors de la compilation du code, il est indiqué qu'il manque une parenthèse. Après une longue recherche, il me semblait avoir trouvé où il devait être, mais après avoir corrigé l'erreur, j'ai eu 20 à 30 nouveaux bogues. S'il vous plaît, dites-moi où je l'ai manqué. ))) Le code est dans le fichier joint.

Fichiers joints:
BlackvMACD.mq4 (5.21 KB) supprimer
Correction des erreurs de compilation. Je n'ai pas vérifié l'exactitude de l'algorithme de mise en œuvre de la stratégie.
Dossiers :
 
first_may:


Lire : https://book.mql4.com/ru/variables/arrays . Il s'avère que je peux organiser un tableau à deux dimensions pour trois paires : double Mas_d[3][2] = {1, 0, 2, 0, 3,0} ;

tout en gardant à l'esprit que :

la valeur de Mas_d[1][1] correspond par exemple à la paire AUDCAD, et Mas_d[1][2] est la valeur de cette paire ;

la valeur de Mas_d[2][1] correspond par exemple à la paire AUDCHF et Mas_d[2][2] est la valeur de cette paire ;

La valeur de Mas_d[3][1] correspond par exemple à AUDJPY, et Mas_d[3][2] est la valeur de cette paire,

les éléments du tableau conservent leurs valeurs entre les ticks. Et je pourrai alors modifier les valeurs des éléments du tableau selon le critère dont j'ai besoin. Ai-je bien compris ce que vous voulez dire ? :)

Oui. L'approche n'est peut-être pas la meilleure, mais chacun la choisit lui-même. Et ensuite, si nécessaire, le moderniser et l'optimiser ! :))

Je suis en train de moderniser mon approche. Ce n'est pas pratique dans certains cas ! :D

 
MaxZ:

Oui. L'approche n'est peut-être pas la meilleure, mais chacun la choisit pour lui-même. Et ensuite, si nécessaire, le moderniser et l'optimiser ! :))

Je suis en train de moderniser mon approche. Ce n'est pas pratique dans certains cas ! :D

Je suis un débutant et j'ai essayé d'écrire un Expert Advisor d'essai, mais j'ai eu une erreur en le compilant " \end_of_program' - ending bracket '}' expected C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" Je sais que je l'ai mal écrit, pourriez-vous me dire où j'ai fait des erreurs ?

//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Droits d'auteur © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net"

double StopLoss=30 ;

double TakeProfit=100 ;

double Lots=0.1 ;

retour(0) ;


int start()
{
si(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
si(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point) ;
{
retour(0) ;
{

 
acoman:

Je suis un débutant et j'ai essayé d'écrire un Expert Advisor d'essai, mais lorsque je le compile, j'obtiens l'erreur "\end_of_program' - ending bracket '}' expected C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" Je sais que je l'ai mal écrit, pourriez-vous me dire où se trouve l'erreur ?

//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Droits d'auteur © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net"

double StopLoss=30 ;

double TakeProfit=100 ;

double Lots=0.1 ;

retour(0) ;


int start()
{
si(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
si(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point) ;
{
retour(0) ;
{


L'erreur est que vous n'avez pas lu le manuel de bout en bout. Si vous l'avez ouvert.

Mais vous avez manifestement manqué cette section : Opérateur conditionnel if - else.

Vous feriez mieux de lire le livre de bout en bout.

 
Merci, je le garde à l'esprit :). Pouvez-vous me dire quel est le seuil de perte minimum pour une paire de devises spécifique ? Par exemple EURAUD - vous ne pouvez pas placer un stop loss inférieur à 100 pips, et pour les autres ?
 
first_may:
Merci, je le garderai à l'esprit :). Pouvez-vous me dire quel est le stop-loss minimum pour une paire de devises spécifique ? Par exemple EURAUD - vous ne pouvez pas fixer un stop loss inférieur à 100 pips pour EURAUD, et pour les autres ?

https://book.mql4.com/ru/appendix/marketinfo

MODE_STOPLEVEL 14 Niveau minimum de stop loss/stake profit autorisé en pips
 

Comment forme-t-on un nombre binaire, par exemple de 7 chiffres ? Et comment peut-on ensuite (par commodité) le convertir en un nombre décimal ?