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

 

Bonjour à tous, je pense que j'ai écrit au bon endroit. J'ai un grand désir d'apprendre le langage de programmation mql4 pour commencer avec des scripts, puis des indicateurs et des EA, en particulier, maintenant je me suis fixé comme tâche d'écrire moi-même un EA pour trader en utilisant une des tactiques. (J'ai lu sur le forum qu'ils commencent par des scripts). Je suis un expert en codage, je connais un peu pascal et delphi et j'ai étudié c++, j'ai lu mql mais je pense que ce n'est pas si différent. J'ai besoin d'aide pour écrire des programmes; bonne ou mauvaise optimisation du code, etc. Qui peut aider ?

Merci d'avance ! !!

 

Veuillez me conseiller sur un exemple, voici un code simple, le conseiller ouvre BAY avec stop et profit, et place un ordre en attente. Que dois-je écrire dans le code, pour que lorsqu'il atteint un profit, l'ordre en attente soit supprimé et que tout recommence depuis le début..... et lorsqu'il atteint un stop, par exemple, Alerte ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#property copyright ""
#propriété lien ""
extern double Lot = 0.01 ;
extern int TakeProfit = 200 ;
extern int StopLoss = 200 ;
extern double Step = 0.0020 ;
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
si (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)
{
{ OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,0,Green) ; }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,0,Red) ; }
}
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+

 
MIR-ASOV:

Veuillez me conseiller sur l'exemple, voici un code simple, l'EA ouvre BAY avec un stop et un profit, et met un ordre en attente. Que dois-je écrire dans le code, de sorte que lorsque vous obtenez un profit en attente supprimé et tout a commencé sur..... et lorsque vous obtenez un arrêt, par exemple, a été Alert ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#property copyright ""
#propriété lien ""
extern double Lot = 0.01 ;
extern int TakeProfit = 200 ;
extern int StopLoss = 200 ;
extern double Step = 0.0020 ;
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
si (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)
{
{ OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,0,Green) ; }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,0,Red) ; }
}
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+

Cherchez dans les manuels scolaires un algorithme pour comptabiliser les commandes. Reliez ensuite la logique à tout cela, et le résultat sera évident !

Travaillez également sur la syntaxe du code. Beaucoup d'accolades...


frixer:

Bonjour à tous, je pense que j'ai écrit au bon endroit. J'ai un grand désir d'apprendre le langage de programmation mql4 pour commencer avec des scripts, puis des indicateurs, et des EAs, en particulier, maintenant j'ai fixé une tâche d'écrire un EA moi-même pour trader par une des tactiques. (J'ai lu sur le forum qu'ils commencent par des scripts. Je suis très peu familier avec la programmation, les études de Pascal, Delphi et C++, j'ai lu mql mais je pense qu'ils ne sont pas si différents. J'ai besoin de quelques conseils sur la façon d'écrire des programmes bien ou mal, l'optimisation du code, etc. Qui peut aider ?

Merci d'avance ! !!

Donc vous écrivez ici, nous pouvons vous aider. Ou avez-vous besoin d'un professeur à domicile ? :)))
 

Comment effectuer une telle action dans un EA :

Toutes ces conditions peuvent ne pas se suivre l'une après l'autre (peut-être après une heure ou deux ou trois), donc nous devons faire en sorte que dès que l'indicateur atteint 1.0000, cette condition ne soit plus vérifiée à chaque tick, et attendre qu'une barre se ferme avec une baisse, et après cela ces 2 conditions ne sont pas vérifiées à chaque tick, et attendre que l'indicateur atteigne 0.9980 ou moins. Dès que toutes les conditions sont remplies, nous ouvrons un ordre de marché pour vendre 0.1 lot avec un stop loss de 100p et un take profit de 400p.

Quelqu'un peut-il m'aider ? Peut-être que quelqu'un a un exemple prêt ou me donne un lien ?

 
kolyango:

Comment effectuer une telle action dans un EA :

Toutes ces conditions peuvent ne pas se suivre l'une après l'autre (peut-être après une heure ou deux ou trois), donc nous devons faire en sorte que dès que l'indicateur atteint 1.0000, cette condition ne soit plus vérifiée à chaque tick, et attendre qu'une barre se ferme avec une baisse, et après cela ces 2 conditions ne sont pas vérifiées à chaque tick, et attendre que l'indicateur atteigne 0.9980 ou moins. Dès que toutes les conditions sont remplies, nous ouvrons un ordre de marché pour vendre 0.1 lot avec un stop loss de 100p et un take profit de 400p.

