![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je demande de l'aide pour écrire un robot de trading simple basé sur l'indicateur i-Regr. Si c'est bien fait, je garantis un paiement raisonnable.
Si quelqu'un est intéressé, veuillez écrire à ma.gog@mail.ru
L'idée générale est la suivante :
1. Le conseiller expert doit placer des ordres stop et limite en attente sur les fractales (stop d'achat, stop de vente, limite d'achat, limite de vente), le délai d'expiration des ordres doit être défini (heures, minutes).
2. Les types d'ordres doivent être commutables (soit les ordres stop et les ordres à cours limité ensemble, soit séparément : ordres stop uniquement, ordres à cours limité uniquement),
3. La distance entre l'ordre placé et la fractale doit être définie en pips, et pour les ordres stop séparément, et pour les ordres à cours limité séparément.
4. Le StopLoss et le TakeProfit sont fixes, fixés immédiatement.
5. Vous voulez avoir un stop suiveur d'un pip et le désactiver.
6. Le lot devrait être réparé. Mais il est également possible de créer une gestion de l'argent.
7. Le spread doit être pris en compte dans les ordres : (ordre d'achat + spread, ordre de vente - spread)
Pour tout contact : Cashinroman@yandex.ru
Quelqu'un peut-il comprendre ce code, pourquoi dans la livre de test USD H4 fonctionne super
Et sur la démo et sur le réel ne verse quelque chose pour le changer spas peut-être il regarde dans l'histoire
extern double Init_line1 = 1.9620 ;
extern double Init_line2 = 1.9630 ;
extern double Init_line3 = 1.9640 ;
extern double Init_line4 = 1.9650 ;
extern int Step_line = 40 ;
extern double Lots = 1 ;
extern int ColUr = 2 ;
int i, j ;
int a[4][4];//1-buy, 2-sell, 3-buystop, 4-sellstop
double minlot ;
datetime LastWork ;
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
//********************************************************************
//vérifier s'il y a des postes ouverts,
//imprime le nombre de positions ouvertes dans le tableau a[4][4].
bool Pred()
{
int NL ; //quelles lignes sont dans le tableau
pour (i=0 ; i<=4 ; i++)
pour (j=0 ; j<=4 ; j++)
a[i][j]=-1;//tous en -1
for (i=0 ; i<OrdersTotal() ; i++) //inverser tous les ordres
{
si (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)//sélectionner l'ordre si ce n'est pas possible
pause ;
si (OrderSymbol()==Symbol())//il existe des positions pour ce symbole
if (OrderComment()=="a1")//y a-t-il une marque ?
NL=0 ;
else if (OrderComment()=="a2")//est notre étiquette ?
NL=1 ;
else if (OrderComment()=="a3")//est notre étiquette ?
NL=2 ;
else if (OrderComment()=="a4")//est-ce notre balise ?
NL=3 ;
sinon
continuer;//non ? alors continuer la recherche
//nous avons nos ordres, occupons-nous en.
si (OrderType()==OP_BUY)//si la position est BUY
a[NL][0]=OrderTicket();//se souvenir de son numéro
else if (OrderType()==OP_SELL)//si la position est en vente
a[NL][1]=OrderTicket();//se souvenir de son numéro
else if(OrderType()==OP_BUYSTOP)//si la position est en suspens acheter
a[NL][2]=OrderTicket();//se souvenir de son numéro
else if (OrderType()==OP_SELLSTOP)//si la position est en suspens, vendre
a[NL][3]=OrderTicket();//se souvenir de son numéro
}//fin de la boucle
}
//********************************************************************
//Exemple :
//niveau de contrôle 1.9420, prix actuel 1.9277 ou 1.9537 trouver près du niveau inférieur
//а)|1.9420-1.9277|*10000/40=3.575
//3.575-3=0.575 ; 0.575*40=23 ; 1.9277-0.0023=1.9255 niveau supérieur le plus proche
//б)|1.9420-1.9537|*10000/40=2.925
// 2.925-2=0.925 ; 0.925*40=37 ; 1.9537-0.0037=1.9500 Niveau bas le plus proche
int init()
{
Dernier travail = -1 ;
}
//********************************************************************
int deinit()
{
retour(0) ;
}
//********************************************************************
int start()
{
si (CurTime() - LastWork < 5)
return(0) ; // pas plus d'une fois toutes les 5 secondes
LastWork = CurTime() ;
Pred();//toutes les données collectées
Comment("a[1][1]=",a[0][0]," a[0][2]=",a[0][1]," a[1][3]=",a[0][2]," a[1][4]=",a[0][3],"\n",
"a[2][1]=",a[1][0], "a[2][2]=",a[1][1], "a[2][3]=",a[1][2], "a[2][4]=",a[1][3], "\n"
"a[3][1]=",a[2][0], "a[3][2]=",a[2][1], "a[3][3]=",a[2][2], "a[3][4]=",a[2][3], "\n"
"a[4][1]=",a[3][0]," a[4][2]=",a[3][1]," a[4][3]=",a[3][2]," a[4][4]=",a[3][3],"\n")
commentaire de chaîne ;
double Init_line,qw,qw1,uo,w, sl, op ;
for(i=0;i<ColUr;i++)//exécuter le tableau a[4][4]
{
//nécessité d'aller plus loin
coment=" ;
si (i==0)
{
coment="a1" ;
Init_line=Init_line1 ;
}
sinon si(i==1)
{
coment="a2" ;
Init_line=Init_line2 ;
}
sinon si(i==2)
{
coment="a3" ;
Init_line=Init_line3 ;
}
sinon si(i==3)
{
coment="a4" ;
Init_line=Init_line4 ;
}
//recherche le niveau le plus proche
w=(MathAbs(Bid-Init_line)*1/Point)/Step_line;//coefficient
si (Bid>=Init_line)
qw=Step_line*(w-MathFloor(w));//nombre de points vers le bas au niveau le plus proche
sinon
qw=Step_line-Step_line*(w-MathFloor(w));//nombre de points vers le bas au niveau le plus proche
qw1=Step_line-qw;//nombre de points jusqu'au niveau le plus proche
// Commentaire("Ligne1 ",Init_line," w=",((Bid-Init_line)*1/Point)/Step_line," qw=",qw," NewLine",Bid-(qw)*Point) ;
if ((a[i][0]==-1)&&(a[i][1]==-1)&&(a[i][2]==-1)&&(a[i][3]==-1))//нету открытых
{
//passer des commandes
si (qw+4>=15)// nous pouvons placer une attente de vente
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw)*Point,0,Bid-Point*(qw-2*Step_line),0,0,CLR_NONE) ;
else //set the next level down
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-Point*(qw+Step_line),0,Bid-Point*(qw+Step_line-2*Step_line),0,coment,0,0,CLR_NONE) ;
if (qw1>=15)//peut mettre une attente d'achat
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4)*Point,0,Ask+Point*(qw1-4-2*Step_line),0,coment,0,0,CLR_NONE) ;
else/// le mettre au niveau supérieur suivant
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+Point*(qw1-4+Step_line),0,Ask+Point*(qw1-4+Step_line-2*Step_line),0,coment,0,0,CLR_NONE) ;
}
// !!!!!!!!!!!!!
else if (a[i][0]!=-1)// valeur d'achat
{//ouvert acheter
OrderSelect(a[i][0],SELECT_BY_TICKET, MODE_TRADES);//sélectionne un ordre ouvert
uo=OrderOpenPrice();//son prix d'ouverture - niveau
op=uo ;
si (uo<(Ask-(qw-4)*Point))//le prix d'ouverture est inférieur au bas actuel
//vérifier que SL est ouvert, si nécessaire modifier
si (OrderStopLoss()<(Ask-Point*(qw+4+2*Step_line)))//SL est inférieur à 2 niveaux vers le bas du prix actuel
OrderModify(a[i][0],NULL,Ask-Point*(qw+4+2*Step_line),NULL,NULL,CLR_NONE) ;
sl=OrderStopLoss() ;
//décider de l'attente
if (a[i][3]!=-1)//stands sellstop
{
OrderSelect(a[i][3],SELECT_BY_TICKET, MODE_TRADES);//position sur l'attente
uo=OrderOpenPrice();//prix d'ouverture - niveau
if(uo!=sl)//(Bid-Point*(qw+2*Step_line)))//le niveau ouvert est égal au stop BUY
OrderModify(a[i][3],sl, sl+Point*(2*Step_line),NULL,NULL,CLR_NONE)
// OrderModify(a[i][3],Bid-Point*(qw-2*Step_line),Bid+qw*Point,NULL,NULL,NULL) ;
}
else if (a[i][3]==-1)//le tour d'achat a été ouvert, le sellstop doit être activé.
OrderSend(Symbol(), OP_SELLSTOP, Lots, sl,0,sl+Point*(2*Step_line),NULL,coment,0,0,CLR_NONE) ;
// OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw+2*Step_line)*Point,0,Bid-Point*(qw),NULL,coment,0,0,0) ;
}
// !!!!!!!!!!!!!
else if (a[i][1]!=-1)//stand sell
{
OrderSelect(a[i][1],SELECT_BY_TICKET, MODE_TRADES);//sélectionne l'ordre ouvert
uo=OrderOpenPrice();//prix d'ouverture - niveau
op=uo ;
si (uo>(Bid+(qw1)*Point))//le prix d'ouverture est supérieur au niveau supérieur actuel
//vérifier que SL est ouvert, si nécessaire modifier
si (OrderStopLoss()>(Bid+Point*(qw1+2*Step_line)))//SL est supérieur à 2 niveaux au-dessus du prix actuel
OrderModify(a[i][1],NULL,Bid+Point*(qw1+2*Step_line),NULL,NULL,CLR_NONE) ;
sl=OrderStopLoss() ;
//prendre un report
si (a[i][2]!=-1)// coût du buystop
{
OrderSelect(a[i][2],SELECT_BY_TICKET, MODE_TRADES);//position sur le suspens
uo=OrderOpenPrice();//prix d'ouverture - niveau
si (uo!=sl)//le niveau ouvert est égal au stop VENTE
OrderModify(a[i][2],sl,sl-(2*Step_line)*Point,NULL,NULL,CLR_NONE) ;
// OrderModify(a[i][2],Ask+Point*(qw1-4+2*Step_line), Ask+(qw1-4)*Point,NULL,NULL,NULL) ;
}
else if (a[i][2]==-1)//le tour de vente a été ouvert, nous devons définir le buystop
OrderSend(Symbol(), OP_BUYSTOP, Lots, sl,0,sl-Point*(2*Step_line),NULL,0,0,CLR_NONE) ;
//OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4+2*Step_line)*Point,0,Ask+Point*(qw1-4),NULL,coment,0,0,0) ;
}
}
retour (0) ;
}
Chers messieurs les programmeurs ! Je voudrais demander de l'aide pour écrire un EA. Je ne parle pas encore MQL. Si mon EA est rentable, je suis prêt à partager mes bénéfices avec la personne qui l'a écrit, ou à décrire vos conditions. Je pense que cela devrait être rentable.
A propos de "partager le prix" - c'est digne)
Mais il est plus intéressant de "décrire les termes".
Mes conditions : j'écris pour l'argent maintenant, je ne prétends pas faire du profit.
Contacts dans le profil
Chers visiteurs de ce site. Un conseiller expert très simple doit être écrit. J'ai une suggestion. Je vous donne une condition, vous me donnez le conseiller expert. Vous serez également en mesure d'utiliser ma stratégie simple. J'apprécierais que vous m'expliquiez comment modifier le volume des ordres dans l'EA, lorsque cela est nécessaire. Je donnerai les conditions lors de la correspondance personnelle ou ICQ 300333834 ou mail forexbmf@yandex.ru Andrew.
Si vous voulez faire des transactions gratuitement (de préférence en réel ou en démo pendant 1 ou 2 mois).
Sinon, voici https://www.mql5.com/ru/job
Однако выслушав условие вы поймёте, что действительно имеет смысл такая торговля.
Octobre, tu n'as aucune idée du nombre de personnes avant toi qui ont dit à peu près les mêmes mots et se sont découragées.
Chers visiteurs du site. Il faut écrire une EA très simple.
Voir l'assistant EA en ligne : http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Support de la langue russe disponible