[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 930

 

si ça ne te dérange pas de me l'expliquer à ta façon.

ce que fait :

ticket - numéro de commande unique ?

J'ai beau connaître la documentation et le manuel par cœur, cela ne sert à rien.

Je suis d'accord, c'est trop bien écrit, mais ce n'est pas à mon niveau, je ne connais pas beaucoup de mots intelligents.

Est-ce le numéro magique de l'ordre ouvert ou est-ce le premier ou le deuxième de la liste ?

 
gheka:

si ça ne te dérange pas de me l'expliquer à ta façon.

ce que fait :

ticket - numéro de commande unique ?

J'ai beau connaître la documentation et le manuel par cœur, cela ne sert à rien.

Je suis d'accord, c'est trop bien écrit, mais ce n'est pas à mon niveau, je ne connais pas beaucoup de mots intelligents.

s'agit-il du numéro magique de l'ordre ouvert, ou d'un numéro de série comme le premier ou le deuxième de la liste ?


Étudiez attentivement http://www.alpari.ru/ru/school/textbook/autotrading/expert_advisors/. Dans le cas présent, la fonction sensible à l'ordre consiste à ouvrir un ordre.

La fonction vvvrzes le numéro du ticker (ne pas confondre avec le numéro magique) d'une position ouverte ou d'un ordre en attente placé. Si la fonction OrderSend() échoue, elle renvoie -1.

Chaque ordre ouvert ou en attente est identifié par son propre numéro unique.

 
Au secours !!! L'EA se négocie bien sur l'historique, mais ne fait rien sur le compte ?
 
Dimka-novitsek:
Au secours !!! L'EA se négocie bien sur l'historique, mais ne fait rien sur le compte ?
Quel désordre ! !! Comment puis-je aider ? Un mot gentil ? :))
 

S'il vous plaît, corrigez le code, afin que le prochain trade ne s'ouvre pas tant que le précédent n'a pas été fermé par SL ou TP. Je n'ai plus la force de le tester manuellement.

 
Deeepa:

S'il vous plaît, corrigez le code, afin que le prochain trade ne s'ouvre pas tant que le précédent n'a pas été fermé par SL ou TP. Je n'ai plus la force de le tester manuellement.

Il y a quelque chose que je n'ai pas remarqué à propos de votre code vérifiant si la position est déjà sur le marché... Avant d'ouvrir une position, vérifiez s'il existe une position avec le même type et le même numéro magique,
Si c'est le cas, alors il n'y a pas besoin d'ouvrir quoi que ce soit...

... et vous serez heureux... :)

 
artmedia70:

Je ne vois pas que vous vérifiez si une position est déjà sur le marché... Avant d'ouvrir une position, vérifiez s'il n'y a pas déjà une position sur le marché avec le même type et magik et,
Si c'est le cas, il n'y a pas besoin d'ouvrir quoi que ce soit...

... et vous serez heureux... :)


Je ne connais rien aux codes :))
 
Deeepa:

Je ne connais rien aux codes :))

Eh bien, pour être honnête - ce n'est pas un conseiller... C'est juste que... un jouet pour un testeur. Vous ne pouvez pas l'utiliser pour de vrai. Et si vous voulez le "modifier" au point de pouvoir travailler avec lui dans la vie réelle, je doute que quelqu'un le fasse gratuitement...

Bien que... il pourrait y avoir des altruistes... mais pour une bonne idée. On ne peut même pas voir l'idée en lui.

 
Bonjour !
Camarades, pouvez-vous me dire quelle est l'astuce ?
Tiré du tutoriel :

"La fonction ObjectCreate()... La fonction renvoie TRUE si l'objet a été créé avec succès, sinon elle renvoie FALSE. Pour obtenir plus d'informations sur l'erreur, appelez GetLastError()."

Dans mon EA, il donne en alerte - "ObjectCreate=0, ObjectSetText=1" pour toute création de graphique. Il n'est pas important que GetLastError() montre une erreur ou non. L'image est créée, mais pourquoi "ObjectCreate=0... ? Si cela doit être 1 ? Voici le code :

Цена1 Син = Open[n-4];
Время1 Син_вверх=Time[n-4];
Номер_свечи = Время1 Син_вверх;
ObjectFind(Номер_свечи);
ObjectCreate(Номер_свечи,OBJ_TEXT,0,Время1 Син_вверх,Цена1 Син+3*Point);
ObjectSetText(Номер_свечи,"1",14,"Arial",Свеча1 C);

 


Dimka-novitsek :
Au secours !!! L'EA se négocie bien sur l'histoire, mais ne fait rien sur le compte ?
C'est horrible ! !! Aider de quelle manière ? Un mot gentil ? :))

Eh bien, comment est-ce possible, qu'est-ce que ça a à voir avec ça. Je ne suis pas du tout surpris. Je n'ai reçu aucun message d'erreur, je n'ai rien fait, je me suis contenté de sourire, mais cela fonctionne dans le testeur.

//+------------------------------------------------------------------+
//| Dimon's Borders .mq4 |
//| Droits d'auteur © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#lien de propriété "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0 ;
extern double BandsDeviations=2.0 ;
extern double Lots=0.1,TakeProfit=50,stoploss=10 ;double PointX ;
int init()
{ if(Digits==5 || Digits==3) PointX = Point * 10 ; // Point de correction pour trois ou cinq chiffres
if(Digits==4 || Digits==2) PointX = Point ;
//----

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

//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{ int total=OrdersTotal();// Comment(" total ",total) ; Alert (" total ",total) ;
if ( total !=0 ){return;}

double Average,Verhnyayaghranytsa,Nyzhnyayaghranytsa,newres,sum,deviation ;
chaîne de caractères texte ; int ticket ; int err ;
text="échantillon macd" ;
Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i) ;
int k,counted_bars=IndicatorCounted() ;

//----
//----
for( k = 0 ; k<BandsPeriod ; k++)
{ newres=Close[k]-Average;//Alert (" Average ",Average) ;
sum+=((newres*100)*(newres*100))/10000;//Alert (" newres ",newres) ;
}




écart=BandesDeviations*MathSqrt(sum/BandsPeriod) ;
Verhnyayaghranytsa=Moyenne+écart ;
Nyzhnyayaghranytsa=Ecart moyen;//Alert (" sum ",sum) ;
// Alerte (" déviation ",déviation) ;
//----
si (Verhnyayaghranytsa<Close[i])
{Comment(" bouée ",Verhnyayaghranytsa ) ;
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-stoploss*PointX,Ask+TakeProfit*PointX, "macd sample",16384,0,Green) ;

}


if (Nyzhnyayaghranytsa>Close[i])
{Comment(" vendre ! ",Nyzhnyayaghranytsa ) ;

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+stoploss*PointX,Bid-TakeProfit*PointX, "macd sample",16384,0,Red) ;
Alerte (GetLastError()) ;

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

Pour sûr l'OrderSend est correct, il ne donne pas d'erreur, mais dans le testeur, il échange !

Raison: