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

 
evillive:
C'est ma faute, je vais me rattraper.
Ce n'est pas grave, ça arrive ! Mais vous ne pouvez pas voir votre chance sans erreurs ! ;)
 
CJIeCaPb:

Ahh, je l'ai mal indiqué, oui).

Revérifié séparément. Seul le billet de vente était faux. J'ai aussi vérifié le reste : commandes, comparaisons, modifications. Mais j'ai toujours la stupeur après avoir passé des commandes. Tout a bien fonctionné tout seul.

*Condition pour entrer if(MA=MA1), est-ce faux ? Parce que =, n'est pas un signe de condition, le signe correct est "==", mais si je l'ai écrit de cette façon, le conseiller expert ne fait rien du tout. Les autres variantes : ">=", "<=", "<", ">" que et "=" conduisent à passer des commandes et à une stupeur supplémentaire.

C'est certainement faux, même si le compilateur le corrigera, mais qui sait s'il le fera ou non ? Peut-être qu'il remplacera == ou !=, ou peut-être qu'il ne corrigera pas du tout le problème mais ignorera simplement la vérification et la mettra toujours à true.

Compilez le code avec #property strict, il y a beaucoup plus à corriger.

Si vous avez besoin de vérifier un croisement de 2 MAs, il n'est pas vérifié par égalité. Le critère doit être quelque chose comme "si MA1(2)<MA(2) et MA1(1)>MA(1) - alors la deuxième MA a croisé la première à la hausse sur la bougie précédente". Et l'égalité peut attendre un an.

Et qu'est-ce qui est vrai, selon vous ?

Plus loin :

 //+------------------------------------------------------------------06-----------------------------------------------

//Buy

while(OrderType()==1)//Buy (а вот нифига, бай = 0)

и чуть ниже
//--------------------------------------------------------------------------
//Sell
while(OrderType()==2) //опять же, селл = 1
 

Comment organiser un tableaude type int avec 1 milliard de valeurs et ensuite le trier ? S'il vous plaît, donnez-moi un exemple.

Jusqu'à présent, avec les moyens standards de MQL4, je peux organiser un tableau de nombres int avec seulement 2 millions de valeurs.

 
solandr:

Comment organiser un tableau de type int avec 1 milliard de valeurs et ensuite le trier ? S'il vous plaît, donnez-moi un exemple.

Jusqu'à présent, avec les moyens standards de MQL4, je peux organiser un tableau de nombres int avec seulement 2 millions de valeurs.

C'est une bonne idée. Veuillez calculer la taille de la mémoire nécessaire
 
Vinin:
Bon souhait. Veuillez calculer la quantité de mémoire nécessaire
Le problème est clair. Mais comment le résoudre ? Existe-t-il d'autres moyens que la création directe d'un tableau ? En effet, comment trier 1 milliard de valeurs ? Ou est-il impossible d'imaginer une solution dans MQL4 ?
 
evillive:

Bien sûr, ce n'est pas correct, même si le compilateur le corrigera, mais qui sait si c'est correct ou non ? Ou bien il peut remplacer == par != ou ne pas le corriger du tout, mais simplement ignorer la vérification et le mettre toujours à vrai.

Compiler le code avec #property strict, il y a beaucoup de choses à corriger.

Si vous devez vérifier le croisement de 2 MAs, il n'est pas vérifié par égalité, le critère doit être quelque chose comme "si MA1(2)<MA(2) et MA1(1)>MA(1) - alors la seconde MA a croisé la première à la hausse sur la bougie précédente". Et l'égalité peut attendre un an.

Et que pensez-vous de while(true) ?

Plus loin :


while(true) - une boucle où je reprends la tendance :

-Si un ordre franchit un stop (Temps>0), je le remets au même endroit où il était ;

- s'il atteint un certain niveau (NormalizeDouble(OrderOpenPrice()+TP*Point,Digits)<=NormalizeDouble(Ask,Digits)), alors il entre dans une autre boucle (où la condition est le type d'ordre) où le profit est calculé en points et est modifié en fonction de cela.

Concernant la condition ""Si MA1(2)<MA(2) et MA1(1)>MA(1) - la deuxième MA a croisé la première à la hausse sur la bougie précédente"". Les chiffres entre parenthèses signifient-ils des bougies ? Voici ma variante MA>Open[0] || MA<Open[0], cela fonctionnera-t-il ?

#Propriété stricte prescrite, erreurs corrigées.

J'ai changé la façon d'obtenir le profit en points : la différence obtenue entre le prix actuel et le prix ouvert est divisée par Point (ligne 217 et 271).

J'ai fait des conversions de type en lignes : 218, 272, 369. Est-ce correct ?

Deux erreurs sont apparues :

utilisation possible d'une variable non initialisée 'Prof' Test3.mq4 222 15

utilisation possible d'une variable non initialisée 'Prof' Test3.mq4 275 15

Dossiers :
test3_6.mq4  15 kb
 

chers experts.... j'ai récemment commencé à apprendre les bases de mql4.... j'ai une question pour vous.... disons que j'ai un indicateur principal et des filtres.... si une condition sur l'indicateur principal est remplie, alors certaines conditions des filtres devraient coïncider avec elle, mais si une autre condition est remplie sur l'indicateur principal, alors les filtres devraient avoir d'autres conditions....... J'en ai besoin pour ouvrir une transaction... Puis-je utiliser le signe || dans cette situation ou ne puis-je pas le faire... Toute réponse doit être expliquée de manière compréhensible car je suis encore un idiot... Respectueusement !

 
kempo102938:

chers experts.... j'ai commencé récemment à apprendre les bases de mql4.... j'ai une question pour vous.... disons que j'ai un indicateur principal et des filtres.... si une condition sur l'indicateur principal est remplie, alors certaines conditions des filtres devraient coïncider avec elle, mais si une autre condition est remplie sur l'indicateur principal, alors les filtres devraient avoir d'autres conditions....... J'en ai besoin pour ouvrir une transaction... Puis-je utiliser le signe || dans cette situation ou ne puis-je pas le faire... Toute réponse doit être expliquée de manière compréhensible car je suis encore un idiot... Respectueusement !

Décidez-vous. Voulez-vous un "AND" ou un "OR".
 
Taak.... l'indicateur principal affiche les barres du graphique en 5 couleurs différentes (vert, bleu, rouge, orange, gris). Vendre une transaction : L'indicateur principal affiche une barre grise--> les filtres affichent leurs signaux--> la transaction est ouverte. Si l'indy principal montre la barre orange-->les filtres montrent d'autres signaux.... etc. Comment puis-je prescrire correctement dans le code pour que les trades ne se répètent pas, car à chaque bougie la couleur de l'indice principal peut sauter "d'avant en arrière"...j'espère avoir bien expliqué le problème...Respectueusement !
 
CJIeCaPb:

while(true) - une boucle où je reprends la tendance :

Et quand pensez-vous que cette boucle devrait se refermer ?

if(R==0)
{
 while(true)
 {
  Sleep(30000);
  Alert("Ошибка!");
 }
}

?

CJIeCaPb:

A propos de la condition ""Si MA1(2)<MA(2) et MA1(1)>MA(1) - la deuxième MA a croisé la première MA à la hausse sur la bougie précédente"". Les chiffres entre parenthèses signifient-ils des bougies ? Voici ma variante MA>Open[0] || MA<Open[0], cela fera-t-il l'affaire ?

Oui, le numéro de bougie entre parenthèses est la bougie pour laquelle la valeur MA est prise. Oui, il le fera avec le prix d'ouverture.

CJIeCaPb:

J'ai changé la méthode pour obtenir le profit en points : la différence obtenue entre le prix actuel et le prix ouvert est divisée par Point (ligne 217 et 271).

J'ai fait des conversions de type en lignes : 218, 272, 369. Est-ce correct ?

La variable Profit (à déclarer comme entier) est tout à fait suffisante pour calculer le profit en pips, les deux autres sont redondantes :

 if(NormalizeDouble(Ask,Digits) <= NormalizeDouble(OrderOpenPrice(),Digits))
 {
  Profit = (int)((NormalizeDouble(OrderOpenPrice(),Digits)-NormalizeDouble(Ask,Digits))/Point);

  Profo = Profit/Point;
   Prof= (int)Profo;
 }
   
 if(OldProfit>Prof  Profit )
  continue;
 else
  OldProfit=Prof  Profit ; //ну и так далее, где профит считается

Et il y a beaucoup de chaluts d'arrêt dans kodobase, pourquoi devrais-je inventer un lissapet avec des roues rectangulaires ?