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

 
lottamer:

Un ordinateur peut mémoriser ce qu'il veut, mais faisons en sorte qu'il le fasse de manière humaine :)))

Il donne ce qu'on lui demande, et il ne peut pas "humainement" par définition, c'est un ordinateur, pas un être humain.
 

lire ici https://forum.mql4.com/ru/38949/page2#434212


La fonction ExistPosByPrice().

Cette fonction renvoie un indicateur de l'existence d'une position à un prix ouvert donné.

Qu'est-ce qu'un drapeau Exist?

 
hoz:

Demandez donc si vous avez écrit correctement la fonction que vous montrez, sinon vous demandez une chose et en montrez une autre.
 
lottamer:

lire ici https://forum.mql4.com/ru/38949/page2#434212


La fonction ExistPosByPrice().

Cette fonction renvoie un indicateur de l'existence d'une position à un prix ouvert donné.

Qu'est-ce que le"Exist flag" ?


Un drapeau est une variable, généralement de type bool, qui est mise dans un état dépendant de la vérité de la condition vérifiée (ici -- s'il existe une position avec un prix d'ouverture donné).
 
sergeev:

pas pour que ce temps pour le signe == n'existe que pendant 1 seconde.

il est correct de mettre le signe >=.

ou passer par le contrôle de deux variables temporelles - actuelle et précédente.

Mais d'un autre côté, vous avez une erreur logique : vous essayez de lier une seconde à un résultat positif d'une opération logique d'une condition d'ouverture d'ordre.

Ce n'est pas correct. L'ordre peut échouer à s'ouvrir, ce qui signifie que vous n'essaierez pas de l'ouvrir au prochain tick - puisque la fonction de temps retournera false.


J'ai compris l'idée générale. Voici ce qui en est ressorti :

bool GetTimeToInput()

{

  if(TimeCurrent() >= iTime(Symbol(),1440,0) && TimeCurrent() <= iTime(Symbol(),1440,0) + N)

  {

    return(true);

  }

  else

    

  return(false);

} 

N est le nombre de minutes après l'ouverture de la barre quotidienne. Jusqu'à présent, je n'ai pas trouvé comment l'obtenir, j'ai donc écrit une variable pure. Il semble que ce soit correct.

sergeev:

Vous devez lier la mémorisation de l'opération réussie au temps.

penser.

Mais j'aimerais clarifier ce que vous entendez par "lier la sauvegarde d'une opération réussie au temps". Je n'ai pas bien compris.

 
hoz:


J'ai compris l'idée générale. Voici ce qui en est ressorti :

N est le nombre de minutes écoulées depuis l'ouverture de la barre quotidienne. Jusqu'à présent je n'ai pas compris comment l'obtenir, donc j'ai écrit purement une variable. Il semble que ce soit correct.

Sergeev:

Mais je veux expliquer plus clairement, comment relier la mémorisation d'une opération réussie avec le temps. Je ne comprends pas bien.


Ce n'est pas le temps en soi qui est important pour vous, mais le fait que quelque chose ait été fait dans un certain laps de temps - c'est ce que vous devez vérifier.

P.S. Et vous n'avez pas besoin de déterminer N, il suffit de faire votre vérificationif(TimeCurrent() >= iTime(Symbol(),1440,0) ) jusqu'à ce que les actions dont vous avez besoin soient faites (installer un ordre).

 
rigonich:

Un drapeau est une variable, généralement de type bool, qui prend un état selon que la condition est vraie ou non (ici - s'il existe une position avec un prix ouvert donné).

Je vois, qu'est-ce que la position INDEX ? Ce n'est pas un ticker, et ce n'est pas un type.....
 
lottamer:

j'ai compris, qu'est-ce qu'un indice de commande ? ce n'est pas un ticker, et ce n'est pas un type.....


Il s'agit de l'index qui détermine la position de l'ordre dans le tableau où sont stockées les données relatives aux ordres présents dans le terminal.

En d'autres termes, ilest souligné (sous SELECT_BY_POS) boolOrderSelect(int index, int select, int pool=MODE_TRADES)

 
rigonich:


Il s'agit de l'index qui définit la position de l'ordre dans le tableau où sont stockées les données relatives aux ordres présents dans le terminal.

C'est-à-dire,ce qui est souligné( avec SELECT_BY_POS) bool OrderSelect(int index, int select, int pool=MODE_TRADES)



mais comment appliquer cela en pratique si vous devez coder une condition "si les deux dernières transactions étaient des pertes....." ? ? ?
 
lottamer:

mais comment l'utiliser en pratique si vous devez coder une condition "si les deux dernières transactions étaient perdantes....." ? ? ?


Vous devez d'abord sélectionner l'ordre, puis faire quelque chose avec lui (afficher les informations relatives à l'ordre, envoyer un ordre de transaction au serveur pour le modifier ou le clôturer). Il existe deux façons de sélectionner les ordres dans le terminal, par ticket, qui est le numéro attribué à l'ordre sur le serveur et qui ne change pas pour un ordre particulier, ou par le numéro d'ordre (index) sous lequel l'ordre est stocké dans le terminal. Ce nombre peut changer à chaque tick, en fonction de la nature et du nombre d'ordres ouverts, fixés, fermés ou supprimés.

Pour travailler avec les commandes, il est nécessaire d'organiser des cycles d'évaluation des commandes.