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

 
Mon système de trading est basé sur l'analyse des données historiques. J'ai construit une fonction pour calculer le signal directement dans l'EA. Cependant, d'après ce que j'ai compris, lors des tests, l'Expert Advisor n'utilise que les données de la fenêtre visuelle (il y a beaucoup moins de barres que dans les fenêtres standard avec l'historique chargé depuis l'archive). Et j'ai besoin d'au moins plusieurs dizaines de milliers de barres d'historique pour calculer le signal. Existe-t-il un moyen de résoudre ce problème, c'est-à-dire de permettre à l'EA testé d'utiliser l'historique complet, même si la période testée est plus petite ? J'utilise MT4 et MQL4
 
sannin:

Aidez-nous si vous le voulez bien

pour apprendre à un Conseiller Expert à trader par l'indicateur

BS_Living Now ver #1.mq4 https://www.mql5.com/ru/code/11014#50910

UP= iCustom(Symbol(),NULL,"Now",BQuant,0,0) ;

DOW= iCustom(Symbol(),NULL,"Now",BQuant,1,0) ;


if(DOW){OrderSend(Symbol(), OP_SELL, Lot, Bid, Slip, 0, 0, "Forex-Robots.ru SELL", Magic, 0,Red);}


if(UP ){OrderSend(Symbol(), OP_BUY, Lot, Ask, Slip, 0, 0, "Forex-Robots.ru BUY", Magic, 0,Blue);}


Commentaire

(

"Profit" : ", UP,

"Profit" : ", DOW

) ;

J'ai essayé de lire les valeurs dans le commentaire mais elles sont toujours statiques.

Le nom de l'indicateur doit être "BS_Living Now ver #1".
 

Oui, j'ai un indicateur sous le nom de Now dans le dossier

J'ai mis les valeurs dans le commentaire pour voir comment les chiffres changent, mais ils sont statiques dans le testeur ainsi qu'en direct et ils ne sont pas nuls.

 
sannin:

Oui, j'ai un indicateur sous le nom de Now dans le dossier

J'ai affiché les valeurs dans le commentaire pour voir comment les chiffres changent et ils sont statiques, à la fois dans le testeur et dans la vie réelle et ils ne sont pas zéro.


Si elle est similaire à une fractale, sa valeur doit être recherchée dans l'historique, mais pas sur la barre de zéro.

Z.I. : C'est exact, il commence les calculs à partir de la mesure 1, cela n'a aucun sens de chercher quelque chose sur la mesure 0...

 

Pouvez-vous me conseiller sur la façon d'ajouter à un EA la fonction de fermer tous les ordres si la distance entre le prix du marché et le prix de l'ordre le plus éloigné dépasse 1000 pips par exemple ?

 
evillive:

Si le principe est similaire à celui des fractales, il est logique de chercher sa valeur plus loin dans l'histoire, mais pas à la barre du zéro.

Z.I. : C'est exact, il commence les calculs à partir de la mesure 1, cela n'a aucun sens de chercher quelque chose sur la mesure zéro...

De la barre n°2 par code, Extrim_Detect(s+1) ;
 
AlexeyVik:

Et par conséquent, la condition

Merci Alexey. J'ai fait tout ce que vous avez recommandé.

extern int    Min_iMA_OpenDistance   = 60;
extern int    Max_iMA_OpenDistance   = 85; 

modification des conditions d'entrée

int GetSignal()
{
  int Signal = 0;

  double iMA_Signal = iMA(Symbol(), 0, iMA_Period, 0, MODE_SMMA, PRICE_CLOSE, 0);
  
  int Ma_Bid_Diff = MathAbs(iMA_Signal - Bid)/vPoint;
  
  if(Ma_Bid_Diff > Min_iMA_OpenDistance && Ma_Bid_Diff < Max_iMA_OpenDistance && Bid > iMA_Signal) Signal = -1;
  if(Ma_Bid_Diff > Min_iMA_OpenDistance && Ma_Bid_Diff < Max_iMA_OpenDistance && Bid < iMA_Signal) Signal = 1;
  
  return(Signal);
}

Cependant, après avoir effectué les modifications, le compilateur "jure" à la ligne suivante

iMA_OpenDistance  *= DcD; 

iMA_OpenDistance' - undeclared identifier - identifiant non déclaré. J'ai lu le tutoriel et l'aide sur les identifiants mais rien ne fonctionne. Pouvez-vous me dire où j'ai fait une erreur et comment la réparer ?

 
tatianati:

Merci Alexey. J'ai fait comme vous le recommandez.

Modification de la condition d'entrée

Cependant, après avoir effectué les modifications, le compilateur "jure" à la ligne suivante

iMA_OpenDistance' - identifiant non déclaré. J'ai lu le tutoriel et l'aide sur les identificateurs, mais rien ne fonctionne. Pouvez-vous me dire où j'ai fait une erreur et comment la réparer ?

Apparemment, nous devrons utiliser les pouvoirs de la télépathie.

Au début, il n'y avait que la variable iMA_OpenDistance, puis elle a été divisée en 2 variables Min_iMA_OpenDistance et Max_iMA_OpenDistance, donc la variable iMA_OpenDistance est laissée non déclarée.

Il n'est pas nécessaire de modifier les valeurs des variables externes. Il est préférable de déclarer une variable supplémentaire et d'en faire ce que vous voulez.

Si je comprends bien, la variable vPoint est Point*10. Par conséquent, Ma_Bid_Diff est la distance entre l'offre et le MA en points à 4 chiffres. Et DcD c'est quoi ? Mes capacités télépathiques ne sont pas suffisantes. Mais de toute façon, il me semble que iMA_OpenDistance *= DcD ; est inutile. Ou s'agit-il d'une conversion en points à 5 chiffres ? Pour quoi faire ?

 
AlexeyVik:

Apparemment, nous devrons utiliser la télépathie.

Au début, il n'y avait que la variable iMA_OpenDistance puis elle a été divisée en 2 variables Min_iMA_OpenDistance et Max_iMA_OpenDistance, donc la variable iMA_OpenDistance est laissée non déclarée.

Il n'est pas nécessaire de modifier les valeurs des variables externes. Il est préférable de déclarer une variable supplémentaire et d'en faire ce que vous voulez.

Si j'ai bien compris, la variable vPoint est Point*10. Par conséquent, Ma_Bid_Diff est la distance entre l'offre et le MA en points à 4 chiffres. Qu'est-ce que DcD ? Mes capacités télépathiques ne sont pas suffisantes. Mais de toute façon, il me semble que iMA_OpenDistance *= DcD ; est inutile. Ou s'agit-il d'une conversion en points à 5 chiffres ? Pour quoi faire ?



Alexey, tu es vraiment un télépathe, c'est vraiment une traduction à 5 chiffres. Merci pour la clarification et pour le fait que je n'ai pas compris Min_iMA et Max_iMa au lieu de iMa. Merci encore.

P.S. Si vous ouvrez un cours de télépathie, je serai le premier à m'inscrire :-)

 

Peut-être que quelqu'un a un tel conseiller.

1. ouvre simultanément deux ordres d'achat et de vente différents

2. lorsque l'un d'entre eux clôture sur un bénéfice, il ouvre à nouveau deux ordres d'achat et de vente différents, etc.

Si vous ne devez rien faire pour perdre des commandes, cela semble être assez simple. peut-être que quelqu'un pourra l'écrire pour vous ? je vous en serais très reconnaissant !

Raison: