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

 
Puis-je télécharger 32 mt4 pour l'installer sur un système OS 64 bits ?
 
Seric29 #:
Puis-je télécharger 32 mt4 pour l'installer sur un système OS 64 bits ?
oui
 
Seric29 #:
Est-il possible de télécharger 32 mt4 pour l'installer sur un système OS 64 bits ?
Eh bien, MT4 x64 n'existe pas du tout... Et toute application x32 peut être installée sur un système x64.
 
Mihail Matkovskij #:

Je viens juste de le remarquer.

Index 1.

Alors que vous avez le MA avec un indice de 0 ! C'est-à-dire qu'il se promène dans toute la barre et peut aller au-delà de l'ouverture et de la fermeture. Par conséquent, il est préférable d'indexer MA par 1.

Ensuite, tous les signaux seront pris exceptionnellement sur la barre formée et le robot sera totalement cohérent avec le système de trading avec des signaux sur les prix ouverts. Ainsi, le robot devra seulement suivre l'ouverture de la barre (j'ai déjà ajouté ce code) et entrer sur la barre la plus récente. Il sera plus fiable. Il n'aura pas à faire des pieds et des mains, comme Makar a dû le faire à cause d'un algorithme d'entrée initialement erroné.

Merci. Je suis conscient de cela et j'essaierai d'exécuter mon TS sur l'historique avec "1".

 
MakarFX #:
Artem, la stratégie a un ordre sur le marché jusqu'à ce qu'il ferme au TP ou au SL.

Messieurs, je vous remercie tous, mais je ne pensais pas que ma question susciterait autant de "polémique" ;))

Je suis un partisan des EA, qui sont aussi simples que des AK-47.

signal - entrée

arrêt/stop/stop-out

le commerce en une seule commande.

J'utilise le code d'autres personnes et j'ajoute le mien (avec votre aide) et je ne vais pas changer quoi que ce soit, sauf si je dois le faire parce que cela "fonctionne et semble simple".

Je suis maintenant préoccupé par une nouvelle question

Comment faire dévier le point d'entrée de n barres ?

bool bSignalBuy()
  {
   if(dMA > Open[1] && dMA < Close[1])
     if (TimeCurrent()> iTime(NULL,0,5)) 
      return(true);

   return(false);
  }
//+-----------------------------------------------------------------------------------------------+
//|                                                             Функция поиска сигнала на продажу |
//+-----------------------------------------------------------------------------------------------+
bool bSignalSell()
  {
   if(dMA < Open[1] && dMA > Close[1])
     if (TimeCurrent()> iTime(NULL,0,5))
      return(true);

   return(false);
  }

C'est-à-dire que je suppose que si :

TimeCurrent - heure d'arrivée de la dernière cotation > iTime - où "5" décale labarre actuelle en arrière du nombre de barres spécifié, puis le signal a disparu.

Il y a eu un problème quelque part, car cela ne fonctionne pas encore.

 
законопослушный гражданин #:

J'ai fait quelque chose de mal quelque part. Ça ne marche pas encore.

a tout faux.

essayez de penser - cette condition :

if (TimeCurrent()> iTime(NULL,0,5))

ne renvoie jamais false ?

Pour ce qui est du sujet, dans la boucle de la barre 1 à la barre iBars(NULL,0), cherchez un signal, si vous avez trouvé un signal, renvoyez le numéro de la barre où vous avez trouvé le croisement ? ou etc.

si vous ne trouvez pas le signal, retournez -1 ou peut-être INT_MAX .... cela dépend de la façon dont vous voulez gérer la situation s'il n'y avait pas de croisement.

 
Igor Makanu #:

a tout faux.

essayez de penser - cette condition :

ne renvoie jamais false ?

Pour ce qui est du sujet, dans la boucle de la barre 1 à la barre iBars(NULL,0), cherchez un signal, si vous avez trouvé un signal, renvoyez le numéro de la barre où vous avez trouvé le croisement ? ou etc.

si vous ne trouvez pas le signal, retournez -1 ou peut-être INT_MAX .... cela dépend de la façon dont vous voulez gérer la situation s'il n'y avait pas de croisement.

Vous voulez donc être "lié" non pas au temps mais au nombre de barres ?

 
законопослушный гражданин #:

Donc ce n'est pas le temps qui compte, mais le nombre de barres ?

bien presque.... encore une fois : exécuter en boucle les signaux sur chaque barre.... C'est compris ?

for(int i=1;i<Bars;i++)
{
if(dMA < Open[i] && dMA > Close[i]) return(i);
}
return(INT_MAX);
 
Igor Makanu #:

bien presque.... encore une fois : parcourir les signaux sur chaque barre.... Tu l'as eu ?

Oui. expliqué, je ne comprends pas encore, pourquoi dois-je "cycler" à travers toutes les barres ?

J'ai une barre exprimée en termes de prix d'ouverture et de fermeture. Il donne un signal pour ouvrir un ordre sur la barre suivante.

J'ai supposé que si j'exprimais la "barre de signal" par le temps au lieu du prix, je pourrais simplement y ajouter la quantité de temps requise et "décaler" le temps d'ouverture de la position.

 
законопослушный гражданин #:

Oui. expliqué, je ne comprends vraiment pas pourquoi je dois "passer par" toutes les barres ?

J'ai une barre exprimée en termes de prix d'ouverture et de fermeture. Il donne un signal pour ouvrir un ordre sur la barre suivante.

J'ai supposé que si j'exprimais la "barre de signal" par le temps plutôt que par le prix, je pourrais simplement y ajouter la quantité de temps nécessaire et "décaler" le temps d'ouverture de la position.

Vous devez décider - comment formuler la question ?

citoyen respectueux des lois #:

Comment faire reculer le point d'entrée de n-bars ?

ici et chercher une barre où se trouvait le dernier signal - pour définir un signal de contrôle dur sur la barre #5 - n'est pas la meilleure option, imho - regarder dans la boucle, si vous voulez, puis faire le cycle non pas pour toutes les barres, mais par exemple de 1 à N

Au fait : la barre est une solution universelle - maintenant vous voulez sur un TF ouvrir un ordre dans 15 minutes, puis décidez que vous en avez besoin sur un TF plus élevé dans 2 heures - connaissant la barre où le dernier signal était, vous pouvez immédiatement obtenir l'heure de cette barre