[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 388

 
KostelloArtua:
2011.05.16 09:06:08 Expert Moyenne Mobile New-Svecha EURUSD,M30 : chargé avec succès
2011.05.16 09:04:21 Expert Moyenne mobile New-Svecha EURUSD,M30 : chargé avec succès
2011.05.16 08:14:25 '81415' : Échec de la connexion du DataCenter [6]


Si vous exécutez le terminal et ensuite l'EA, rien d'autre n'apparaît dans le journal et l'EA montre le travail...


Si les ticks sont en cours, l'icône d'EA est "souriante", EA devrait faire des transactions (c'est-à-dire que les conditions pour cela apparaissent), mais il ne les fait pas, alors il est nécessaire de déboguer.

Placez la commande price() dans le code de l'EA, en particulier aux endroits où elle est comparée et voyez ce qui est comparé exactement. Peut-être, le résultat de la comparaison est toujours faux, alors que vous supposez que les variables sont égales.

 

Bonjour à tous.

J'étudie MQL4 depuis environ un mois. J'ai écrit un Expert Advisor simple qui achète ou vend sur le changement des barres MACD (je peux envoyer le code dans la soirée si besoin). Il compile sans problème et mon compte de démonstration a un visage souriant dans le coin supérieur droit(j'ai activé mon EA pour négocier dans les préférences). Le testeur de stratégie montre des résultats pour la stratégie (bien que négatifs, mais il s'agit d'une étape vers un affinement ultérieur). Mais sur un compte de démonstration dans MT4, le conseiller expert n'ouvre pas du tout de transactions. Il me semble que le problème ne vient pas du programme (sinon pourquoi le testeur montrerait-il des résultats ?), mais de certains paramètres.

Pouvez-vous me dire ce que ça peut être ?

 
Sersad:.

Pouvez-vous me dire ce qui ne va pas ?


Combien d'argent avez-vous sur votre compte et quel lot y entrez-vous ?
 
Roger:

Combien d'argent avez-vous sur votre compte et quel lot y entrez-vous ?

Sur un compte de démonstration de 10 000 USD, j'entre avec 0,1 lot (mini lot).

Si vous voulez dire la gestion de l'argent, je ne pense pas que ce soit le cas...

 
Sersad:

Bonjour à tous.

J'étudie MQL4 depuis environ un mois. J'ai écrit un Expert Advisor simple qui achète ou vend sur les changements de barre MACD (je peux envoyer le code dans la soirée si besoin). Il compile sans problème et mon compte de démonstration a un visage souriant dans le coin supérieur droit (j'ai activé mon EA pour négocier dans les préférences). Le testeur de stratégie montre des résultats pour la stratégie (bien que négatifs, mais c'est une étape vers un affinement ultérieur). Mais sur un compte de démonstration dans MT4, le conseiller expert n'ouvre pas du tout de transactions. Il me semble que le problème ne vient pas du programme (sinon pourquoi le testeur montrerait-il des résultats ?), mais de certains paramètres.

Pouvez-vous me dire quel est le problème ?


Sans le code, c'est difficile à dire. Il est possible que l'EA soit écrit pour quatre chiffres, et que le compte de démonstration soit écrit pour cinq chiffres. Vous voyez, si nous fixons, par exemple, un stop loss de 10 points pour l'ordre, il est à la même distance de l'EA à cinq chiffres que 1 pip sur l'EA à quatre chiffres. Si nous fixons la distance minimale autorisée pour l'établissement des ordres stop à, disons, 3 points, alors sur un marché à cinq chiffres, ce serait trente points au lieu de trois. Le serveur rejettera, de manière tout à fait compréhensible, la commande visant à définir un ordre avec un stop de 10 points sur les cinq chiffres.

Mais la raison peut être différente. Vous voyez, vous avez demandé aux gens pourquoi leur voiture ne démarrait pas. On ne peut pas vous dire la raison sans ouvrir le capot et écouter la réaction de la voiture aux tentatives de démarrage...

 


Je suis désolé, j'ai écrit des bêtises ici, si vous pouviez me montrer où je suis complètement désemparé.

Les poses ne semblent pas s'ouvrir du tout, rien ne se passe.

J'ai supprimé la division par zéro - toujours, et aucune erreur n'est écrite dans le journal.

//+------------------------------------------------------------------+
//| pour avalanche.mq4 |
//| Droits d'auteur © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#lien de propriété "http://www.metaquotes.net"
extern double stoploss=0 ; extern double takeprofit=20 ; extern int otstup=20 ; extern datetime expiration=0 ;

//+------------------------------------------------------------------+
//| 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 tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN ;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss ;


int start()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES ) ;
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
si (i<2){
tiket= OrderSend( Symbole(), OP_BUYSTOP, volume*A, prix+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red) ;
Alert ("OP_BUYSTOP", GetLastError( ) ;
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, prix -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' ) ;
Alert ("OP_SELLSTOP", GetLastError( ) ;
i=OrdersTotal() ; } } }

//----
retour(0) ;
}
//+------------------------------------------------------------------+

C'est-à-dire que deux ordres en attente sont ouverts, l'un au-dessus du prix à une distance otstup=20, l'autre en dessous, sans stop, et avant l'ouverture, on vérifie s'il n'y a pas d'ordres de cet EA et pas plus de deux.

 
alexr7:
Merci beaucoup pour cette réponse rapide !!!!!!!!!!!!!!. Le critère est un indicateur standard de bandes de Bollinger avec les paramètres suivants : période 20, décalage 0, déviation 2, fermeture pondérée (HLCC/4) !!!!!!!.

Ce ne sont pas les critères sur lesquels je vous ai interrogé. Ce sont les paramètres de Bollinger. Ils peuvent être différents et ils sont définis dans les paramètres...

Je vous ai demandé - comment déterminez-vous si la position est sur la ligne médiane de Bollinger ?

 
alexr7:
Merci beaucoup pour cette réponse rapide !!!!!!!!!!!!!!. Le critère est un indicateur standard de bandes de Bollinger avec les paramètres suivants : période 20, décalage 0, déviation 2, fermeture pondérée (HLCC/4) !!!!!!!.

La ligne de moyenne de Bollinger est iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_WEIGHTED, 1) ;
 
Dimka-novitsek:


Je suis désolé, j'ai écrit des bêtises ici, si vous pouviez me montrer où je suis complètement moutonnier.

Les poses ne semblent pas s'ouvrir du tout, rien ne se passe.

J'ai supprimé la division par zéro - toujours, et aucune erreur n'est écrite dans le journal.

//+------------------------------------------------------------------+
//| pour avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double stoploss=0 ; extern double takeprofit=20 ; extern int otstup=20 ; extern datetime expiration=0 ;

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage expert |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN ;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss ;


int start()
{
//----

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES ) ;
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend(), OP_BUYSTOP, volume*A, price+otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red) ;
Alert ("OP_BUYSTOP", GetLastError( ) ;
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, prix -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' ) ;
Alert ("OP_SELLSTOP", GetLastError( )) ;
i=OrdersTotal( ) ; } } }

//----
return(0) ;
}
//+------------------------------------------------------------------+

Ie, ouvrir comme deux ordres en attente, l'un au-dessus du prix à une distance otstup=20, l'autre en dessous, pas de stop, et avant d'ouvrir vérifier si l'ordre de cette EA et pas plus de deux.

1) utiliser SRC

2) Votre première commande est OrderSelect. Qui allez-vous choisir avant de fixer les ordres ?

 

Lorsque l'EA ne démarre rien, c'est juste pour vérifier, afin que de nouveaux cavaliers ne s'ouvrent pas à chaque tick après.

1) utilisez SRC A, c'est une racine merci !

C'est-à-dire que s'il n'y a aucun ordre ou moins de 2, ils s'ouvrent immédiatement !

Raison: