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

 
hoz:

Je suis un peu confus maintenant. Voici 3 fonctions, dont chacune reçoit un signal spécifique pour un indicateur spécifique.

Cette fonction reçoit le signal général de tous les indices et prend la décision d'ACHETER ou de VENDRE.

C'est la fonction principale qui reçoit le signal général ; ici nous obtenons les valeurs des indices à travers la boucle pour passer par toutes les barres, bien sûr. Et ensuite, les valeurs obtenues sont transmises par référence aux fonctions appropriées où ces valeurs sont nécessaires, c'est-à-dire aux fonctions :

int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2)

int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2)

void GetMomentumSignal() , en principe, peut également être placé à cet endroit.

Ainsi, tous les calculs des indices seront dans une fonction principale d'obtention du signal. Tout est logique dans ce cas...

Victor ! Vous avez de la logique, mais pas assez de connaissances. Le premier, si vous ne l'abandonnez pas, vous aidera à aller plus loin qu'un manuel, et pour "gagner" le second - vous devriez commencer par le même (d'un manuel) encore. Vous n'êtes pas (encore) prêt à construire votre propre structure logique de code, revenez à la version alphabétique.
P.S. Ce qui "attire l'attention" dans votre code :

Dans la fonction GetSignal() pour la recherche du croisement de deux lignes, la boucle for PEUT être utilisée, mais il est préférable d'utiliser la boucle while, bien que ce soit une préférence personnelle. Pour commencer, vous devez déplacer une parenthèse comme dans "L'exécution ne peut être pardonnée" pour que votre code exécute ce que vous venez de dire. Pour une raison quelconque, cette fonction (résultat) manque les résultats de deux fonctions : GetStochSignal() et GetMomentumSignal(), - ceci est légèrement sans conséquence.

dans les fonctions GetCrossingMa() et GetStochSignal() il n'y a AUCUN intérêt à passer les paramètres par des références, car cela aurait un sens, si ces variables à l'intérieur de la fonction CHANGENT leurs valeurs.

La fonction void GetMomentumSignal() ne renvoie RIEN.

Bien que j'admette que c'est "pire à voir" de l'extérieur... :)))

 
laveosa:

J'ai une combinaison de chandeliers et j'aimerais qu'ils fonctionnent sur différentes échelles de temps. À titre d'exemple

si(iHigh("EURUSD",PERIOD_M5,1)>iLow("EURUSD",PERIOD_M5,1)+8*kio*Point)

{

go_s=true ;

}

Je pensais pouvoir lier ma combinaison en utilisant iHigh, iLow, iOpen, etc. Mais lorsque je l'ai testée sur M5, elle a donné un résultat, mais sur d'autres périodes, un autre résultat. Aidez-moi à comprendre ce que je fais mal. Merci !

Essayez ça :

if(iHigh("EURUSD",PERIOD_M5,1)> (iLow("EURUSD",PERIOD_M5,1)+8*kio*Point()) )

Pour coller le code joliment sur le forum, appuyez sur SRC et ensuite là code.


 
J'ai un compte en cents (pas une lumière en cents) et 100 Ue dans un veshchet et l'effet de levier de 1:500 comment puis-je calculer quel est le lot maximum que je peux mettre ? Au secours ! Je sais que sur le prix est possible de mettre un lot maximum de 100, je veux savoir quand je mets un lot et moi dit pas assez d'argent quelque chose comme ça)))))
 
Beowulf:
J'ai un compte en cents (pas une lumière en cents) et 100 Ue dans un veshchet et l'effet de levier de 1:500 comment puis-je calculer quel est le lot maximum que je peux mettre ? Au secours ! Je sais que sur le prix est possible de mettre un lot maximum de 100, je veux savoir quand je mets un lot et moi dit pas assez d'argent quelque chose comme ça)))))
double maxvolume = MathMax(MarketInfo(Symbol(), MODE_MAXLOT), AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED));
 
Je ne comprends pas ces codes, je pensais qu'ils me diraient 20.0 au maximum... Où dois-je lire pour comprendre ce que vous avez écrit ?
 

bonjour ! !! après avoir mis à jour le termenal mt4 le conseiller commence à fonctionner comme il le veut ----- peut-être y a-t-il un moyen de le réparer ? ???? Merci d'avance pour la réponse !

 
eduard9898:

bonjour ! !! après avoir mis à jour le termenal mt4 le conseiller commence à fonctionner comme il le veut ----- peut-être y a-t-il un moyen de le réparer ? ???? Merci d'avance pour la réponse !


Bien sûr qu'il y en a.

il y a des cas comme celui-ciici.

 

Veuillez me conseiller sur la meilleure façon de tronquer le tableau, afin que les valeurs soient conservées.

Supposons que nous ayons un tableau de 16 éléments, nous devons le réduire de 13 éléments, de sorte que les éléments restants 14, 15, 16 aient des valeurs conservées, mais la taille du tableau était de 3, et non de 16, et donc les index étaient 14 est devenu 0, 15 est devenu 1, 16-2.

 
Skydiver:

Veuillez me conseiller sur la meilleure façon de tronquer le tableau, afin que les valeurs soient conservées.

Supposons que nous avons un tableau de 16 éléments, nous devons le réduire de 13 éléments, de sorte que les éléments restants 14, 15, 16 avec des valeurs conservées en eux, mais la taille du tableau était de 3, et non 16, et donc les indices étaient 14 est devenu 0, 15-est resté 1, 16-2.

Vous pouvez procéder comme suit :

    for (int li_IND = 0; li_IND < 3; li_IND++)
    {Array[li_IND] = Arrray[li_IND+14];}
    ArrayResize (Array, 3);
 
eduard9898:

bonjour ! !! après avoir mis à jour le termenal mt4 le conseiller commence à fonctionner comme il le veut ----- peut-être y a-t-il un moyen de le réparer ? ???? Merci d'avance pour la réponse !

Vous pouvez y jeter un coup d'œil ici.