[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 125
pyatka__ASD: Pouvez-vous me dire si quelqu'un a un logiciel qui a une connexion d'extrémité zig zag haute et basse. Merci
Je ne sais pas de quelle connexion vous avez besoin, mais... C'est ainsi que je détermine dans l'EA quel est l'extremum zigzag disponible - bas ou haut, j'espère que vous trouverez ce dont vous avez besoin :
//----------------------------------------------------------------------------------------------------------------- if (op==OP_BUY)
{
for (m=1; m<=CalcBarsLimit; m++) // Найдём первый перелом ЗЗ слева от первого бара
{
zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, m); // Берём данные 0 буфера ЗЗ с бара mif (zz!=0 && // Если первый экстремум верхнийNormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 1, m), dg))
return(false); // Валим отсюдаelseif (zz!=0 && // Если первый экстремум нижнийNormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 2, m), dg))
{
if (MathRound((KLevel-zz)/pt)>=DistanceMIN && // Если расстояние от ZZ до KLevel ...MathRound((KLevel-zz)/pt)<=DistanceMAX) // ... в заданных пределах
{
if (Open[1]<KLevel &&
Close[1]>KLevel &&
pa>KLevel)
{
Fibo0_PriceB=zz; // Сохраним цену излома ZZ
Fibo23_PriceB=pa; // Сохраним цену 23 фибы
nmKLB=DoubleToStr(Time[m], 4); // имя метки
SetArrow(5, DeepSkyBlue, nmKLB, Time[m], zz, 1); // Отмечаем излом ЗЗ на графикеreturn(true);
}
}
}
}
}
//----------------------------------------------------------------------------------------------------------------- if (op==OP_SELL)
{
for (m=1; m<=CalcBarsLimit; m++) // Найдём первый перелом ЗЗ слева от первого бара
{
zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, m); // Берём данные 0 буфера ЗЗ с бара mif (zz!=0 && // Если первый экстремум нижнийNormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 2, m), dg))
return(false); // Валим отсюдаelseif (zz!=0 && // Если первый экстремум верхнийNormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 1, m), dg))
{
if (MathRound((zz-KLevel)/pt)>=DistanceMIN && // Если расстояние от ZZ до KLevel ...MathRound((zz-KLevel)/pt)<=DistanceMAX) // ... в заданных пределах
{
if (Open[1]>KLevel &&
Close[1]<KLevel &&
pb<KLevel)
{
Fibo0_PriceS=zz; // Сохраним цену излома ZZ
Fibo23_PriceS=pb; // Сохраним цену 23 фибы
nmKLS=DoubleToStr(Time[m], 4); // имя метки
SetArrow(5, BurlyWood, nmKLS, Time[m], zz, 1); // Отмечаем излом ЗЗ на графикеreturn(true);
}
}
}
}
}
return(false);
}
//-------------------------------------------------------------------------------
ZS... Le code est grossier et non optimisé. J'espère que vous savez qu'il est préférable de soustraire deux valeurs normalisées et de vérifier que le résultat est nul...
eddy: comment ? si une variable est déclarée à l'intérieur de start, vous pouvez l'assigner à return_value1?
Oui. Cela s'appelle passer un paramètre par référence. Si une fonction est normalement déclarée, son appel provoque la copie de toutes les variables, passées comme paramètres formels, dans les variables locales de la fonction et leur manipulation. La copie n'est pas effectuée lorsque les paramètres sont passés par référence, c'est-à-dire que la fonction fonctionne avec leurs originaux, et non avec leurs copies. Par conséquent, toutes les modifications effectuées dans le code de fonction avec ces paramètres restent effectives après le retour du code de fonction.
Pour passer un paramètre par référence, indiquez cette méthode dans la déclaration de la fonction en mettant le signe & devant l'identifiant du paramètre requis.
n'est pas multiplié par 5, mais par 2. Dans le premier cas, le paramètre a est passé "par valeur" et son contenu n'est pas sauvegardé après la sortie de la fonction, dans le second cas il est passé par référence (double &a), donc la valeur modifiée, c'est-à-dire 5*2=10 sera contenue dans la variable a après la sortie de la fonction Func2.
Pouvez-vous me dire si quelqu'un a un logiciel qui a une connexion d'extrémité zig zag haute et basse. Merci
Je ne sais pas de quelle connexion vous avez besoin, mais... C'est ainsi que je détermine dans l'EA quel est l'extremum zigzag disponible - bas ou haut, j'espère que vous trouverez ce dont vous avez besoin :
ZS... Le code est grossier et non optimisé. J'espère que vous savez qu'il est préférable de soustraire deux valeurs normalisées et de vérifier que le résultat est nul...
Vous pouvez. Retour aux paramètres.
comment ? si une variable est déclarée à l'intérieur de start, vous pouvez l'assigner à return_value1?
Oui. Cela s'appelle passer un paramètre par référence. Si une fonction est normalement déclarée, son appel provoque la copie de toutes les variables, passées comme paramètres formels, dans les variables locales de la fonction et leur manipulation. La copie n'est pas effectuée lorsque les paramètres sont passés par référence, c'est-à-dire que la fonction fonctionne avec leurs originaux, et non avec leurs copies. Par conséquent, toutes les modifications effectuées dans le code de fonction avec ces paramètres restent effectives après le retour du code de fonction.
Pour passer un paramètre par référence, indiquez cette méthode dans la déclaration de la fonction en mettant le signe & devant l'identifiant du paramètre requis.
Exemple (compiler comme un script et vérifier)
5*5=5 ?))
cool :)
Que pensez-vous de ça ?
Que pensez-vous de ça ?
L'ordinateur est occupé par des calculs, je ne peux donc pas le vérifier moi-même pour le moment.
Il y a un morceau de code comme celui-ci :
Google a trouvé plusieurs répétitions de ce code, j'en conclus donc qu'il fonctionne.
Cependant, cette ligne
est déroutant.
Si DecreaseFactor=3 et pertes=3, alors selon la formule nous obtenons Lot=0 ! !!
Si les pertes>3, on obtientLot<0! !!
Est-ce possible ?
cool :)
Que pensez-vous de ça ?