Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 157

 
FOTOGRAF14:
si(Close[1]<High[i] && Close[1]>Low[i])

i++ ;

Comment puis-je faire en sorte qu'une condition soit vérifiée sur la barre suivante, et non à chaque tick?

J'ai cette construction

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;

 
-Aleks-:

Cette approche fonctionne si l'indicateur fonctionne sur le graphique - et j'en ai besoin dans un script - sur un graphique prêt à l'emploi.
Э... cette approche fonctionne partout. Que ce soit des EA, des scripts ou d'autres indicateurs, vous pourrez obtenir ce dont vous avez besoin. Si vous préparez un indicateur pour répondre à vos besoins spécifiques.
 
Alexey Kozitsyn:
Э... cette approche fonctionne partout. Vous pouvez obtenir ce dont vous avez besoin à partir d'EAs, de scripts, d'autres indicateurs. Si vous préparez l'indicateur pour vos besoins spécifiques.

Je ne comprends pas.

"Dans OnCalculate(), lorsque la condition rates_total > prev_calculated est remplie - calculer l'indicateur et écrire la valeur dans ce tampon supplémentaire ;"

Qu'est-ce qu'on enregistre ? La valeur de l'indicateur sur la dernière barre, non ?

 
-Aleks-:

Je ne comprends pas.

"Dans OnCalculate(), lorsque la condition rates_total > prev_calculated est remplie - calculer l'indicateur et écrire la valeur dans ce tampon supplémentaire ;".

Qu'est-ce qu'on écrit ? La valeur de l'indicateur sur la barre précédente, non ?

Nous enregistrons ce que nous calculons.
 
Alexey Kozitsyn:
Écrivons ce que nous calculons.

Il est alors stupide de changer le calcul du MASK - compter deux fois le même MASK.
 
-Aleks-:

Il est alors stupide de changer le calcul du MAK - de compter deux fois le même MAK.

Avez-vous écrit un seul indicateur à partir de zéro pour juger de ce qui est "idiot" et de ce qui ne l'est pas ?

Quoi qu'il en soit, bonne chance pour résoudre le problème. Je me retire de la discussion.

 
Alexey Kozitsyn:

Avez-vous écrit un seul indicateur à partir de zéro pour juger de ce qui est "idiot" et de ce qui ne l'est pas ?

Quoi qu'il en soit, bonne chance pour résoudre le problème. Je me retire de la discussion.

Oui, j'écris des indicateurs pour un usage personnel, mais sans OnCalculate().

"Débile" fait référence à la méthode, pas à son auteur, je ne voulais certainement pas offenser qui que ce soit....

Je parle d'une telle solution pour une simple MA[n]-Close[n]/période+Open[n]/période.

Je suis intéressé par des solutions similaires pour d'autres façons de calculer les MA.

 
Alexander Antoshkin:

Je ne suis pas un bon orateur. Si je commence à parler, je vais discréditer la science.)

Trouvez Albert Buraga avec son thème "Beyond the market" il discute de ce sujet depuis longtemps, et écoutez ...... les algorithmes et les calculs sont tous là, son groupe est en contact.

il est inutile de mettre un lien vers son site - ils le supprimeront. montrez votre intérêt et vous le trouverez...... Je ne suis pas son étudiant et ne veux pas en faire la publicité, mais j'ai pris pour moi 1/3 de ce qu'il dit manquer.

Mon écran de travail ressemble à ceci : Trading de vendredi ... Je n'ai pratiquement pas approché mon ordinateur ... 80% du temps, je travaillais avec des ordres en attente et des profits sur des niveaux calculés précédemment...

...et c'est comme ça tous les jours

Merci pour l'info - je vais me renseigner. J'ai cru comprendre qu'il était aussi sur Smartlab.

 
J'ai regardé beaucoup de littérature sur le web, conseiller quel manuel, auteur, ou un cours gratuit ou des cours vidéo.
 

Bonjour, pourriez-vous m'indiquer comment résoudre ce problème : à RSI>50 la variable x est comptée une fois et à RSI<50 la variable y est comptée une fois (j'ai écrit cette partie dans le code) et à RSI>70 la valeur de la variable x est soustraite du prix actuel (cette partie est le problème). Le code se présente comme suit :

1 partie :

bool RSI_HIGHER_50=false;
bool RSI_LOWER_50=false;
void OnTick()
{
double RSI=iRSI(NULL,0,14,PRICE_CLOSE,1);
double x;
double y;
double z;
{
if (RSI>50&& !RSI_HIGHER_50)
{
x=MarketInfo(NULL,MODE_BID);
RSI_HIGHER_50=true;
RSI_LOWER_50=false;
}
}
{
if (RSI<50 && !RSI_LOWER_50)
{
y=MarketInfo(NULL,MODE_ASK);
RSI_LOWER_50=true;
RSI_HIGHER_50=false;
}
}
}

2 parties :

if (RSI>70)
{
z=Close[1]-x;
}

Si vous ne faites que connecter ces parties, la variable z ne sera pas calculée correctement. Est-il possible de fixer/sauvegarder la valeur de la variable x pour d'autres opérations avec elle ? Comment réaliser un calcul correct de la variable z dans la condition ci-dessus ?

Merci.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5