Quelqu'un peut-il m'aider ? Peut-être que quelqu'un a un exemple prêt ou me donne un lien ?

Lorsqu'un événement se produit, mettez une condition booléenne et un délai d'expiration.
 
kolyango:

Comment effectuer une telle action dans un EA :

Toutes ces conditions peuvent ne pas se suivre l'une après l'autre (peut être dans une heure ou deux ou trois), donc nous devons faire dès que l'indicateur atteint 1.0000, cette condition n'est plus vérifiée à chaque tick, et attendre jusqu'à ce qu'une barre se ferme avec une baisse, et après cela ces 2 conditions ne sont pas vérifiées à chaque tick, et attendre jusqu'à ce que l'indicateur atteigne 0.9980. Une fois que toutes les conditions sont remplies ouvrir un ordre de marché pour vendre 0.1 lot avec un stop loss de 100p et un take profit de 400p.

Quelqu'un peut-il m'aider ? Peut-être que quelqu'un a un exemple prêt ou me donne un lien ?


Voici un article pour vous aider - regardez l'analogie...

Dans la bande-annonce - l'inclusion de l'exécution de ces critères de négociation selon cet article, écrit selon le tutoriel, voir ici.

Vous avez tout de la même façon...

Dossiers :
criterion.mqh  12 kb
 
kolyango:

Comment effectuer une telle action dans un EA :

Toutes ces conditions peuvent ne pas se suivre l'une après l'autre (peut être dans une heure ou deux ou trois), donc nous devons faire dès que l'indicateur atteint 1.0000, cette condition n'est plus vérifiée à chaque tick, et attendre jusqu'à ce qu'une barre se ferme avec une baisse, et après cela ces 2 conditions ne sont pas vérifiées à chaque tick, et attendre jusqu'à ce que l'indicateur atteigne 0.9980. Une fois que toutes les conditions sont remplies ouvrir un ordre de marché pour vendre 0.1 lot avec un stop loss de 100p et un take profit de 400p.

Quelqu'un peut-il m'aider ? Peut-être que quelqu'un a un exemple prêt ou me donne un lien ?

C'est aussi simple que cela. Utilisons les drapeaux comme un sémaphore. Il y aura trois blocs de code, dont chacun ne sera exécuté que si le précédent l'est déjà.

Initialement, tous les drapeaux ==faux.

Dès que la première condition est remplie, nous mettons le premier drapeau=vrai ; Maintenant le deuxième bloc de code est exécuté. Dès que sa condition est remplie, le deuxième drapeau est activé=vrai ;
Maintenant, le troisième bloc de code est exécuté. Dès que sa condition est remplie, le troisième drapeau est activé = vrai ; et ainsi de suite.

 
artmedia70:

C'est aussi simple que cela. Utilisons les drapeaux comme un sémaphore. Il y aura trois blocs de code, dont chacun ne sera exécuté que si le précédent l'est déjà.

Initialement, tous les drapeaux ==faux.

Dès que le premier a été exécuté, nous mettons le premier flag=true ; Maintenant le deuxième bloc de code est exécuté. Dès que sa condition est remplie, le deuxième drapeau est activé = vrai ;
Maintenant, le troisième bloc de code est exécuté. Dès que sa condition est remplie, le troisième drapeau est activé = vrai ; et ainsi de suite.



Et quand baisser les drapeaux, il ne l'a pas écrit.
 

Pouvez-vous me dire quelle est la police de caractères utilisée par le terminal ? J'aimerais que mes commentaires soient identiques à ceux de la version standard.

if(spread >= 20)
       spreadColor = Red;
  else
       spreadColor = White;
  ObjectSetText("Spread", "Spread " + Symbol() + ": " + DoubleToStr(spread, 0), 8, "Tahoma Bold"/*"Calibri"*/, spreadColor);//"Webdings"
 

Les gars, lors de l'optimisation sur un terminal, je commence un test sur un autre terminal et le dernier terminal se bloque avec cette erreur... est-ce que quelqu'un sait quelle est la raison possible ? ?? Avant, quand je démarrais ce terminal - il demandait une mise à jour vers la version 409, je l'ai mise à jour, il redémarrait et continuait à demander la même mise à jour... J'ai - annulé, fermé, puis exécuté moi-même... il continuait à demander cette mise à jour.

Je n'ai pas encore vérifié le nouveau terminal... La charge du CPU est à 100% tout le temps... Exécution du test en mode visualisation sur le troisième terminal - testé correctement...


Raison: