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

 

Bonjour à tous.

Pouvez-vous m'aider à créer une condition lors de l'ouverture d'un ordre, afin qu'il ne soit ouvert que si l'heure actuelle (à la minute près) n'est pas égale à l'heure de clôture de l'ordre précédent.

Voici la construction :

int accTotal=OrdersHistoryTotal() ;

if(OrderSelect(accTotal-1,SELECT_BY_POS,MODE_HISTORY)==true) {

datetime ctm=OrderCloseTime() ;

}

...

et ensuite conditionner l'ouverture d'un ordre

if(.....&&(TimeCurrent()!=ctm)){

ticket=OrderSend(.....) ;

}

Mais bien sûr, cela ne fonctionne pas parce que TimeCurrent() renvoie un temps précis à la seconde près, et j'ai besoin d'une minute au maximum parce que je négocie sur des barres de minutes et lors de fortes fluctuations du marché, même pendant une minute, le prix peut varier de plusieurs centaines de points et ce n'est souvent pas dans ma direction. C'est pourquoi je n'ai besoin que d'un seul ordre à ouvrir en une minute.

 
ev85:

Bonjour à tous.

Pouvez-vous m'aider à créer une condition lors de l'ouverture d'un ordre, afin qu'il ne s'ouvre que si l'heure actuelle (à une minute près) n'est pas égale à l'heure de clôture de l'ordre précédent.


Bien sûr, cela ne fonctionne pas car TimeCurrent() renvoie un temps précis à la seconde près, et j'ai besoin d'un temps allant jusqu'à la minute. Comme je négocie sur des indicateurs minute et lors de fortes fluctuations du marché, même en une minute, le prix peut varier de plusieurs centaines de points et ne pas toujours aller dans ma direction. C'est pourquoi je n'ai besoin que d'un seul ordre à ouvrir en une minute.

TimeHour(),TimeMinute().
 
ev85:

Bonjour à tous.

Pouvez-vous m'aider à créer une condition lors de l'ouverture d'un ordre, afin qu'il ne soit ouvert que si l'heure actuelle (à la minute près) n'est pas égale à l'heure de clôture de l'ordre précédent.

Voici la construction :

int accTotal=OrdersHistoryTotal() ;

if(OrderSelect(accTotal-1,SELECT_BY_POS,MODE_HISTORY)==true) {

datetime ctm=OrderCloseTime() ;

}

...

et ensuite conditionner l'ouverture d'un ordre

if(.....&&(TimeCurrent()!=ctm)){

ticket=OrderSend(.....) ;

}

Mais bien sûr, cela ne fonctionne pas parce que TimeCurrent() renvoie un temps précis à la seconde près, et j'ai besoin d'une minute au maximum parce que je négocie sur des barres de minutes et lors de fortes fluctuations du marché, même pendant une minute, le prix peut varier de plusieurs centaines de points et ce n'est souvent pas dans ma direction. C'est pourquoi je n'ai besoin que d'un seul ordre à ouvrir en une minute.

   datetime t=0;
   int  ticket;

   for(int i=0; i<OrdersHistoryTotal(); i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if(OrderSymbol()==Symbol()) 
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
              {
               if(t<OrderCloseTime()) t=OrderCloseTime();
              }
           }
        }
     }
   if(TimeCurrent()-t>60)   //Ecли после закрытия последней поз > 60 секунд, то открываемся
       ticket=OrderSend(.....);
Quelque chose comme ça
 
Comment déterminer intelligemment la tendance dans MQL4 ?
 
Cei Comment déterminer la tendance dans MQL4 ?

Il existe de nombreuses façons de procéder - recherchez les indicateurs de tendance dans CodeBase. Différencier une moyenne mobile, prendre un coefficient de régression linéaire, ... mais à mon goût, il est préférable d'attraper les renversements de situation.

J'ai cliqué en haut de cette page sur Code Base. J'ai entré un indicateur de tendance dans la boîte de recherche. Comme l'a dit Mayakovskiy, tous ces indicateurs sont bons, mais il n'y a pas de différence. Voici un lien vers l'un d'entre eux. J'ai fait quelques recherches supplémentaires et j'ai lu : Un bon conseiller expert ... ne devrait donner qu'une seule recommandation :" Ne pas entrer sur le marché".

 
Cei:
Comment déterminer la tendance dans MQL4 ?

Attendez un retournement, déclarez - il y avait une tendance là )))).

Il n'y a pas d'autre moyen. La tendance est définie dans le passé, comme les vagues, comme les fractales, comme les zigzags.

 

Mes amis, y a-t-il une fonction pour interdire le commerce ?

J'en ai besoin pour un petit cycle :

pour (prévu ; pas de transaction ; jusqu'à ce que tous les ordres en cours soient fermés)

 
ev85:

Mes amis, y a-t-il une fonction pour interdire le commerce ?

J'en ai besoin pour un petit cycle :

pour (prévu ; pas de transaction ; jusqu'à ce que tous les ordres en cours soient fermés)

CommandesTotal()
 
La tâche est la suivante.

J'ai besoin d'exécuter l'indicateur sur les 9 horizons temporels pour 100 symboles de Market Watch et de sortir le résultat sous forme de tableau.
Dois-je garder 900 graphiques ouverts ou non, pour que l'historique soit gonflé et à jour ?
 
RickD:
La tâche est la suivante.

J'ai besoin d'exécuter l'indicateur sur les 9 horizons temporels pour 100 symboles de Market Watch et de sortir le résultat sous forme de tableau.
Pour que l'histoire soit mise à jour et pertinente, dois-je garder 900 graphiques ouverts ou non ?

Non, 100 graphiques sont suffisants, mais vous devez écrire l'indicateur correctement.

Raison: