[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 896

 
belck:

Je veux fixer un take profit de cette façon :

if (TakeProfit<10*Point) TakeProfit=10*Point;
La ligne de l'indicateur change de position après une certaine période de temps. Comment puis-je m'assurer que la ligne de prise de bénéfices ne change pas, mais reste la même que celle qui a été définie lorsque je l'ai ouverte ?
Le TP est généralement calculé au moment du placement de l'ordre - il est alors attribué à l'ordre et vous devez le modifier en utilisant OrderModify(), parfois le TP est virtuel, dans ce cas vous devez le sauvegarder dans le tableau.
 
IgorM:
Je ne peux même pas deviner pourquoi vous calculez le TP. Habituellement, le TP est calculé au moment de la passation de l'ordre - il est alors attribué à l'ordre et vous devez le modifier en utilisant OrderModify(), parfois le TP est virtuel, puis il est stocké dans un tableau.

Merci pour le conseil.

 

Je viens de créer un EA, je continue à m'entraîner, tout s'accélère à chaque fois, mais il n'y a pas de trading !

Si vous le pouvez, veuillez me conseiller, je pense que je serai en contact.

//+------------------------------------------------------------------+
//| 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 ;
int init()
{int Moyenne ;
//----

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

//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{double Average,Upper Border,Lower Border,newres,sum,deviation ;

Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i) ;
//----
newres=Close[i]-Moyenne ;
somme=nouvelles*nouvelles ;


écart=BandesDeviations*MathSqrt(sum/BandsPeriod) ;
Limite supérieure = moyenne + écart ;
Limite inférieure = moyenne + écart ;
//----
si (limite supérieure<Close[i])
{Comment(" bouée ! ",limite supérieure ) ;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green) ;

}


si (Limite inférieure>Close[i])
{ Comment(" Sell ! ",Bottom Border ) ;

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red) ;
}
retour(0) ;
}
//+------------------------------------------------------------------+

Je m'excuse pour les variables non anglaises, c'est beaucoup plus facile pour moi de me souvenir de ce qu'il faut faire.

 
VOLDEMAR:
Bonjour ! Je n'arrive pas à comprendre ce qui ne va pas avec ? ???. Ne modifie pas l'ordre de marché
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits) ; // calcul du stop pour les positions d'achat///
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits) ; //calcul du profit pour les positions d'achat///
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) ; //calculer le stop pour les positions de vente///
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits) ;

//================================================== ==================//
int total=OrdersTotal() ;
int n=0 ;
for (int i=total-1 ; i>=0 ; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
si(OrderSymbol()==Symbol())
{
n++ ;
}}}
si ( total == 1 )
{
pour (int k=total-1 ; k>=0 ; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("la commande existe", k) ;
{
si ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue) ;
Alert("erreur", GetLastError()) ;

}}}}
return(0);}

QUEL EST LE PROBLÈME ? AIDEZ-MOI S'IL VOUS PLAÎT ........... ?????

vous pouvez toujours essayer comme ça :

double TakeProfitBuy = NormalizeDouble((three - zero) / 4, Digits);
if (TakeProfitBuy<10*Point) TakeProfitBuy=10*Point;
double TakeProfitSell = NormalizeDouble((zero - two) / 4, Digits);
if (TakeProfitSell<25*Point) TakeProfitSell=25*Point;
 

Quel est le meilleur moyen :

- spécifier dans le conseiller sur quelles paires et quelle période négocier

ou

- lancez un EA sur un graphique d'une paire de devises avec la période prédéfinie nécessaire

? ?

 

Encore une chose - ne faites pas le malin, j'écris à l'avance, sinon ce n'est pas très agréable.

La réponse à cette question est très importante pour moi, alors prenez-la au sérieux.

 
À mon avis, la deuxième option est beaucoup plus pratique et commode.
 

Se décider et se fixer sur une solution choisie.

Je suis également enclin à l'idée de lancer un EA sur les paires de devises requises, ou d'en écrire un pour certaines paires de devises.

Je suis également enclin à l'option de le mettre simplement.

Pour ce qui est des goûts du trader, le choix d'un conseiller expert n'est pas si important.

 
Je l'ai. Très intelligent. Je ne suis pas un expert, mais la deuxième option est beaucoup plus facile.
 
Le conseiller expert ne fonctionne pas, il ne négocie pas du tout.
Raison: